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

 

Ciao, aiutami. Sto scrivendo il mio primo EA in MQL4.

Il mio Expert Advisor apre una posizione ma non la chiude. Non mostra alcun errore nel registro.

void OnTick()
  {RefreshRates();
  ma1=iMA(_Symbol,TimeFrame,Period_MA1,Shift_MA1,metod_ma1,PRICE_CLOSE,0);
ma2=iMA(_Symbol,TimeFrame,Period_MA2,Shift_MA2,metod_ma2,PRICE_CLOSE,0);


if (ma1<ma2)
{
SellPositionClose();
BuyPositionOpen();
}

if (ma1>ma2)
{
BuyPositionClose();
SellPositionOpen();
}
}
 

     
void BuyPositionOpen()  // покупка
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,0,0,"",Magic,0,Blue);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void     SellPositionOpen() // продажа
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,0,0,"",Magic,0,Red);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void BuyPositionClose() // закрытие длинной позиции
{RefreshRates();
if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic))
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());

 if(OrderType()==OP_BUY)
           
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
               }
               }
               
void SellPositionClose()  // закрытие короткой позиции
{RefreshRates();
if (OrdersTotal()!=0 && OrderMagicNumber()==Magic)
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());
    
     if(OrderType()==OP_SELL)
                
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,100,White))
               Print("OrderClose error ",GetLastError());
               
               }
               }
 
Terind:

Ciao, aiutami. Sto scrivendo il mio primo EA in MQL4.

Il mio Expert Advisor apre una posizione ma non la chiude. Non mostra alcun errore nel registro.

Questa condizione non funziona:

if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic)) //ордер ещё не выбран с помощью OrderSelect()
 
evillive:

Questa è la condizione che non funziona:

Grazie. Risolto, ora funziona.
 
Ciao. ho incontrato questo problema. quando disegno linee e rettangoli sul grafico di una coppia, tutti questi elementi vengono visualizzati sui mercati di altre coppie. perché questo è e come posso rimuoverlo?
 
roymax:
Ciao. ho incontrato un problema simile. quando disegno linee e rettangoli sul grafico di una coppia, tutti questi elementi vengono visualizzati sui mercati di altre coppie. perché è così, e come posso rimuoverlo?
Ho bisogno di mostrarlo, dato che gli altri non sanno come farlo. E preferibilmente nel codice
 

Questo è un bug di vecchia data, potresti considerarlo una caratteristica :)

1. Disegnare qualcosa su un grafico

2. Premere la barra spaziatrice e passare a un'altra coppia

Gli oggetti grafici rimangono sul grafico

Esempio:

Sul grafico dell'euro è stata tracciata una linea retta

Spostato alla sterlina e ridotto la scala verticale

 
tara:

Questo è un bug di vecchia data, potresti considerarlo una caratteristica :)

1. Disegnare qualcosa su un grafico

2. Premere la barra spaziatrice e passare a un'altra coppia

Gli oggetti grafici rimangono sul grafico

Bild 765, non funziona, gli oggetti rimangono, ma sul grafico dove sono stati creati :)

P.S.: Il modo descritto da Alexey funziona certamente, ma in effetti questa azione avviene in una finestra, il simbolo del grafico cambia, ma l'oggetto è collegato alla finestra, non a un simbolo)))

 
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)=false significa che il conto è bloccato? O è solo un divieto di commercio? Quali altri criteri ci sono per un conto bloccato? E cosa esattamente, oltre a un divieto di commercio, viene bloccato l'account se il login è stato superato (intendo l'errore 64)?
 
tara:

Questo è un bug di vecchia data, potresti considerarlo una caratteristica :)

1. Disegnare qualcosa su un grafico

2. Premere la barra spaziatrice e passare a un'altra coppia

Gli oggetti grafici rimangono sul grafico

Esempio:

e questo non è stato risolto in alcun modo?
 

Ciao, ho cercato nella documentazione ma non l'ho trovato. la mia domanda è questa: è possibile cambiare questa immagine all'inizio dell'EA con il tuo logo?