[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 382

 
Scusa, ma lavoravo su Rumuse e ora sto imparando MT4. Sono ancora un "Dummie" qui. 11 .09 . Non posso iniziare le citazioni. Per favore, ditemi cosa c'è che non va. Sarò lieto di aiutarvi.
 
vitor:
Scusa, ma lavoravo su Rumuse e ora sto imparando MT4. Sono ancora un "Dummie" qui. 11 .09 . Non posso iniziare le citazioni. Per favore, ditemi cosa c'è che non va. Sarò lieto di aiutarvi.
Apri un nuovo conto demo, se non funziona reinstalla il terminale.
 
Ciao, puoi dirmi come disabilitare un EA se un ordine aperto dallo stesso EA viene chiuso da un trader, o da SL o TP.
 
eropov:
Salve, potete dirmi come disabilitare un EA se un ordine aperto dallo stesso EA viene chiuso da un trader o da SL o TP.
Vedi, è questo che sono i consiglieri, non devi consigliarli... e se un ordine è aperto, non preoccuparti, zio Kolya verrà a chiudere tutto.
 

BeerGod

Понимаете, советники на то и советники, что не нужно им советовать... а если ордер открыт, то не переживайте, дядя Коля прийдет и всё закроет.

Quindi non è possibile fermare il funzionamento dell'EA?

 
eropov:

BeerGod

Quindi non è possibile fermare l'EA?

Disattivare l'EA premendo il pulsante nel terminale, e l'ordine non può essere ritirato naturalmente, chiuderlo manualmente.


 

BeerGod

Disattivate l'EA premendo il pulsante nel terminale e l'ordine non può essere riportato indietro, naturalmente, chiudetelo manualmente.

Sto scrivendo un gufo che apre un ordine con SL e TP.

Ho bisogno di una condizione che se un ordine viene chiuso dal TP o chiuso da un trader devo fermare l'EA. Come implementare questo programmaticamente?

 

Aiutatemi a risolvere il problema, perché se il ciclo ha solo 2 passaggi i prima è uguale a 0 e poi subito uguale a 4?

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderMagicNumber() == MasterMagicNumber)
      {
      starttime = OrderOpenTime();
      ArrayResize(prices,ArraySize(prices)+TradesCount);
      if(OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES))
      if(OrderMagicNumber() == MasterMagicNumber) endtime = OrderOpenTime();
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      times[i] = starttime;
      times[i+1] = endtime;
      tickets[i] = OrderTicket();
      symbol = OrderSymbol();
      Alert(i);
      while(g < TradesCount*(i+1))
        {
        if(OrderType() == OP_BUY)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()-LowOpen*Point;
            }else
            {
            prices[g] = prices[g-1]-step*Point;
            }
          }
        if(OrderType() == OP_SELL)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()+HighOpen*Point;
            }else
            {
            prices[g] = prices[g-1]+step*Point;
            }
          }
        g++;
        }
      }
    }

Da questo script l'allarme esce 0, 4.

 
Помогите решить задачу, почему если в цикле всего 2 прохода i сначала равна 0, а затем сразу равна 4?

Per quanto ho capito il codice

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;

fa una pausa, il che significa che andiamo all'inizio del ciclo e aumentiamo i secondo la condizione del ciclo

probabilmente come questo

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) {i--; break; }

 
Buon pomeriggio, potreste dirmi se esiste un EA semplice basato su due medie? Senza filtri, trailing stop o cose del genere. Cioè, se lo short incrocia il long dal basso verso l'alto, si apre un ordine di acquisto e si chiude un ordine di vendita; e viceversa, se lo short incrocia il long dall'alto verso il basso, si apre un ordine di vendita e si chiude un ordine di acquisto.