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

 
Ibiss >> :

Wie programmiert man korrekt einen Ausstieg bei einer umgekehrten Kreuzung der Haupt- und Signallinien? weil Signale in kurzen Zeitabständen kommen... und Aufträge nicht dort geschlossen werden, wo sie in der Bedingung sollten...

Diese Frage beschäftigt mich schon seit langem! HILFE!

Hier ist die Ausstiegsbedingung:


Ich bin kein Ass, aber

if(OrderMagicNumber()!= MAGICMA || OrderSymbol()!=Symbol()) continue;

wenn (OMN ist nicht gleich OMN oder OS ist nicht gleich OS) {dann weitermachen}


aber es bedeutet, dass der Auftrag nicht zum Expert Advisor gehört

Versuchen Sie

if(OrderMagicNumber()!= MAGICMA || OrderSymbol()!=Symbol()) break;
 
Ibiss >> :

Wie programmiert man korrekt einen Ausstieg bei einer umgekehrten Kreuzung der Haupt- und Signallinien? weil Signale in kurzen Zeitabständen kommen... und Aufträge nicht dort geschlossen werden, wo sie in der Bedingung sollten...

Diese Frage beschäftigt mich schon seit langem! BITTE!

Hier ist die Ausstiegsbedingung:


Snachala narusyj sebe blok shemy svoego algorutma, chtob tu vuzyalno vudel chto tu doesh y po kakum yslovuyam y tebya zakruvayutsya orders, a vse eto delo perevestu v kod eto yge delo tehnuku - ya tak dymayu.

 

Meine Herren, könnten Sie mir sagen, ob es etwas gibt, das bereit ist, Kommentare auf dem Diagramm für jede Bestellung anzuzeigen. D.h. Pfeil auf einem Diagramm und daneben ein Kommentar mit einer Begründung. Ich möchte, dass es im Tester gezeichnet wird :)

Ich danke Ihnen.

 
AndBar >> :

Snachala narusyj sebe blok shemy svoego algorithm, chtob tu vuzyalno vudel chto tu doaesh y po kakum yslovuyam y tebya zakruvayutsya orders, a vse eto delo perevestu v kod eto yge delo tehnuku - ya tak dymayu.


Hey Mann kannst du so oder so sprechen :) >> Ich breche mir die Augen. :)
 

costy, es hat nicht geholfen, aber danke!

Wer weiß vielleicht, wie man die Kreuzung und die Rückkreuzung macht, um entgegengesetzte Aufträge zu öffnen und zu schließen?

das braucht etwas Magie...ahhh...

Sie sehen, wie viele verschiedene Käufe und Verkäufe es geben sollte? und es sind nur ein paar Stücke...

Wie kann ich dieses Problem beheben?

die nichts dagegen haben, sich den Code anzuschauen! bitte!

Es ist alles im Code des EA, nicht in den Indikator... Ich denke...

und die Drawdowns sind wie... man kann sich keine 96% wünschen... wen interessiert das schon :)

sollte es so sein:


Dateien:
itrend.mq4  5 kb
 

Wie auch immer, ich beschloss, die EA nach dem Lesen über globale Variablen neu zu machen, und Heureka!!!

und es gab auch ein Problem mit den Zecken...

Trades öffnen sich an allen Crossovers, aber ein großes ABER...sie öffnen sich ingroßen Stapeln...

Leute, wie kann ich dieses Problem lösen? habt Erbarmen)))

Hier ist ein Screenshot:


"Das ist nichts für schwache Nerven."

Dateien:
ggftest.mq4  3 kb
 
Ibiss >> :

costy, es hat nicht geholfen, aber danke!

Weiß jemand, wie man gegenläufige Aufträge bei Kreuzung und Rückkreuzung öffnen und schließen kann?

das braucht etwas Magie...ahhh...

Sie sehen, wie viele verschiedene Käufe und Verkäufe es geben sollte? und es sind nur ein paar Stücke...

Wie kann dieser Fehler behoben werden?

die sich den Code ansehen können! Bitte!

Es ist alles im Code des EA, nicht in den Indikator... Ich denke...

und die Drawdowns sind wie... man kann sich keine 96% wünschen... wen kümmert's :)

so sollte es auch sein:



Der einfachste Weg:

Bei jedem Tick werden 4 Indikatorvariablen initialisiert. Zwei für die rote Linie und zwei für die grüne Linie. Und jeweils zwei Handelssignalvariablen.

In diesem Fall sollte der Code wie folgt aussehen:

// ------ Пользовательские переменные -------------------
extern bool CloseObr=true;// закрывать ли противоположный ордер при возникновении торгового сигнала
// ---------- Вспомогательные переменные ------------
double Green_1, Green_2, Red_1, Red_2;// значения индикатора на первой и второй свечках
bool SigBuy, SigSell;// торговые сигналы
int TICKET;

int start(){
  Green_1=iCustom(****);// зелёная на первой свече
  Green_2=iCustom(****);// зелёная на второй свече
  Red_1=iCustom(****);// красная на первой свече
  Red_2=iCustom(****);// красная на второй свече
  
  // ------- формируем торговые сигналы -------------
  
  SigBuy=false;
  SigSell=false;
  
  if( Green_2<= Red_2 && Green_1> Red_1){// зелёная пересекает красную снизу вверх
    SigBuy=true;
  }
  if( Green_2>= Red_2 && Green_1< Red_1){// зелёная пересекает красную сверху вниз
    SigSell=true;
  }
  
  // ------ Сигналы сформированы. Торгуем ------------------
  if( SigBuy){
    if( CloseObr){
      // то удаляем все Sell-ордера
    }
    // --- противоположные удалены. Открываем позу
    ......
    TICKET=OrderSend( тут пишем параметры установки лонга);
  }
  if( SigSell){
    if( CloseObr){
      // то удаляем все Buy-ордера
    }
    // --- противоположные удалены. Открываем позу
    ......
    TICKET=OrderSend( тут пишем параметры установки шорта);
  }
}
Im Allgemeinen sollte der EA so funktionieren. Es ist vielleicht nicht die perfekteste Version des Codesatzes, aber sie veranschaulicht die Logik seiner Konstruktion gut.
 

drknn, danke für die Idee und für den Code!)


wissen Sie zufällig, wie man mit einer Menge von Aufträgen umgeht?)

 
Ibiss >> :

Ich beschloss, den EA neu zu erstellen, nachdem ich über globale Variablen gelesen hatte, und Heureka!!!

und es gab auch ein Problem mit den Zecken...

Trades öffnen sich an allen Crossovers, aber ein großes ABER...sie öffnen sich in großen Stapeln...

Leute, wie kann ich dieses Problem lösen? habt Erbarmen)))

Hier ist ein Screenshot:


">> Das ist nichts für schwache Nerven.



Nun, dann können Sie so vorgehen:

// ------ Пользовательские переменные -------------------
extern bool CloseObr=true;// закрывать ли противоположный ордер при возникновении торгового сигнала
extern int MAGIC=0;// у ордеров открытых вручную магик = 0
// ---------- Вспомогательные переменные ------------
double Green_1, Green_2, Red_1, Red_2;// значения индикатора на первой и второй свечках
bool SigBuy, SigSell;// торговые сигналы
int TICKET;

int start(){
  Green_1=iCustom(****);// зелёная на первой свече
  Green_2=iCustom(****);// зелёная на второй свече
  Red_1=iCustom(****);// красная на первой свече
  Red_2=iCustom(****);// красная на второй свече
  
  // ------- формируем торговые сигналы -------------
  
  SigBuy=false;
  SigSell=false;
  
  if( Green_2<= Red_2 && Green_1> Red_1){// зелёная пересекает красную снизу вверх
    SigBuy=true;
  }
  if( Green_2>= Red_2 && Green_1< Red_1){// зелёная пересекает красную сверху вниз
    SigSell=true;
  }
  
  // ------ Сигналы сформированы. Торгуем ------------------
  if( SigBuy && SchBuy( MAGIC)==0){
    if( CloseObr && SchSell( MAGIC)>0){
      // то удаляем все Sell-ордера
    }
    // --- противоположные удалены. Открываем позу
    ......
    TICKET=OrderSend( тут пишем параметры установки лонга);
  }
  if( SigSell && SchSell( MAGIC)==0){
    if( CloseObr && SchBuy( MAGIC)>0){
      // то удаляем все Buy-ордера
    }
    // --- противоположные удалены. Открываем позу
    ......
    TICKET=OrderSend( тут пишем параметры установки шорта);
  }
return(0);
}
// --------- Пользовательские подпрограммы -----------------

// ==========================================================================================================================
// ************************* Счётчики ордеров *******************************************************************************
// ==========================================================================================================================


//=========== SchBuy()  ===============================
//  Функция возвращает количество Buy-ордеров
//   SchBuy      - счётчик Buy ордеров
//-----------------------------------------------------------
int SchBuy(int MAGIC){
  string SMB=Symbol();
  int SchBuy=0;
  int i;
  for ( i=OrdersTotal()-1; i>=0; i--) {
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) { WriteError( i);}
    else {
      if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGIC){ continue;}
      if(OrderType()==OP_BUY){ 
        SchBuy++;
      }  
    }
  }
  return( SchBuy);
}                  
//==================================================================================================


//=========== SchSell()  ===============================
//  Функция возвращает количество Sell-ордеров
//  SchSell  - счётчик Sell ордеров
//-----------------------------------------------------------
int SchSell(int MAGIC){
  string SMB=Symbol();
  int SchSell=0;
  int i;
  for ( i=OrdersTotal()-1; i>=0; i--){
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) { WriteError( i);}
    else {
      if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGIC){ continue;} 
      if(OrderType()==OP_SELL){
        SchSell++;
      }
    }
  }
 return( SchSell);     
}                  
//==================================================================================================
 
Bond >> :

Meine Herren, könnten Sie mir sagen, ob es etwas gibt, das bereit ist, Kommentare auf dem Diagramm für jede Bestellung anzuzeigen. D.h. Pfeil auf dem Diagramm und daneben ein Kommentar mit der Begründung. Ich möchte, dass es im Prüfgerät gezeichnet wird.)

>> Danke.


Wenn wir wollen, dass es auch im Tester gezeichnet wird, müssen wir den Programmiercode von Hand machen.

In diesem Fall ist es besser, die Pfeile in den Funktionen OrderSend() und OrderClose() zu setzen.

Der Kommentar kann auf verschiedene Weise ausgedruckt werden. Was die vorgefertigten Codes angeht, so kann ich sagen, dass dies eine ziemlich spezifische Aufgabe ist - es ist unwahrscheinlich, dass man einen vorgefertigten Code finden kann.

Ich habe mein Skript hier in MQL4 gepostet, das den Handelsverlauf in Charts anzeigt. Meine Idee wurde später von anderen Programmierern geändert. Ich hatte nur Pfeile und Linien, die die Eröffnungs- und Schließungspunkte der Aufträge anzeigten. Später erschienen in den Skripten anderer Programmierer Kommentare zu den Aufträgen und Angaben zu den Ausführungspreisen. Dies könnte hier gut zu finden sein.