Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 463

 
HUNTERGOOD:

La richiesta, correttamente ho creato indietro a pagina 457, in paost #4567, e tutto il necessario: "indicatore, che cosa è necessario, e come esattamente" - lì, non è difficile descrivere tutto, impostare tutto il breve e al punto, chiaramente e distintamente, e ciò che era sbagliato nel mio primo post, che il mio così piccola richiesta, per l'uomo che capisce nel codice, ignorato sei pagine, e infine "banter" me sulle "luci" - scrivo qui stubby.RICHIESTA DUPLICATA:

(((^^^^ Buon pomeriggio a tutti. Cari programmatori, per favore aiutatemi a inserire una stringa con la possibilità di specificare il file audio per ogni Alert3.Lv1;2;3, per attivare un suono diverso che si specifica. Non sono bravo a codificare e programmare da solo.^^))

L'avete provato sul grafico, funziona?

 

Potete dirmi cosa fare: voglio piazzare uno stop e un take immediatamente dopo aver piazzato un ordine. Se un EA ha aperto un ordine, voglio impostare uno stop e un take. Seun operatore ha aperto un ordine, voglio impostare unostop e un take. Come posso descriverlo più precisamente? Così, l'Expert Advisor e l'operatore capiscono dove sono questi ordini!

Questo codice sembra funzionare, ma è corretto?

O è necessario organizzare un'azione per ogni tipo di ordine (Expert Advisor o operatore) usando FOR?

File:
STOP_TAKE.txt  4 kb
 

Come farlo bene:1

2

 
Rewerpool:

Come farlo bene:

I codici sono normalmente inseriti qui. La maggior parte della gente qui è troppo pigra per analizzare le immagini.

 
Konstantin Nikitin:

Va bene incollare i codici qui. La maggior parte della gente qui è troppo pigra per smontare le foto.

Pensavo di aver allegato prima tutto il codice! Solo il file! Messaggio. Poi più brevemente descritto la situazione in immagini!

 

tipo di ordine(Expert Advisor o operatore) usando FOR?



//+------------------------------------------------------------------+

//| FUNZIONE di impostazione degli ordini aperti di Stop e Takeovers
//+------------------------------------------------------------------+
void STOP_TAKE()
{
int tip,Ticket;
doppio OOP, OSL, OTP;
int SPREAD = (int)MarketInfo(Symbol(),MODE_SPREAD);
se (stoploss<STOPLEVEL) stoploss=0;
se (takeprofit<STOPLEVEL) takeprofit=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
tip=OrderType();
//----------IfOrderTotal()
if(tip<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
OSL = OrderStopLoss();
OTP = OrderTakeProfit();
se ((OSL==0&stoploss!=0)||(OTP==0&&takeprofit!=0))
{
OOP = OrderOpenPrice();
Ticket = OrderTicket();
se (tip==OP_BUY || tip==OP_BUYSTOP || tip==OP_BUYLIMIT)
{
se (takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); altrimenti TP=OTP;
se (stoploss!=0) SL = NormalizeDouble(OOP - (stoploss+SPREAD)* Point,Digits); altrimenti SL=OSL;
se (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("SetStop ",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP);
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket ",Ticket);
}
se (tip==OP_SELL || tip==OP_SELLSTOP || tip==OP_SELLLIMIT)
{
se (takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); altrimenti TP=OTP;
se (stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* Point,Digits); altrimenti SL=OSL;
se (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("STOP_TAKE",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP);
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket ",Ticket);
}
}
}
//----------If(tip<2 &&Order)
else if(tip<2 && OrderSymbol()==Symbol()&& OrderMagicNumber()!=Magic)
{
OSL = OrderStopLoss();
OTP = OrderTakeProfit();
se ((OSL==0&stoploss!=0)||(OTP==0&&takeprofit!=0))
{
OOP = OrderOpenPrice();
Ticket = OrderTicket();
se (tip==OP_BUY || tip==OP_BUYSTOP || tip==OP_BUYLIMIT)
{
se (takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); altrimenti TP=OTP;
se (stoploss!=0) SL = NormalizeDouble(OOP - (stoploss+SPREAD)* Point,Digits); altrimenti SL=OSL;
se (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("STOP_TAKE",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP);
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket ",Ticket);
}
se (tip==OP_SELL || tip==OP_SELLSTOP || tip==OP_SELLLIMIT)
{
se (takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); altrimenti TP=OTP;
se (stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* Point,Digits); altrimenti SL=OSL;
se (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("STOP_TAKE",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP);
else Print(Symbol()," Error STOP_TAKE",GetLastError()," Ticket ",Ticket);
}
}
}
}
}
}
 
Rewerpool:

Pensavo di aver allegato prima tutto il codice! Solo il file! Messaggio. Poi più brevemente descritto la situazione in immagini!

Beh, perché attaccare una foto qui. Ve ne sto parlando.

 
Rewerpool: Gli ordini piazzati manualmente hanno un numero magico di 0, l'EA piazza con il proprio numero magico. Questo è quello che dovreste usare come guida.
 

@Konstantin Nikitin OK! La costruzione del codice per l'apertura dell'ordine take profit da parte di Expert Advisor o da parte dell'operatore è corretta? Ecco perché ho allegato una foto per rendere la domanda più chiara!

 
Rewerpool:

@Konstantin Nikitin OK! La costruzione del codice per l'apertura dell'ordine take profit da Expert Advisor o da operatore è corretta? Ecco perché ho allegato una foto per rendere la domanda più chiara!

Io l'avrei fatto nel seguente modo

for(int i=0; i<OrdersTotal(); i++)
{
     if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
     if(OrderSymbol()!=Symbol()) continue;
     
     int tip = OrderType();
     if(tip!=OP_BUY && tip!=OP_BUYSTOP && tip!=OP_BUYLIMIT) continue;
     
     // переменные которые будут использоваться в любых ордерах
     int Ticket = OrderTicket();
     double OOP = OrderOpenPrice();
     
     //---
     switch( OrderMagicNumber() )
     {
          case Magic:    // Ордера советника
               {
                    // что-то делаем
               }
               break;

          default:       // Все остальные
               {
                    // что-то делаем
               }
     }
}