[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 846

 
serjik77:

Bitte entschuldigen Sie mich, wenn ich Sie mit einer wahrscheinlich dummen Frage ablenke.

Ich habe gerade erst angefangen, das zu lernen und habe niemanden, den ich um Rat fragen kann.

Ich habe das Handbuch ein paar Mal gelesen. Ich habe einen Expert Advisor mit den einfachsten Funktionen, Pending Orders, gestartet.

Ich verstehe immer noch nicht, warum ich Aufträge nur einmal und nicht bei jedem Tick öffnen muss.



Fügen Sie eine Funktion wie diese ein

int ChPos( int type_H_L) 
{
// возвращает кол-во позици которые открыты 
   int i;
   int col;
   int count=0 ;
   for( i=0; i < OrdersTotal(); i++)         
   {
      if(OrderSelect(i,SELECT_BY_POS)==true) 
       {                                   
           if(OrderType()==OP_BUY && type_H_L==OP_BUY && OrderMagicNumber()== magic){count++;}
           if(OrderType()==OP_SELL && type_H_L==OP_SELL && OrderMagicNumber()== magic){count++;}
           if(OrderType()==OP_BUYSTOP && type_H_L==OP_BUYSTOP && OrderMagicNumber()== magic){count++;}
           if(OrderType()==OP_SELLSTOP && type_H_L==OP_SELLSTOP && OrderMagicNumber()== magic){count++;}
           
       }
    }   
return(count);
}

Prüfen Sie in Ihrem Code zum Beispiel so

if ( SignalLine > MainLine && ChPos(OP_BUY)==0 )
      { // если сигнальная линия выше основной и нет длинной позы . то закрыть короткую открыть длинную
         if (ChPos(OP_SELL)>0 ) ClosePosition(OP_SELL) ;
         OpenPosition(OP_BUY)  ;
 
Ich schließe unrentable Positionen, ohne das Gleichgewicht in der Lücke zu brechen, indem ich die TPs der offenen Orders entferne. Leider ist TP=0, obwohl ich eine sehr ärgerliche Meldung im Log bekomme:
<br / translate="no"> 2010.09.12 21:34:53 2000.03.06 07:59 Geld EURUSD,M5: OrderModify Fehler 1

Code:

bool notakeprofit()
{   bool ok=true;
    int k=OrdersTotal();
    for (int i=k-1; i >=0; i--)
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_368)
        {OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),NormalizeDouble(0,Point), OrderExpiration(), CLR_NONE);
         }
    else;
       // { Print("OrderSelect() error - ",GetLastError()); ok=false;}
    }
return(ok);
}

Da ich im Hauptcode sicherstellen muss, dass alle Marktaufträge TP=0 haben, kontrolliere ich das Ergebnis dieser Funktion - ok, im Code können Sie sehen, dass es ok ist - es ändert sich nur, wenn es einen Fehler gibt

HELFEN SIE MIR, BITTE! :)

vielen Dank im Voraus

 
abolk:

In meinem Fall lautet die Regel: "Trenne NICHT in Substantiven, Adjektiven und Adverbien, wenn ein Widerspruch besteht oder bestehen soll" http://www.rusyaz.ru/pr/od07.html - "zu tun" ist NICHT - das richtige Wort ist " zu tun" (das hervorgehobene Wort ist ein Widerspruch, dem ein Bindestrich vorangestellt ist).

Sie interpretieren die russische Sprache falsch (!). Im Fall von würde ein separates "nicht" geschrieben werden:

"to do" ist NICHT korrekt, sondern schlecht. - in diesem Sinne wird sie als Gegensatz verstanden. Sehen Sie sich die Beispiele für die Regel an.

In Ihrem Satz sollte NICHT mit einer Konjunktion geschrieben werden (es gilt Absatz 3 von Absatz 88 auf derselben Seite):

"to do" ist falsch geschrieben, " to do" ist richtig .

 

Es gibt einen Standard-MACD-Indikator. Wie wird er zum Testen der Historie verwendet?

Gibt es ein Beispiel?

 
IgorM:
Ich schließe Verlustpositionen ab, damit ich das Gleichgewicht in der Position nicht verliere, aber ich muss TP entfernen, leider, TP=0, obwohl ich immer wieder in mein Journal schreiben muss:

Code:

Da ich im Hauptcode sicherstellen muss, dass alle Marktaufträge TP=0 haben, kontrolliere ich das Ergebnis dieser Funktion - ok, im Code können Sie sehen, dass ok - sich nur ändert, wenn ein Fehler auftritt

HELFEN SIE MIR, BITTE! :)

vielen Dank im Voraus

Vielleicht nicht NormalizeDouble(0,Point) sondern NormalizeDouble(0,Digits)?

 
chief2000:

Vielleicht nicht NormalizeDouble(0,Point) sondern NormalizeDouble(0,Digits)?


Danke, ich habe es selbst gefunden, aber es hat den Fehler #1 nicht behoben.

 
IgorM:


Danke, ich habe es selbst gefunden, aber es hat den Fehler Nr. 1 nicht behoben.

Als Erstes würde ich eine andere Zahl anstelle von Null in TP einsetzen (um den Fehler zu beseitigen), um sicherzugehen, dass dies der Grund ist .

 
chief2000:

Als Erstes würde ich eine andere Zahl anstelle von Null in TP einsetzen (um den Fehler zu beseitigen), um sicherzustellen, dass dies der Grund ist.


Früher funktionierte es gut, bis ich diese Funktion schrieb, jetzt rufe ich Kims Funktion anstelle von OrderModify() auf:

void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0)

der Fehler ist behoben

 

Es gibt einen Osma-Indikator, das Signal wird beim Überschreiten von 0 umgedreht. Wie kann ich ihn im Verlauf testen?

 
ivandurak:


Diese Funktion einfügen

Führen Sie in Ihrem Code eine Prüfung wie diese durch

Entschuldigen Sie, aber wenn ich darf, noch eine Frage?

Ich beginne, etwas zu verstehen, aber nicht alles.

Sagt die erste Funktion der Anwendung, wie viele offene Aufträge sie hat?

Bitte geben Sie mir einen Rat, wie ich erreichen kann, dass nur zwei ausstehende Einträge dauerhaft angezeigt werden,

unabhängig von den ausgelösten.