Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1431

 
Vitaly Muzichenko:

---

Aber es muss aus dem String in OnInit() arrangiert werden

Vielen Dank! Ich habe diese Option in Betracht gezogen, aber wegen meiner Unkenntnis als Programmierer ging etwas schief)), aber wenn Sie mir jetzt noch eine Frage erlauben.
Alles funktioniert, aber es gibt eine Warnung: implizite Konvertierung von 'string' in 'number' , wie kann man sie entfernen? Ist es möglich?

 
Александр:
Vielen Dank! Ich habe diese Option in Betracht gezogen, aber wegen meiner Unkenntnis als Programmierer ging etwas schief)), aber wenn Sie mir jetzt noch eine Frage erlauben.
Alles funktioniert, aber ich erhalte eine Warnung: implizite Konvertierung von 'string' zu 'number' , wie kann ich das loswerden? Ist es möglich?

Den Code hochgeladen

 
Super, super. Ich wünsche Ihnen viel Erfolg bei Ihren Bemühungen. Danke für Ihre Hilfe.
 
Maxim Kuznetsov:

So ist das hier nun mal... guter Code sollte ausreichen.

Dafür haben wir andere...))
 

Nachmittag

Ich versuche, 2 Dateien für den MT4-MT5-Kopierer zu erstellen:

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);
    } 
Wenn Sie versuchen zu lesen:

Derselbe Code in MT5 schreibt alles korrekt:


Liegt es an mir, dass ich ein Problem habe, oder ist etwas im MT4 abgestürzt?

 
Ich glaube, ich habe es - das Problem liegt im Open Office, danke
 

Kollegen, helfen Sie mit dem Algorithmus und mathematischen Funktionen, Sie können einfach mathematische Funktionen verwenden, die Aufgabe ist es , eine Marktposition um 5 Portionen zu schließen.

D.h. z.B. eine Marktposition von 10,24 Lots oder 5,12 Lots sollte mit ungefähr gleichen Teilen von 5 Teilen abgedeckt werden. Wir können eine der verbleibenden Positionen größer machen als die anderen, um das verbleibende Volumen zu decken, nachdem die ersten vier Positionen geschlossen wurden.

Dieses Thema aus der Hilfe von Mate-Funktionen ist meiner Meinung nach nicht ganz geeignet, es braucht etwas zu vervollständigen.... WIE man optimal Lose von jeweils 5 Aktien (Teilen) zählt, um eine gemeinsame Position zu schließen.

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



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:

Kollegen, helfen Sie mit dem Algorithmus und mathematischen Funktionen, Sie können einfach mathematische Funktionen verwenden, die Aufgabe ist es , eine Marktposition um 5 Portionen zu schließen.

D.h. z.B. eine Marktposition von 10,24 Lots oder 5,12 Lots sollte mit ungefähr gleichen Teilen in insgesamt 5 Teilen abgedeckt werden. Wir können eine der verbleibenden Positionen größer machen als die anderen, um das verbleibende Volumen zu decken, nachdem die ersten vier Positionen geschlossen wurden.

Dieses Thema aus der Hilfe von Mate-Funktionen ist meiner Meinung nach nicht ganz geeignet, es braucht etwas zu vervollständigen.... WIE man optimal Lose von jedem der 5 Teile (Parts) zählt, um eine gemeinsame Position zu schließen.

Eine Division durch 5 ist eine Division durch 5 :-)

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

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

 
Maxim Kuznetsov:

eine Division durch 5 ist eine Division durch 5 :-)

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

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

О! Spc. Genau - durch die Differenz von Abrundung und Ausgangssumme!!! Rundung durch dieselbe?

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



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

Параметры

val

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

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

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

Примечание

Вместо функции MathFloor() можно использовать функцию floor().
 
Hilfe bei der Erstellung einer Warnmeldung für einen Indikator, kann keinen mit einem Signal finden
Dateien:
Grund der Beschwerde: