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

 
Vitaly Muzichenko:

---

Ma deve essere arrayato dalla stringa in OnInit()

Grazie mille, ho considerato questa opzione, ma a causa del mio analfabetismo come codificatore qualcosa è andato storto)), ma ora se mi permettete un'altra domanda.
Tutto funziona, ma c'è un avviso: conversione implicita da 'string' a 'number' , come rimuoverlo? È possibile?

 
Александр:
Grazie mille, ho considerato questa opzione, ma a causa del mio analfabetismo come codificatore qualcosa è andato storto)), ma ora se mi permettete un'altra domanda.
Tutto funziona, ma ricevo un avvertimento: conversione implicita da 'stringa' a 'numero' , come me ne libero? È possibile?

Riposto il codice

 
Fantastico, super. successo spaziale ai tuoi sforzi, grazie per l'aiuto.
 
Maxim Kuznetsov:

Questo è il modo in cui è da queste parti... un buon codice dovrebbe essere sufficiente.

Abbiamo altri per quello...))
 

Pomeriggio

Cerco di creare 2 file per la copiatrice MT4-MT5:

string path, path1;
    int hend; 
    path=CopierNumber+"MasterOrdersV.csv";   
    hend=FileOpen(path,FILE_CSV|FILE_WRITE,',');
    if(hend>0)
    {
        FileWrite(hend,"Symbol","Ticket","Lot size","Direction","Price","StopLoss","Takeprofit","Open time");
        FileClose(hend);
    }
    path1=CopierNumber+"MasterOrders.csv";    
    hend=FileOpen(path1,FILE_CSV|FILE_COMMON|FILE_WRITE|FILE_SHARE_READ,',');
    if(hend>0)
    {
        FileWrite(hend,"Symbol","Ticket","Lot size","Direction","Price","StopLoss","Takeprofit","Open time");
        FileClose(hend);
    } 
Quando si cerca di leggere:

Lo stesso codice in MT5 scrive tutto correttamente:


Sono io che ho qualche problema o qualcosa è andato in crash in MT4?

 
Penso di aver capito - il problema è in Open Office, grazie
 

Colleghi, aiutare con l'algoritmo e le funzioni matematiche, si può solo usare le funzioni matematiche, il compito è quello di chiudere una posizione di mercato da 5 porzioni.

Cioè, per esempio, una posizione di mercato di 10,24 lotti o 5,12 lotti dovrebbe essere coperta con circa parti uguali di 5 parti. Possiamo fare una di quelle rimanenti più grande delle altre per coprire il volume rimanente dopo che le prime quattro posizioni sono state chiuse.

Questo argomento dall'aiuto delle funzioni mate non è proprio adatto, secondo me, ha bisogno di qualcosa per completare.... Come contare in modo ottimale i lotti di ciascuna delle 5 azioni (parti) per chiudere una posizione comune.

Возвращает вещественный остаток от деления двух чисел.



double  MathMod( 
   double  value,      // делимое 
   double  value2      // делитель 
   );
 

Параметры

value

[in]  Значение делимого.

value2

[in]  Значение делителя.

Возвращаемое значение

Функция MathMod рассчитывает вещественный остаток f от val / y таким образом, что val = i * y + f , где i является целым числом, f имеет тот же знак, что и val, и абсолютное значение f меньше, чем абсолютное значение y.

Примечание

Вместо функции MathMod() можно использовать функцию fmod().
 
Roman Shiredchenko:

Colleghi, aiutare con l'algoritmo e le funzioni matematiche, si può solo usare le funzioni matematiche, il compito è quello di chiudere una posizione di mercato da 5 porzioni.

Cioè, per esempio, una posizione di mercato di 10,24 lotti o 5,12 lotti dovrebbe essere coperta con circa parti uguali di 5 parti. Possiamo fare una di quelle rimanenti più grande delle altre per coprire il volume rimanente dopo che le prime quattro posizioni sono state chiuse.

Questo argomento dall'aiuto delle funzioni mate non è del tutto adatto, secondo me, ha bisogno di qualcosa - qualcosa per completare .... COME contare in modo ottimale i lotti di ciascuna delle 5 parti (pezzi) per chiudere una posizione comune.

Una divisione per 5 è una divisione per 5 :-)

lots_1to4=NormalizeLots(lots/5); // лоты для 1,2,3,4 ; округление лота сами добавите

lots5 = NormalizeLots(lots - lots_1to4*5); // для 5 - оставшиеся лоты

 
Maxim Kuznetsov:

una divisione per 5 è una divisione per 5 :-)

lots_1to4=NormalizeLots(lots/5); // лоты для 1,2,3,4 ; округление лота сами добавите

lots5 = NormalizeLots(lots - lots_1to4*5); // для 5 - оставшиеся лоты

О! Spc. Esattamente - attraverso la differenza di arrotondamento e il totale di partenza!!! Arrotondamento attraverso lo stesso?

Возвращает ближайшее снизу целое числовое значение.



double  MathFloor( 
   double  val     // число 
   );
 

Параметры

val

[in]  Числовое значение.

Возвращаемое значение

Числовое значение, представляющее наибольшее целое число, которое меньше или равно val.

Примечание

Вместо функции MathFloor() можно использовать функцию floor().
 
Aiutare a fare un avviso per un indicatore, non riesco a trovarne uno con un segnale
File: