Frage an jemanden, der gut in Mathematik ist

 

Wenn die Kursbewegung einem Zufallsprinzip folgt (und dieses Forum wäre leer, wenn alle glauben, dass es so ist), wie viele Pips müsste ein Händler gewinnen/verlieren, um die gleichen Chancen wie beim Roulette zu haben? In diesem Fall nehmen wir ein europäisches Rad mit 36 Zahlen und einer einzigen 0 an. Der Einsatz ist die Even Money Wette von Odds vs Even, 1:1 Auszahlung. Wenn Sie auf 0/Grün landen, verlieren Sie natürlich. Die 0 oder das Grün dienen also als Spreads. Und wir gehen davon aus, dass die Spreads 1-Pip sind.

Mein Gedanke ist, dass ich, wenn ich nach einem 1-Pip Gewinn suche, einen 1-Pip Stop-Loss habe. Angenommen, wieder theres keine Voreingenommenheit auf welcher Seite der Preis gehen würde, dann würde ich mit einer Quote spielen, die viel schlechter als Roulette ist. Ich glaube nicht einmal, dass die Suche nach einem 10-Pip-Stop-Loss gegenüber einem 10-Pip-Take-Profit den Handel zur besseren Option macht. Ich habe es geschafft, die Antwort in meinem Kopf den anderen Tag herauszufinden, aber heute habe ich es vergessen, + ich war nicht sicher, meine Mathematik sowieso :).

Kann mir bitte jemand helfen, da ich eine Hypothese zu testen/simulieren habe. Danke!

 

Ich kenne mich mit Statistiken nicht so gut aus... aber ich glaube nicht, dass man Spread und die 0 auf dem Rad gleichsetzen kann. Der Spread wird unabhängig von Gewinn oder Verlust gezahlt. Die 0 auf dem Rad bedeutet nur, dass Sie, wenn Sie auf Rot oder Schwarz setzen, eine Gewinnchance von weniger als 50 % haben ... 18:19 oder 48,65 %.

Ich vermute, Sie wollen wissen, welche Art von Geschäften aufgrund des Spread-Effekts zu einer effektiven Gewinnquote von 48,65 % führen würde. Ich denke, wenn Ihr Handel 20 Pips und der Spread 1 Pip wäre, würde das Ihnen geben, wonach Sie suchen ... Risiko = 21 Belohnung 20 ... Ich denke, aber zitieren Sie mich nicht ;-)

 

Schön, dass Sie anders denken, und das ist eine der Hauptfragen, die ich zu beantworten versuche, weil ich glaube, dass es gleichgesetzt werden kann. Ich weiß, dass es für jeden Dollar, den Sie beim Roulette setzen, einen erwarteten Verlust gibt, der der Differenz zwischen Ihrer Gewinnquote und Ihrem 50/50-Verhältnis entspricht. Wenn Sie zum Beispiel keine 0/Grün auf dem Rad haben, spielen Sie auf lange Sicht ein ausgeglichenes Spiel. Bei einer Chance von nur 48,65 % haben Sie jedoch einen konstanten Verlust von etwa 1,35 Dollar pro 100 Dollar Einsatz.

Der einzige Unterschied zu den Spreads ist ..... Bei den Spreads müssen Sie sie jedes Mal bezahlen, wenn Sie handeln, unabhängig davon, ob das Ergebnis ein Verlust oder ein Gewinn sein wird.

Der nächste Schritt ist nun, dass ich einige Simulationen durchführe. Die erste mit zufälligen Trades, die für 20-Pips-Stoploss und 20-Pips-Take-Profit (natürlich nicht einschließlich der 1-Pip-Spread macht den Gesamtverlust 21 und hoffentlich schafft die Quoten, die ich suche) sucht. Je mehr Trades/Proben innerhalb dieses Tests, desto besser. Hummm, ich frage mich, ob jemand denken, es ist nicht gehen, um ähnliche Ergebnisse im Vergleich zu Roulette geben?

 
ubzen: Hummm, ich frage mich, ob jemand denken, es ist nicht gehen, um ähnliche Ergebnisse im Vergleich zu Roulette geben?
Ja, ich, weil der Handel hat viele Dinge versteckt, die gegen die Wette sind. Zum Beispiel ist die Platzierung des Handels ein bewegliches Ziel und es kann sein, dass er nicht angenommen wird, während sich das Feld auf einem Roulettetisch nicht bewegt. Es gibt viele Faktoren, die den Handel beeinträchtigen, die nicht simuliert werden können, aber jeder von ihnen spricht gegen einen Gewinn.
 

Ok, Leute, wir haben einige Daten.

color   Color;
double  Sl; 
double  Tp;
double  Pips;
double  Price;

void start(){
    if(OrdersTotal()==0){
        int Dir=MathRand()%2;
        Pips=Point; if(Digits==3){Pips=0.01;}if(Digits==5){Pips=0.0001;}
        if(Dir==0){Price=Ask; Sl=Ask-20*Pips; Tp=Ask+20*Pips; Color=Blue;}
        if(Dir==1){Price=Bid; Sl=Bid+20*Pips; Tp=Bid-20*Pips; Color=Red;}
        int Ticket=OrderSend(Symbol(),Dir,0.1,Price,999,0,0,"",0,0,Color);
        if(Ticket>-1){
            if(OrderSelect(Ticket, SELECT_BY_TICKET)){
                OrderModify(Ticket,OrderOpenPrice(),Sl,Tp,0,Color);
}   }   }   }

Jetzt sicher gibt es einige 19,9x Gewinn und Verluste in dort. Allerdings spricht die profitable Trades% für sich selbst.

 

Es stellt sich heraus, dass es sogar schlechter ist als Roulette, aber das liegt an den Standardfehlern oder was auch immer die Statistik braucht. Jemand anderes kann es laufen und erhalten etwas höher oder niedriger Werte jedoch, ich glaube, es ist mathematische Erwartung ist die gleiche wie Roulette. Mann, wenn das einen Händler, der das nicht weiß, nicht zu Tode erschreckt, dann wird es nichts anderes sein.

Wie auch immer, weiter geht's. Der nächste logische Schritt, als ich davon erfuhr, war, eine mql4-Simulation von Zufallszahlen durchzuführen, um zu sehen, ob sie irgendwo zwischen 0 und 36 landen, und wenn es eine gerade Zahl ist, 1$ zu meiner laufenden Summe hinzuzufügen (beginnend bei 100.000 $) oder 1$ abzuziehen, wenn es eine ungerade oder 0 ist. Aber das wäre Zeitverschwendung, weil jeder und seine Mama die Chancen beim Roulette kennen. Und wenn sie es nicht wissen, kann man sie einfach online nachschlagen. Also werde ich diesen Schritt einfach überspringen.

Aber wie auch immer, wir sind Trader, lol. Wir glauben nicht, dass die Märkte zufällig sind, und wir glauben, dass wir den Markt mit einer gewissen Erfolgswahrscheinlichkeit vorhersagen können. Also wäre zumindest für mich der nächste Schritt, eine Prognosemethode gegenüber den zufälligen Einträgen zu entwickeln. Aber meine nächste Frage ist, wie können wir ein Handelssystem damit vergleichen, wenn man bedenkt, dass wir bei all den Filtern, die wir beim Handel verwenden, nicht annähernd so viele Stichproben haben werden?

 

Ok, ich warte immer noch auf Vorschläge zu meiner obigen Frage. In der Hauptsache werde ich 2 Systeme vorschlagen. Eines davon werde ich als System 14 von http://forex-strategies-revealed.com/simple/simple-trading-with-daily-range bezeichnen. Und das andere nenne ich Oscar's Grind von http://www.blackjackforumonline.com/content/Betting_Systems_Oscars_Blackjack_System.htm.

Ein paar Worte zu System 14: Es war das Thema mit der größten Resonanz auf der Website, das ich finden konnte. Es ist ziemlich einfach zu programmieren, und viele Poster halten es für einen Gewinner.

Ein paar Worte über OscarGrind: Vorteilsspieler hören das Wort "Progression" gar nicht gerne. Aber wenn es von einem Autor kommt, vor dem ich großen Respekt habe (auch wenn er nicht sagt, dass es eine sichere Sache ist), bin ich bereit, es in diesem Zusammenhang zu versuchen.

Ich werde fortfahren und meine Interpretation beider Systeme kodieren und posten. Ein Fallstrick für System-14 ist hier wahrscheinlich die Tatsache, dass ich es zwingen werde, einen 20-Pip SL-TP zu verwenden. Ein Fallstrick für OscarGrind ist die Frage, wie man Size-Orders so gestaltet, dass sie nur eine Einheit nach einem Win suchen. Aber drücken Sie die Daumen, Jungs, ein profitables System könnte bald bestätigt werden.

 

Ok, hier ist System_14. Fast Break-Even, also nicht schlecht im Vergleich zu Random, aber immer noch viel Raum für Verbesserungen. Wie auch immer, hier sind die Codes, die ich gerade geschrieben habe, also vielleicht nicht fehlerfrei.

int     Magic_S14=14;
double  Sl; 
double  Tp;
double  Pips;
double  Price;
color   Color;
bool    Pen_Mode;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void start(){
    if(!isNewBar() && !Pen_Mode){return(0);}
    Pips=Point; 
    if(Digits==3){Pips=0.01;} 
    if(Digits==5){Pips=0.0001;}
    Check_Pending_Order_Condition();
    Set_Trigger_Market_Order_SlTp();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool isNewBar(){ static datetime LastBar;
    datetime CurBar=iTime(Symbol(),PERIOD_D1,0);
    if(LastBar !=CurBar){LastBar=CurBar; return(true);}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double Percent25_Previous_24Hours_Move(){
    double High_=iHigh(Symbol(),PERIOD_D1,1); double Low_=iLow(Symbol(),PERIOD_D1,1);
    double Total_Move=High_-Low_; double Percent_25=NormalizeDouble(Total_Move*0.25,Digits); 
    return(Percent_25);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Check_Pending_Order_Condition(){
    if(Count_Orders_Magic_Symbol_Only()==0){
        int Stop_Level=MarketInfo(Symbol(),MODE_STOPLEVEL);
        double Percent_25=Percent25_Previous_24Hours_Move();
        if(Percent_25<Stop_Level*Pips){Percent_25=Stop_Level*Pips;}
        OrderSend(Symbol(),OP_BUYSTOP,0.1,Ask+Percent_25,999,0,0,"",Magic_S14,0,Blue);
        OrderSend(Symbol(),OP_SELLSTOP,0.1,Bid-Percent_25,999,0,0,"",Magic_S14,0,Red);
        if(Count_Orders_Magic_Symbol_Type(1)==2){Pen_Mode=true;}
        else{Print("Twin_OrderSend_Failed_Error=",GetLastError());}
}   }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int Count_Orders_Magic_Symbol_Only(){
    int Ans;
    for(int i=OrdersTotal()-1; i>=0; i--){
        if(OrderSelect(i, SELECT_BY_POS)
        && OrderMagicNumber()==Magic_S14
        && OrderSymbol()==Symbol()){Ans++;}
    }return(Ans);
    //~~~~~~~~~~~~~~~~~~~~
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int Count_Orders_Magic_Symbol_Type(int x){
    int Ans;
    for(int i=OrdersTotal()-1; i>=0; i--){
        if(OrderSelect(i, SELECT_BY_POS)
        && OrderMagicNumber()==Magic_S14
        && OrderSymbol()==Symbol()
        && OrderType()>x){Ans++;}
    }return(Ans);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool Set_Trigger_Market_Order_SlTp(){
    if(!Pen_Mode){return(0);}
    for(int i=OrdersTotal()-1; i>=0; i--){
        if(OrderSelect(i, SELECT_BY_POS)
        && OrderMagicNumber()==Magic_S14
        && OrderSymbol()==Symbol()
        && (OrderType()==0 || OrderType()==1)
        ){int Ot=OrderTicket(); double Op=OrderOpenPrice(); bool Res;
            if(OrderType()==OP_BUY){Res=OrderModify(Ot,Op,Op-20*Pips,Op+20*Pips,0,Blue);}else
            if(OrderType()==OP_SELL){Res=OrderModify(Ot,Op,Op+20*Pips,Op-20*Pips,0,Red);}
            if(!Res){Print("Setting_Sl_Tp_Failed_Error=",GetLastError()); return(Res);}
    }   }
    if(Res){
        for(    i=OrdersTotal()-1; i>=0; i--){
            if(OrderSelect(i, SELECT_BY_POS)
            && OrderMagicNumber()==Magic_S14
            && OrderSymbol()==Symbol()
            && (OrderType()==4 || OrderType()==5)
            ){
                Res=OrderDelete(OrderTicket());
                if(!Res){Print("Pending_Delete_Failed_Error=",GetLastError()); return(Res);}
                if(Res){Pen_Mode=false;} return(Res);
}   }   }   }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

Nun, die Oscars Grind auf Forex ist ein totaler Failer. Ich schätze, dass hier kein Goly-Grail entdeckt wird. Allerdings, einige Dinge zu beachten. Wenn Sie mit einem Zufallssystem handeln und Spreads von 1-3 haben und einen Take Profit von <60 Pips anstreben, sollten Sie lieber Casino-Roulette spielen. Wenn Sie Progressionen (Martingale oder andere) verwenden, ist es nur eine Frage der Zeit, bis Sie ruiniert sind, vor allem, wenn Sie schlechte Prognosen haben. Eine bessere Vorhersage könnte die beste Methode sein, um die Gewinnchancen zu Ihren Gunsten zu verbessern.

Nochmals: Tester-Codierung. Kann Fehler enthalten und sollte nicht auf Live-Konten verwendet werden.

int     Magic_OG;
color   Color;
double  Sl; 
double  Tp;
double  Pips;
double  Price;
double  Lots;
double  Bank_Hi;
double  Last_OrSize;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void start(){
    if(Count_Orders_Magic_Symbol_Only()==0){
        if(AccountEquity()>Bank_Hi){Bank_Hi=AccountEquity();}
        int Dir=MathRand()%2;
        Pips=Point; if(Digits==3){Pips=0.01;}if(Digits==5){Pips=0.0001;}
        if(Dir==0){Price=Ask; Sl=Ask-20*Pips; Tp=Ask+20*Pips; Color=Blue;}
        if(Dir==1){Price=Bid; Sl=Bid+20*Pips; Tp=Bid-20*Pips; Color=Red;}
        Alert(Lot_Size());
        int Ticket=OrderSend(Symbol(),Dir,Lot_Size(),Price,999,0,0,"",0,0,Color);
        if(Ticket>-1){
            if(OrderSelect(Ticket, SELECT_BY_TICKET)){
                OrderModify(Ticket,OrderOpenPrice(),Sl,Tp,0,Color);
}   }   }   }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int Count_Orders_Magic_Symbol_Only(){
    int Ans;
    for(int i=OrdersTotal()-1; i>=0; i--){
        if(OrderSelect(i, SELECT_BY_POS)
        && OrderMagicNumber()==Magic_OG
        && OrderSymbol()==Symbol()){Ans++;}
    }return(Ans);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double Lot_Size(){
    double BkrLotStep=     MarketInfo(Symbol(),MODE_LOTSTEP);
    double BrkMiniLot=     MarketInfo(Symbol(),MODE_MINLOT);
    double BrkMaxiLot=     MarketInfo(Symbol(),MODE_MAXLOT);
    double Tick_Value=     MarketInfo(Symbol(),MODE_TICKVALUE);
    double Tick_Sizes=     MarketInfo(Symbol(),MODE_TICKSIZE);
    if(Digits==2 || Digits==3){ int Pips_2Real=100;}
    if(Digits==4 || Digits==5){ Pips_2Real=10000;}
    double Pip_Values=Tick_Value / (Tick_Sizes*Pips_2Real);
    double AE=AccountEquity();
    bool isLastWin=His_LasOrdWin_Magic_Symbol_Only();
    if(!isLastWin){Lots=Last_OrSize;}
    if( isLastWin && AE>=Bank_Hi){Lots=0.1;}
    if( isLastWin && AE <Bank_Hi){Lots=Last_OrSize+0.1;
        double Target=20+Bank_Hi-AE;
        if(Lots*Pip_Values*20>Target){
            for(double i=Lots; i>BrkMiniLot; i-=BkrLotStep){
                if(i*Pip_Values*20<=Target){Lots=i; break;}
    }   }   }
    if(Lots>BrkMaxiLot){Lots=BrkMaxiLot;}
    if(Lots<BrkMiniLot){Lots=BrkMiniLot;} return(Lots);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool His_LasOrdWin_Magic_Symbol_Only(){
    if(OrdersHistoryTotal()==0){return(true);}
    for(int i=OrdersHistoryTotal()-1; i>=0; i--){
        if(OrderSelect(i, SELECT_BY_POS,MODE_HISTORY)
        && OrderMagicNumber()==Magic_OG
        && OrderSymbol()==Symbol()){
            Last_OrSize=OrderLots();
            if(OrderProfit()>0){return(true);}
}   }   }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Da Sie den Prototyp bereits haben, können Sie schnell etwas testen?

Wenn Sie die Losgröße in Abhängigkeit von Ihrem aktuellen Gewinn/Verlust-Verhältnis und unter der Annahme eines negativen Ergebnisses geringfügig anpassen, sollte sich das Ergebnis zumindest leicht verbessern.

Beispiel:

Nehmen Sie Ihr Zufallssystem und gehen Sie von einer Gewinnquote von 47% aus.

Nun erhalten Sie den Modifikator durch: 47/Ist-GewinnRate

Und die Losgröße wäre dann (47/Ist-GewinnRage)*Losgröße

 

Ich bin gerade aufgewacht und habe beschlossen, diesen Ansatz auszuprobieren.

In der Tat ein plumper Trick. Ich denke, dass es in gewissem Maße dem nachjagt, was es bereits weiß :). Das Roulette-System hat weniger Verluste erlitten. Ich denke, das ist eine Möglichkeit, ein System zu verbessern. Ich werde dies auch als eine Form der negativen Progression betrachten. Der Money-Management-Code ist unten, auch nicht fehlerfrei.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
double Lot_Size(int Switch){
    static int Saved_His_Total; 
    int His_Total=OrdersHistoryTotal();
    if(His_Total==0){return(0.1);}
    if(Saved_His_Total != His_Total){
        Saved_His_Total=His_Total;
        for(int i=His_Total; i>=0; i--){
            if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)
            && OrderMagicNumber()==Magic
            && OrderSymbol()==Symbol()
            ){
                static int Trade_Total; Trade_Total++;
                static int Buy_Wins; static int Sel_Wins;
                static int Buy_Loss; static int Sel_Loss;
                static double Buy_Profit, Buy_Losses;
                static double Sel_Profit, Sel_Losses;
                if(OrderType()==OP_BUY && OrderProfit()>0){
                    Buy_Wins++; Buy_Profit+=OrderProfit();}
                if(OrderType()==OP_BUY && OrderProfit()<=0){
                    Buy_Loss++; Buy_Losses+=OrderProfit();}
                if(OrderType()==OP_SELL && OrderProfit()>0){
                    Sel_Wins++; Sel_Profit+=OrderProfit();}
                if(OrderType()==OP_SELL && OrderProfit()<=0){
                    Sel_Loss++; Sel_Losses+=OrderProfit();} break;
        }   }
        double Win_Total = Buy_Wins + Sel_Wins;
        double Loss_Total = Buy_Loss + Sel_Loss;
        double Profit_Total = Buy_Profit + Sel_Profit;
        double Losses_Total = Buy_Losses + Sel_Losses;
        if(Win_Total !=0){double Avg_Profit = Profit_Total / Win_Total;}
        if(Loss_Total!=0){double Avg_Losses = Losses_Total / Loss_Total;}
        if(Trade_Total !=0){double W2L_Ratio = Win_Total / Trade_Total;}
        if(Trade_Total !=0){double L2W_Ratio = Loss_Total / Trade_Total;}
        if(Avg_Losses !=0){double P2L_Ratio = Avg_Profit / Avg_Losses;}
        if(Avg_Losses !=0){double Kd=Avg_Profit/Avg_Losses;}
        //~~~~~~~~~~~~~~~~~~~~~
        if(W2L_Ratio !=0){double RvRoulette=(0.47/W2L_Ratio)*0.1;}
        //~~~~~~~~~~~~~~~~~~~~~
        //http://www.trader-soft.com/money-management/index.html
        if(Kd !=0){double Kelly=(W2L_Ratio-L2W_Ratio)/(Avg_Profit/Avg_Losses);}
        if(P2L_Ratio!=0){double Optimal_f=((P2L_Ratio + 1)*W2L_Ratio-1)/P2L_Ratio;}
        //~~~~~~~~~~~~~~~~~~~~~
        if(Trade_Total==0){return(0.1);}
        if(Switch=='R'){return(RvRoulette);}
        if(Switch=='K'){return(Kelly);}
        if(Switch=='F'){return(Optimal_f);}
        //~~~~~~~~~~~~~~~~~~~~~
    }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ich habe die Kelly und Optimal F mit einbezogen, weil ich bereits die Stats hatte, um sie zu berechnen. Es wird nicht empfohlen, diese bei kleinen Stichprobengrößen (<100) zu verwenden. Auch sie sind in Fraktionen der Bank zu riskieren, so müssen Sie Ihre (meine Präferenz) Konto-Marge * die k oder f * your_risk_appetite (0,5 in der Regel). Dann müssen Sie sicherstellen, dass die Lots*Pip_Values*Stop_Loss<=Target, ich habe irgendwie ein Beispiel für diese innerhalb einer der Codes oben.

Moving On hier sind die Ergebnisse für Zzueggs Vorschlag. Ich frage mich, ob es unser Break-Even-System-14 in einen Gewinner verwandeln kann?

Bars in test                        812652
Ticks modelled                      10091174
Modelling quality                   n/a
Mismatched charts errors            22023
Initial deposit                     100000.00
Total net profit                    -37756.90 The Losses decreased vs -41832
Gross profit                        391593.03
Gross loss                          -429349.92
Profit factor                       0.91
Expected payoff                     -0.83
Absolute drawdown                   38180.64
Maximal drawdown                    38280.06 (38.24%)
Relative drawdown                   38.24% (38280.06)
Total trades                        45448
Short positions (won %)             22883 (47.54%)
Long positions (won %)              22565 (47.90%)
Profit trades (% of total)          21687 (47.72%)
Loss trades (% of total)            23761 (52.28%)
Largest profit trade                46.00
loss trade                          -42.00
Average profit trade                18.06
loss trade                          -18.07
        Maximum
consecutive wins (profit in money)  17 (306.11)
consecutive losses (loss in money)  14 (-251.89)
        Maximal
consecutive profit (count of wins)  306.11 (17)
consecutive loss (count of losses)  -259.64 (13)
        Average
consecutive wins        2
consecutive losses      2