[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 155

 
vovander:
Welche Art von Wert gibt OrderType() zurück? Dankeschön

int OrderType( )
 

Ich habe eine externe Variable extern in meinem Board. Wenn ich sie an zwei verschiedene Paare anschließe und diese externe Variable auf einem der Paare ändere, ändert sie sich aus irgendeinem Grund auch auf dem anderen.

Wie kann man sie trennen? Ich habe eine Lösung für String-Parameter gefunden - ich füge einen Symbolnamen am Ende der Initialisierung hinzu. Aber was ist mit den Integer- und Dubls-Parametern?

---

eine weitere Frage zu Kims Funktionen.

es hat

//| sy - Instrumentenname ( "" - beliebiges Symbol, |
//| NULL - aktuelles Symbol) |
//| op - Operation ( -1 - beliebige Position) |
//| mn - MagicNumber ( -1 - beliebige Magie) |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1)

d.h. wenn ich SimpleTrailing() aufrufe, funktioniert die Funktion für alle Paare

aber wenn ich SimpleTrailing(NULL) aufrufe, dann funktioniert es nur für die mit der Eule in der Karte?

Ist dies eine undokumentierte Funktion oder was? Ich konnte keinen Hinweis auf NULL in der Funktion finden.

oder ist SimpleTrailing(NULL) und SimpleTrailing() das Gleiche?

 
Omm:

Dummy-Frage. es gibt externe Variablen in der Platine. wenn ich es mit zwei verschiedenen Paaren verknüpfe und diese externe auf einem von ihnen ändern, ändert es auch auf dem anderen aus irgendeinem Grund(

Ich habe eine Lösung für String-Parameter gefunden - ich hänge während der Initialisierung einen Symbolnamen an das Ende der Funktion an.

---

eine weitere Frage zu den Kim-Funktionen.


d.h. wenn ich SimpleTrailing() aufrufe, dann funktioniert die Funktion für alle Paare

aber wenn ich SimpleTrailing(NULL) aufrufe, dann funktioniert es nur für das Paar mit der Eule?

Ist dies eine undokumentierte Funktion oder was? Ich konnte keinen Hinweis auf NULL in der Funktion finden.

oder sind SimpleTrailing(NULL) und SimpleTrailing() dasselbe?

1. Sie erzählen das Unmögliche! - Das bedeutet, dass Sie etwas "Falsches" sagen müssen. Ich kann davon ausgehen, dass der EA den Bezeichner - OrderMagicNumber()- nicht verwendet.

2. Ich habe mir den Code angesehen - irgendetwas sagt mir, dass die Verwendung von SimpleTrailing() identisch mit SimpleTrailing(NULL) sein wird. Es ist Ihre Aufgabe, das zu überprüfen. Und damit die Funktion mit einem Diagrammwerkzeug funktioniert, rufen Sie sie wie folgt auf: SimpleTrailing (Symbol()).

 

1. diese EA http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=42

Magie ist formal vorhanden (auch in extern aus irgendeinem Grund), aber ich verstehe nicht, wie man es zum Laufen bringt.

Ich versuche gerade, Breakeven und Trawl hinzuzufügen.

2. die Frage ist gelöst.

Ich habe es in einem anderen f-fi gefunden if (sy=="0") sy=Symbol();

Ich schätze, der Autor hat vergessen, sie in dieses Buch aufzunehmen.

 

Was ich brauche, ist die Breakeven-Funktion https://forum.mql4.com/ru/11287/page55#11315

einmal an einer bestimmten Position eines bestimmten Symbols arbeiten

Was sollte ich im Wintergarten verbessern?

if(ExistPositions(Symbol() )
{
for (int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderSymbol()==Symbol() )
MovingInWL(Symbol())

}

}

 

Habt ihr eine Funktion. Es gibt mehrere Aufträge mit unterschiedlichem Umfang.

Beispiel: Order1=0.1, Order2=0.2, Order3=0.3, Order4=0.4 - die Gesamtmenge der Trades beträgt 1 Lot.

Zu einem bestimmten Zeitpunkt muss ich einen Teil der Aufträge für den Gesamtbetrag eines bestimmten Loses schließen.

Ich muss zum Beispiel 0,5 Lots schließen. Wir brauchen also eine Funktion, die z.B. Ordnung4=0,4 und den Rest von Ordnung3 schließt, oder Ordnung1, Ordnung2 und den Rest von Ordnung3.

 
Omm:

Was ich brauche, ist die Breakeven-Funktion https://forum.mql4.com/ru/11287/page55#11315

nur einmal an einer bestimmten Position eines bestimmten Symbols funktionieren

Was sollte ich im Wintergarten reparieren?

Diese Funktion verfügt über einen Check für die Einzelauslösung - Sie brauchen nichts zu erfinden:

    if (ExistPositions (Symbol(), -1, Magic))
    {MovingInWL (Symbol(), -1, Magic);}

Und die Funktion MovingInWL() sollte ein wenig optimiert werden:

void MovingInWL (string sy = "", int op = -1, int mn = -1)
{
    double po, pp, ld_BU;
    int    i, k = OrdersTotal();
//----
    if (sy = "0") sy = Symbol();
    for (i = k - 1; i >= 0; i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (sy != "") if (OrderSymbol() != sy) continue;
        if (mn >= 0) if (mn != OrderMagicNumber()) continue;
        po = MarketInfo (OrderSymbol(), MODE_POINT);
        if (OrderType() == OP_BUY)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() - OrderOpenPrice() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_BID);
                if (pp - OrderOpenPrice() > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() + LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                    continue;
                }
            }
        }
        else if (OrderType() == OP_SELL)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() == 0 || OrderOpenPrice() - OrderStopLoss() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_ASK);
                if (OrderOpenPrice() - pp > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() - LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                }
            }
        }
    }
//----
}
 

Bitte helfen Sie mir, die Funktion zu ändern, im Indikator High Low der Wochenkerze sieht es so aus

if (ZeitTag(Zeit[i])!=ZeitTag(Zeit[i+1])
{
if(TimeDayOfWeek(Time[i])==1)

Ich brauche High Low der monatlichen Kerze. Dankeschön

 

TarasBY, so funktioniert das nicht.

In e-TFL_V2 füge ich diese beiden Zeilen zu start() und der MovingInWL-Funktion selbst hinzu.

Wenn mehrere Positionen offen sind, wird der Break-even nur bei einer von ihnen erreicht. Bei jedem Tick wird versucht, dies erneut zu tun.

Sobald eine Breakeven-Position geschlossen ist, wird sie auf die nächste Position gesetzt.

Wenn ich in der ersten Nachricht bemerkt habe, ist der Break-Even-Wert für alle Symbole gleich, auch wenn ich im EA-Einstellungsfenster unterschiedliche Zahlen eingestellt habe.

Ich bin mir nicht sicher, wo die Kontrolle für die Einzelauslösung ist?

p.s. danke für die korrigierte Funktion. ich teste sie mit 5 Ziffern, aber ich denke, die meisten Funktionen von kim funktionieren trotzdem.

p.s.s. Ich habe es eine Weile laufen lassen, es schien zu funktionieren. es war im MovingInWL-Bug. danke nochmal. ich kämpfe jetzt schon seit zwei Tagen damit))

p.s.s. Ich kann nicht verstehen, warum Magic in externe EA-Parameter verschoben werden sollte?

 
Wie erstelle ich meinen eigenen Server für Metatrader, d.h. einen Server, mit dem sich eine andere Person aus meinem mt verbinden kann?