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?
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?
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 пипсов выше предпоследней свечи
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?
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?
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?
Come posso ridurre il numero di cifre decimali senza arrotondare?
(DoubleToStr(NormalizeDouble(0.109,2),2)); = 0.11 e 0.10
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, 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:)
per favore ditemi se questa è una soluzione già pronta:)
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.