Thema: Hedge EA
Einzelnen Beitrag anzeigen
  #52 (permalink)  
Alt 19.02.21
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hab doch eigentlich immer gesagt, dass da noch Fehler drin sein könnten. Hab ich irgendwo behauptet, das der Krempel 100%ig funktioniert?

Hab ja immer auf Hilfe von den Experten hier gehofft. Da die aber irgendwie nie so richtig kommt, komm ich irgendwie auch nicht richtig weiter.

Jeder hat seine Art zu traden, und mein Ziel ist, den EA, um den es hier geht, endlich fertig zu bekommen. Kann ja verstehn, dass dem Ein oder Anderen nen EA, der auf ne Art MartinGale-Strategie setzt, nicht gefällt, aber geht es darum, ob man die Strategie gut findet?

Nun ja, im Anhang meine neueste Version. Die scheint zu öffnen und zu schließen wann sie soll. Allerdings öffnet sie viel zu viele Orders und ich hab keinen Schimmer warum. Vermutlich irgendwas mit den for-Schleifen nicht richtig, die sind wie gesagt gar nicht mein Gebiet. Bzw. mit dem Zählen und Berechnen der Variablen in den for-Schleifen stimmt nicht. Vermute, das Problem ist irgendwo bei OrderSearch 2 und OrderSearch 3, ich weiß es nicht. Wie gesagt wär ich dankbar für Hinweise, Tipps, Erklärungen, für Alles was mich irgendwie weiter bringen könnte. Ob die "Strategie" gefällt oder nicht, sie k a n n Gewinn bringen.


Irgendwo in diesem Code müsste der Fehler sein. Hab aber keine Ahnung, was nicht stimmt.

Code:
//=============================================================================================================
// O R D E R   S E A R C H   2
//=============================================================================================================
for(j=OrdersTotal()-1;j>=0;j--){
if(OrderSelect(j,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fi_SH=true;
if(OrderMagicNumber()==MN_FiBuy)fi_LO=true;
if(OrderMagicNumber()==MN_Buy_FiSel)LO_fiSH=true;
if(OrderMagicNumber()==MN_Sel_FiBuy)SH_fiLO=true;  
if(OrderMagicNumber()==MN_NeSel)ne_SH=true;
if(OrderMagicNumber()==MN_NeBuy)ne_LO=true;}}}
//-----------------------------------------------------------------------------------------------------------*/
// Wenn nach OS2 nur FirstSel und FirstBuy offen sind...
if( fi_SH==true && fi_LO==true ){
//=============================================================================================================
//( O S 2 )   O P E N   N E X T   S E L   B Y   F I R S T   B U Y
//=============================================================================================================
//...wenn nach OS2 noch kein NextSel offen ist...
  if( SH_fiLO==false && ne_SH==false ){

//  ...prüfen, ob FirstBuy unter DON_Sel ist:
    if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
    if(OrderSymbol()==Symbol()){
    FiBuy_DON_Sel=NormalizeDouble( OrderOpenPrice() - D_ONO *Point,Digits);

//    Wenn FirstBuy unter DON_Sel ist...
      if( Bid <= FiBuy_DON_Sel ){

//      ...First-NextSel öffnen.
        for( k=OrdersNeed_Multi ; k>0 ; k-- ){// ?
          if(IsTradeAllowed()==true)TI_Sel_FiBuy=OrderSend(Symbol(),OP_SELL,Lots,Ask,Slippage,SL_Sel,TP_Sel,NULL,MN_Sel_FiBuy,clrBlue);
          if(IsTradeContextBusy()==true)Sleep(slMS);
          Opened_Sel++;
          Need_Buy = OrdersNeed_Multi * Opened_Sel;
          Need_Sel = OrdersNeed_Multi * Need_Buy;} }// FirstBuy unter DON_Sel. Erste NextSel öffnen.
//-----------------------------------------------------------------------------------------------------------*/
    } }// Nach Os2 FirstBuy ausgewählt.
  }// Nach OS2 noch kein(e) NextSel offen.
//=============================================================================================================
//( O S 2 )   O P E N   N E X T   B U Y   B Y   F I R S T   S E L
//=============================================================================================================
//...wenn nach OS2 noch kein NextBuy offen ist...
  if( LO_fiSH==false && ne_LO==false ){

//  ...prüfen, ob FiSel über DON_Buy ist:
    if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
    if(OrderSymbol()==Symbol()){
    FiSel_DON_Buy=NormalizeDouble( OrderOpenPrice() + D_ONO *Point,Digits);

//    Wenn FirstSel über D_ON_Buy ist... 
      if( Ask >= FiSel_DON_Buy ){

//      ...First-NextBuy öffnen.
        for( l=OrdersNeed_Multi ; l>0 ; l-- ){// ?
          if(IsTradeAllowed()==true)TI_Buy_FiSel=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_Buy_FiSel,clrBlue);
          if(IsTradeContextBusy()==true)Sleep(slMS);
          Opened_Buy++;
          Need_Sel = OrdersNeed_Multi * Opened_Buy;
          Need_Buy = OrdersNeed_Multi * Need_Sel;} }// FirstSel über DON_Buy
//-----------------------------------------------------------------------------------------------------------*/
    } }//Nach Os2 FirstSel ausgewählt.
  }// Nach OS2 noch kein(e) NextBuy offen.
//-----------------------------------------------------------------------------------------------------------*/
}// nach OS2 (nur) FirstSel und FirstBuy offen.
//=============================================================================================================
// O R D E R   S E A R C H   3
//=============================================================================================================
for(m=OrdersTotal()-1;m>=0;m--){
if(OrderSelect(m,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fi_SH=true;
if(OrderMagicNumber()==MN_FiBuy)fi_LO=true;
if(OrderMagicNumber()==MN_Buy_FiSel)LO_fiSH=true;
if(OrderMagicNumber()==MN_Sel_FiBuy)SH_fiLO=true;  
if(OrderMagicNumber()==MN_NeSel)ne_SH=true;
if(OrderMagicNumber()==MN_NeBuy)ne_LO=true;}}}
//-----------------------------------------------------------------------------------------------------------*/
//Wenn nach OS3 FirstSel und FirstBuy offen sind...
if( fi_SH==true && fi_LO==true ){
//=============================================================================================================
//( O S 3 ) O P E N   M O R E   S E L   B Y   F I R S T   N E X T   B U Y
//=============================================================================================================
//...wenn nach OS3 NextBuy_by_FirstSel offen ist...
  if( LO_fiSH==true ){
//-----------------------------------------------------------------------------------------------------------*/
//  ...wenn nach OS3 noch kein Next-NextBuy offen ist...
    if( ne_LO==false ){

//    ...prüfen, ob NeBuy-byFirstSel unter DON_Sel ist:
      if(OrderSelect(TI_Buy_FiSel,SELECT_BY_TICKET)){
      if(OrderSymbol()==Symbol()){
      NeBuy_DON_Sel=NormalizeDouble( OrderOpenPrice() - D_ONO *Point,Digits);

//      Wenn letzter NextBuy unter DON_Sel ist... 
        if( Bid <= NeBuy_DON_Sel ){

//        ...prüfen, ob FiSel DCAO erreicht hat:
          if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
          if(OrderSymbol()==Symbol()){
          DCAO_FiSel=NormalizeDouble( OrderOpenPrice() - D_CAO *Point,Digits);

//          Wenn FirstSel über DCAO ist...
            if( Ask > DCAO_FiSel ){

//            ...weitere SelOrders by NextBuy öffnen.
              for( n=Need_Sel ; n>0 ; n-- ){// ?
                if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,clrBlue);
                if(IsTradeContextBusy()==true)Sleep(slMS);
                Opened_Sel++;
                Need_Buy = OrdersNeed_Multi * Opened_Sel;
                Need_Sel = OrdersNeed_Multi * Need_Buy;} }// FirstSel über DCAO. Weitere NeSel by Buy öffnen. ?
          } }// FirstSel ausgewählt.
        }// Letzter NeBuy unter NextBuy_DON_Sel.
      } }// Nach OS3 NextBuy-by-FirstSel ausgewählt.
//-----------------------------------------------------------------------------------------------------------*/
    }// Nach OS3 noch kein Next-NextBuy offen.
//=============================================================================================================
//( O S 3 ) O P E N   M O R E   S E L   B Y   N E X T   N E X T   B U Y
//=============================================================================================================
//...wenn nach OS3 doch Next-NextBuy offen ist...
    if( ne_LO==true ){

//    ...prüfen, ob Next-NextBuy unter DON_Sel ist:
      if(OrderSelect(TI_NeBuy,SELECT_BY_TICKET)){
      if(OrderSymbol()==Symbol()){
      NeBuy_DON_Sel=NormalizeDouble( OrderOpenPrice() - D_ONO *Point,Digits);

//      Wenn letzter NextBuy unter D_ON_Sel ist... 
        if( Bid <= NeBuy_DON_Sel ){

//        ...prüfen, ob FiSel DCAO erreicht hat:
          if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
          if(OrderSymbol()==Symbol()){
          DCAO_FiSel=NormalizeDouble( OrderOpenPrice() - D_CAO *Point,Digits);

//          Wenn FirstSel über DCAO ist...
            if( Ask > DCAO_FiSel ){

//            ...weitere SelOrders by Next-NextBuy öffnen.
              for( n=Need_Sel ; n>0 ; n-- ){// ?
                if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,clrBlue);
                if(IsTradeContextBusy()==true)Sleep(slMS);
                Opened_Sel++;
                Need_Buy = OrdersNeed_Multi * Opened_Sel;
                Need_Sel = OrdersNeed_Multi * Need_Buy;} }// Nach OS3 FiSel über DCAO. Weitere NeSel by Buy öffnen. ?
          } }// Nach OS3 FirstSel ausgewählt.
        }// Nach OS3 letzter NeBuy unter D_ON_Sel     
      } }// Nach OS3 Next-NextBuy ausgewählt.
    }// Nach OS3 Next-NextBuy offen.
//-----------------------------------------------------------------------------------------------------------*/
  }// Nach OS3 NextBuy-by-FirstSel offen.
//=============================================================================================================
// ( O S 3 )   O P E N   M O R E   B U Y   B Y   F I R S T   N E X T   S E L
//=============================================================================================================
//...wenn nach OS3 First-NextSel offen ist...
  if( SH_fiLO==true ){
 //-----------------------------------------------------------------------------------------------------------*/ 
//  ...wenn nach OS3 noch kein Next-NextSel offen ist...
    if( ne_SH==false ){

//    ...prüfen, ob NeSel über DON_Buy ist:
      if(OrderSelect(TI_Sel_FiBuy,SELECT_BY_TICKET)){
      if(OrderSymbol()==Symbol()){
      NeSel_DON_Buy=NormalizeDouble( OrderOpenPrice() + D_ONO *Point,Digits);

//      Wenn NextSel über DON_Buy ist...      
        if( Ask >= NeSel_DON_Buy ){// Ask oder Bid ?

//        ...prüfen, ob FirstBuy D_CAO erreicht hat:
          if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
          if(OrderSymbol()==Symbol()){
          DCAO_FiBuy=NormalizeDouble( OrderOpenPrice() + D_CAO *Point,Digits);

//          Wenn FirstBuy unter D_CAO ist...
            if( Bid < DCAO_FiBuy ){

//            ...weitere Buy-Orders by NextSel öffnen:
              for( o=Need_Buy ; o>0 ; o-- ){
                if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,clrBlue);
                if(IsTradeContextBusy()==true)Sleep(slMS);
                Opened_Buy++;
                Need_Sel = OrdersNeed_Multi * Opened_Buy;
                Need_Buy = OrdersNeed_Multi * Need_Sel;} }// Nach OS3 FiBuy unter D_CAO. Open more Buy by NeSel.
          } }// Nach OS3 FirstBuy ausgewählt.
        }// Nach OS3 NeSel über D_ON_Buy.
      } }// Nach OS3 NeSel_by_FirstBuy ausgewählt.
//-----------------------------------------------------------------------------------------------------------*/
    }// nach OS3 noch kein Next-NextSel offen
//=============================================================================================================
// O P E N   M O R E   B U Y   B Y   N E X T   N E X T   S E L
//=============================================================================================================
//  ...wenn nach OS3 doch Next-NextSel offen ist...
    if( ne_SH==true ){

//    ...prüfen, ob NeSel über DON_Buy ist:
      if(OrderSelect(TI_NeSel,SELECT_BY_TICKET)){
      if(OrderSymbol()==Symbol()){
      NeSel_DON_Buy=NormalizeDouble( OrderOpenPrice() + D_ONO *Point,Digits);

//      Wenn NextSel über DON_Buy ist...      
        if( Ask >= NeSel_DON_Buy ){// Ask oder Bid ?

//        ...prüfen, ob FirstBuy D_CAO erreicht hat:
          if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
          if(OrderSymbol()==Symbol()){
          DCAO_FiBuy=NormalizeDouble( OrderOpenPrice() + D_CAO *Point,Digits);

//          Wenn FirstBuy unter D_CAO ist...
            if( Bid < DCAO_FiBuy ){

//            ...weitere Buy-Orders by NextSel öffnen:
              for( o=Need_Buy ; o>0 ; o-- ){
                if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,clrBlue);
                if(IsTradeContextBusy()==true)Sleep(slMS);
                Opened_Buy++;
                Need_Sel = OrdersNeed_Multi * Opened_Buy;
                Need_Buy = OrdersNeed_Multi * Need_Sel;} }// Nach OS3 FiBuy unter D_CAO. Open more Buy by NeSel.
          } }// Nach OS3 FirstBuy ausgewählt.
        }// NeSel über D_ON_Buy.
      } }// Nach OS3 Next-NextSel ausgewählt.
//-----------------------------------------------------------------------------------------------------------*/
    }// nach OS3 Next-NextSel offen.
//-----------------------------------------------------------------------------------------------------------*/
  }// nach OS3 FirstNextSel offen.
//-----------------------------------------------------------------------------------------------------------*/
}// Nach OS3 firstSel und firstBuy offen.
Angehängte Dateien
Dateityp: mq4 LoShDTi_v4.mq4 (47,4 KB, 2x aufgerufen)