Einzelnen Beitrag anzeigen
  #9 (permalink)  
Alt 14.02.22
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

Hallo.


Kann es sein, dass vor einigen Tagen oder Wochen irgendwas passiert ist? Auf ein mal waren irgendwelche Spreads von ungefähr 12 auf 20 Punkte gestiegen. Ist gar nicht gut für nen MG-EA...


Der MartinGale-EA für MT4 im Anhang müsste jetzt eigentlich richtig funktionieren.


Für den bräuchte man also nen Broker mit...

...möglichst kleinem Spread

...möglichst großem Hebel ( min. 100-fach, besser 200-fach, gerne noch mehr )

...möglichst großen MaxLots

Ob der nun in der tollen Bananen-Forscher-EU ist oder nicht, er sollte auf jeden Fall absolut seriös sein.

Andernfalls sollte er eben Nano-Lots oder noch kleinere MinLots haben und möglichst große MaxLots. Und niedrige Spreads. Ist ja letztendlich egal, wo er seinen Sitz hat, solange er verlässlich und seriös ist.


Bei kleinen Spreads und großem Hebel müsste das Gerät eigentlich gut laufen. Sagen wir mal der Spread beträgt nie mehr als 5 Punkte. Dann könnte man ihn so einstellen, dass er ne Gegen-Order öffnet, wenn die Jetzige so ca. 15 - 20 P. im Verlust ist. Könnte sein, dass es dann noch ein paar mal hin und her geht, aber anders als bei den Spreads bei meinem jetzigen Broker müsste jede Runde eigentlich mit 3 - 5 notwendigen Gegen-Orders zu Ende gehn. Da müssten jedes Mal bestimmt nen paar Cent Gewinn drin sein, sofern nicht schon die 1. Order das Gewinn-Ziel erreicht ( Scalpen ). Klingt nicht viel, aber man muss ja auch nicht viel machen.


Ansonsten könnte man das MartinGale-Prinzip vielleicht mal mit Futures probieren. Von denen hab ich aber nicht wirklich Ahnung.


Im Großen und Ganzen arbeitet der EA eigentlich relativ einfach:
Code:
//=============================================================================================================
//   N E X T   S E L
//=============================================================================================================

// Wenn Buy offen ist...
if( LO==true ){

//-----------------------------------------------------------------------------------------------------------*/

//...Buy auswählen...
  if(OrderSelect(TI_Buy,SELECT_BY_TICKET)){

//  ...D_CWO-Buy berechnen:
    DCW_Buy = NormalizeDouble( OrderOpenPrice() + D_CWO *Point,Digits);

//  Buy schließen, wenn er über DCW_Buy ist:
    if( Ask > DCW_Buy ){// ?
      if(IsTradeAllowed())OC_Buy=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrRed);
      if(IsTradeContextBusy())Sleep(slMS);}// Ask über DCW_Buy.
      

//  Wenn Buy unter D_CWO_Buy ist, DON_Sel berechnen:
    DON_Sel = NormalizeDouble( OrderOpenPrice() - D_ONO *Point,Digits);

//  Lots_Sel für NextSel berechnen:
    Lots_Sel = OrderLots() * LW_Multi * Lots_Multi;

//  EA an Buy-Ticket "erinnern".
    TI_Buy=OrderTicket();
  
  }// Buy ausgewählt.

//-----------------------------------------------------------------------------------------------------------*/

//Wenn Buy unter DON_Sel ist...
  if( Bid < DON_Sel ){// ? Vermutlich Muss Bid unter DON_Sel sein?        

//  ...prüfen, ob schon NextSel mit entsprechendem Lots_Sel-Ergebnis offen ist:
    OL=Lots_Start;
    for(i=OrdersTotal()-1;i>=0;i--){
    if(OrderSelect(i,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if( OrderMagicNumber()==MN_Sel ){
        if( OrderLots() > OL )OL = OrderLots();}}}}

    LSel_DTS=DoubleToStr(Lots_Sel,Lots_Digits);
    LSel_STD=StrToDouble(LSel_DTS);
        
//  Wenn noch kein NextSel mit Lots_NextSel-Ergebnis offen ist... 
    if( LSel_STD > OL ){
  
//    ...entsprechend NextSel öffnen:
      if(IsTradeAllowed())TI_Sel=OrderSend(Symbol(),OP_SELL,LSel_STD,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_Sel,clrBlue);
      if(IsTradeContextBusy())Sleep(slMS);

//    Wenn Sel geöffnet wurde, Verlust-Buy schließen:
      if(OrderSelect(TI_Buy,SELECT_BY_TICKET)){
        if(IsTradeAllowed())OC_Buy=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrRed);
        if(IsTradeContextBusy())Sleep(slMS);}


      Print("Opened Sel:",
            
            "NextSel Spr=" ,DoubleToStr(Ask-Bid,Digits),
                
            "-Lots_Multi=" ,Lots_Multi,
            "-Lots_Sel="   ,Lots_Sel,
            "-LSel_STD="   ,LSel_STD,

            "-Margin="     ,AccountMargin()
            
                
           );


    }// kein NextSel mit Lots_NextSel-Ergebnis offen

  }// Bid unter DON_Sel

}// LO==true

//=============================================================================================================
//   N E X T B U Y
//=============================================================================================================

if( SH==true ){

//-----------------------------------------------------------------------------------------------------------*/

//Sel auswählen...
  if(OrderSelect(TI_Sel,SELECT_BY_TICKET)){

//  D_CWO-Sel ausrechnen:    
    DCW_Sel=NormalizeDouble( OrderOpenPrice() - D_CWO *Point,Digits);

//  Wenn Sel darunter ist, Sel schließen.
    if( Bid < DCW_Sel ){// ? Vermutlich muss Bid unter DCW_Sel sein?
      if(IsTradeAllowed())OC_Sel=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);
      if(IsTradeContextBusy())Sleep(slMS);}


//  Wenn Sel über DCWO_Sel ist DON_Buy ausrechnen...
    DON_Buy=NormalizeDouble( OrderOpenPrice() + D_ONO *Point,Digits);

//  Lots_Buy berechnen...
    Lots_Buy = OrderLots() * LW_Multi * Lots_Multi;

//  EA an FirstSel-Ticket "erinnern".
    TI_Sel=OrderTicket();
  
  }// Sel ausgewählt

//-----------------------------------------------------------------------------------------------------------*/

//Wenn Sel über DON_Buy ist...
  if( Ask > DON_Buy ){// Vermutlich muss Ask über DON_Buy sein?

//  ...Prüfen, ob schon Buy mit entsprechendem Lots_Buy-Ergebnis offen ist:
    OL=Lots_Start;
    for(j=OrdersTotal()-1;j>=0;j--){
    if(OrderSelect(j,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if( OrderMagicNumber()==MN_Buy ){
        if( OrderLots() > OL )OL = OrderLots();}}}}

    LBuy_DTS=DoubleToStr(Lots_Buy,Lots_Digits);
    LBuy_STD=StrToDouble(LBuy_DTS);

//  Wenn noch kein NextBuy mit entsprechendem Lots_Buy-Wert offen ist...
    if( LBuy_STD > OL ){

//    ...entsprechend Buy öffnen...
      if(IsTradeAllowed())TI_Buy=OrderSend(Symbol(),OP_BUY,LBuy_STD,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_Buy,clrBlue);
      if(IsTradeContextBusy())Sleep(slMS);

//    ...und Verlust-Sel schließen.
      if(OrderSelect(TI_Sel,SELECT_BY_TICKET)){
        if(IsTradeAllowed())OC_Sel=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);
        if(IsTradeContextBusy())Sleep(slMS);} 


        Print("Opened Buy:",
              
              "NextBuy Spr="  ,DoubleToStr(Ask-Bid,Digits),

              "-Lots_Multi="  ,Lots_Multi,
              "-Lots_Buy="    ,Lots_Buy,
              "-LBuy_STD="    ,LBuy_STD,
                
              "-Margin="      ,AccountMargin()


             );


    }// Kein Buy mit letztem Buy-Lots-Wert offen

  }// Sel über DON_Buy

}// Sel offen
Angehängte Dateien
Dateityp: mq4 SH_LO_TI_OneOrd_v2_PRINT.mq4 (29,1 KB, 3x aufgerufen)