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

 
Potete dirmi perché non riesco a reinstallare il terminale dalla build 432 alla build 438 proposta? Ottengo un errore quando scarico il file MetaEditor.exe e l'installazione si interrompe. Qual è il problema e cosa devo fare?
 
sergeev:

bene allora la funzione OrderLots.


Non riesco a capire questa funzione, per favore aiutatemi con un esempio :)

dice "L'ordine deve essere preselezionato utilizzando la funzione OrderSelect()" come faccio a selezionare tutti gli ordini aperti della stessa direzione?

 
Elektronik:


Non riesco a capire questa funzione, per favore aiutatemi con un esempio:)

dice "L'ordine deve essere preselezionato con OrderSelect()" come faccio a selezionare tutti gli ordini aperti della stessa direzione?

Non c'è modo. Solo in un ciclo che passa uno per uno con OrderSelect().

 

Puoi dirmi se c'è uno script di stop loss che deve essere inserito in questo EA?

double x = ... // Задаем на сколько пипсов выше
double sl = NormalizeDouble(High[1] + x * Point, Digits); // Задаем значение стоплосс на x пипсов выше предпоследней свечи
File:
 

Come posso ridurre il numero di cifre decimali senza arrotondare?

(DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11 e 0.10

 
Elektronik:

Come posso ridurre il numero di cifre decimali senza arrotondare?

(DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11 e 0.10

Ci sono un milione di modi, per esempio, usando le funzioni di stringa per trovare la posizione di un punto e troncare una stringa un carattere oltre. Ma se c'è una soluzione già pronta, perché dovremmo inventare problemi dal nulla? Basta cambiare i due in uno e il gioco è fatto.
 
Reshetov:
Ci sono un milione di modi, come usare le funzioni di stringa per trovare la posizione di un punto e troncare la stringa un carattere oltre. Ma se c'è una soluzione pronta all'uso, già pronta, perché inventarsi dei problemi?


per favore suggerite una soluzione già pronta:)

 
Elektronik:


per favore ditemi se questa è una soluzione già pronta:)

(DoubleToStr(NormalizeDouble(0.109,1))
 

Se non è arrotondato, solo questo :

Reshetov с помощью строковых функций найти местоположение точки и обрезать строку на один символ далее нее

 

Per favore, aiutatemi a capire cosa c'è che non va:

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

//| AAAA.mq4 |

//| |

//| |

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

#proprietà copyright ""

#proprietà link ""


extern string TimeStart = "00:00"; //ora di inizio del periodo di controllo

extern string TimeEnd = "00:00"; //timer della fine del periodo di controllo.


extern double LOT = 0.01; // lotto

extern int Magic = 777; // magia



double marga,Lot,SL,TP; // inserito margine, lotto, stop loss e take profit variabili

int Total,Orders,tipOrders,TradeDey; // inserito tipo di variabili, tipo di ordini, giorno di trading.


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

//| funzione dell'Expert Advisor |

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

int start() // Funzione di inizializzazione start

{

datetime Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeStart, ":00")); // parametri di inizio //

datetime Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeEnd, ":00")); // parametri finali//



Total=0; // Se non ci sono ordini

for(int i=1; i<=OrdersTotal(); i++) // ciclo degli ordini

{

if (OrderSelect(i-1,SELECT_BY_POS)==false) // Se non ci sono ordini a mercato

{

se //Se:

{

int BarStart = iBarShift(NULL,PERIOD_M1,Time_Start,false); // cerca la barra all'inizio del periodo di controllo su m1

int BarEnd = iBarShift(NULL,PERIOD_M1,Time_End,false); //ricerca la fine della barra del periodo di controllo a m1

double Max_Price=iHigh(NULL,0,iHighest(NULL,PERIOD_M1,MODE_HIGH,BarStart-BarEnd,BarEnd)); //il valore più alto del prezzo nel periodo

double Min_Price=iLow (NULL,0,iLowest (NULL,PERIOD_M1,MODE_LOW,BarStart-BarEnd,BarEnd)); //il valore più basso del prezzo nel periodo

}

if (TimeCurrent()>Time_End && ObjectFind("bar0"+Time_End)==-1) // Impostazioni di visualizzazione grafica

{

ObjectCreate("bar0"+Time_End, OBJ_RECTANGLE, 0, 0,0,0, 0,0);

ObjectSet("bar0"+Time_End, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet ("bar0"+Time_End, OBJPROP_COLOR, Blue);

ObjectSet ("bar0"+Time_End, OBJPROP_BACK, true);

ObjectSet ("bar0"+Time_End, OBJPROP_TIME1,Time_Start);

ObjectSet ("bar0"+Time_End, OBJPROP_PRICE1,Max_Price);

ObjectSet ("bar0"+Time_End, OBJPROP_TIME2,Time_End);

ObjectSet ("bar0"+Time_End, OBJPROP_PRICE2,Min_Price);

}

if (Bid<Max_Price) OrderSend(Symbol(),OP_BUYSTOP,LOT,Ask,3,Min_Price, //condizioni per piazzare un ordine pendente BUY

NormalizeDouble(Ask + Max_Price - Min_Price,Digits), "UPDD",Magic,Blue);

se (Bid>Max_Price)

Comment("L'ordine in sospeso non può essere piazzato su BAY");

if (Bid>Min_Price) OrderSend(Symbol(),OP_SELLSTOP,LOT,Bid,3,Min_Price, //condizioni per piazzare un ordine pendente SELL

NormalizeDouble(Ask + Max_Price-Min_Price,Digits), "UPDD",Magic,Blue);

se (Bid<Max_Price)

Comment("L'ordine in sospeso non può essere piazzato su SELL");

}

ritorno;

}

Non può compilare. altrimenti dovrebbe piazzare due ordini pendenti su e giù dal range.