Erfahren Sie mehr über andere "Trading-Strategien". - Seite 4

 
doshur: averaging in ist immer in Ordnung, wenn Sie eine große Losgröße haben und aussteigen wollen, gibt es vielleicht kein Volumen für Sie, um zu dem Preis u wollen aussteigen.

Wenn die Nachrichten veröffentlicht werden, frage ich mich, ob dieses System wie Aud in diesen Tagen überleben kann.

Imo, alles kann überleben, wenn die lot_size klein genug ist. Ob es sich für Sie lohnt, ist eine ganz andere Frage. Können Sie ein System vorschlagen, das in diesen Tagen bei Aud besser abschneidet? Nur zur Erinnerung: Dies ist kein Thread über profitable Systeme anderer Leute. Dies ist ein Thread, in dem ich beabsichtige, dass die Leute verschiedene Experten einreichen und das Gute und Schlechte über die Strategie bewerten. Profitable oder nicht spielt keine Rolle.
 

Ich habe einen Fehler in der Funktion YesLstTrdWin() gefunden.

bool YesLstTrdWin(){
    if(!PositionSelect(CurSetSymbol)){return(false);}
    ulong   PosType=PositionGetInteger(POSITION_TYPE);
    ulong   PosOpTime=PositionGetInteger(POSITION_TIME);
    double  PosPrice=PositionGetDouble(POSITION_PRICE_CURRENT);
    HistorySelect(PosOpTime,TimeCurrent());
    int DealsTotal=HistoryDealsTotal();
    for(int i=DealsTotal-1; i>=0; i--){
        ulong DealTicket=HistoryDealGetTicket(i);
        ulong DealEntry=HistoryDealGetInteger(DealTicket,DEAL_ENTRY);
        if(DealEntry!=DEAL_ENTRY_IN){continue;}
        ulong DealMagic=HistoryDealGetInteger(DealTicket,DEAL_MAGIC);
        if(DealMagic!=SystemMagic1){continue;}
        string DealSymb=HistoryDealGetString(DealTicket,DEAL_SYMBOL);
        if(DealSymb!=CurSetSymbol){continue;}
        ulong  DealType=HistoryDealGetInteger(DealTicket,DEAL_TYPE);
        double DealPrice=HistoryDealGetDouble(DealTicket,DEAL_PRICE);
        if(DealType==DEAL_TYPE_BUY  && PosPrice>DealPrice){return(true);}
        if(DealType==DEAL_TYPE_SELL && PosPrice<DealPrice){return(true);} //This Line Was Left Out.
        return(false);
    }   return(false);
}

Ich habe den letzten Sell-Deal-Checker vergessen, der dazu führte, dass der Durchschnitt innerhalb des Positionsbereichs lag.

*Eine weitere Anmerkung: Mittelwertbildung innerhalb und/oder gegen Raster kann eine wirksame Strategie für Trending-Systeme sein.

 
Ubzen:

Ich habe einen Fehler in der Funktion YesLstTrdWin() gefunden.

Ich habe den letzten Sell Deal Checker vergessen, der dazu führte, dass der Durchschnitt innerhalb des Positionsbereichs lag.

*Eine weitere Anmerkung: Durchschnittsbildung innerhalb und/oder gegen die Raster kann eine wirksame Strategie für Trending-Systeme sein.

Hallo Ubzen,

ich habe diesen Thread schon vor einer Weile gesehen und hatte vor, einen Beitrag zu leisten. Tut mir leid, dass ich mich verzögert habe, aber ich hoffe, dass dies einer dieser Miniforen-Threads innerhalb von mql5 wird. Die Tatsache, dass du ein nicht optimiertes Zufallssignal für stetige Gewinne verwendest, ist sicherlich vielversprechend. Ich bin noch zu tatsächlich studieren das Signal in der Tat sah ich gerade den Code heute und ich zoomte direkt auf Ihre MaxDDCurrency() Funktion. Es hat eine Zeile, die ich denke, könnte ein Fehler sein ...

Sollte dies

if(TempDD>MaxDDCurency){return;}

dies sein?

if(TempDD<=MaxDDCurency){return;}

Eine weitere allgemeine Anmerkung. Wie zuverlässig sind Ihrer Meinung nach die Kursdaten im Strategietester, insbesondere was den Spread betrifft?

PS: Ich werde demnächst auch einen von mir posten.

 

Sie scheinen auch zu nennen

BrkEveEquity();

Auf Tick. Sollten Sie nicht rufen Sie diese von innerhalb der HighestEquity() Funktion dh, wenn eine neue Equity High gesetzt ist. Sorry, wenn meine Kommentare scheinen aus Am noch zu tatsächlich testen die EA selbst in Strategie-Tester, aber ich dachte, ich würde ein Gefühl für das, was Sie dachten, wenn Sie dies schrieb.

 
ssn: Hallo Ubzen, ich habe diesen Thread schon vor einer Weile gesehen und hatte vor, einen Beitrag zu leisten. Tut mir leid, dass ich mich verzögert habe, aber ich hoffe, dass dies einer dieser Miniforen-Threads innerhalb von mql5 wird. Die Tatsache, dass du ein nicht optimiertes Zufallssignal für stetige Gewinne verwendest, ist sicherlich vielversprechend. Ich bin noch zu tatsächlich studieren das Signal in der Tat sah ich gerade den Code heute und ich zoomte direkt auf Ihre MaxDDCurrency() Funktion. Es hat eine Zeile, die ich denke, könnte ein Fehler sein...

Sollte das so sein? Eine weitere allgemeine Anmerkung. Wie zuverlässig sind Ihrer Meinung nach die Kursdaten im Strategietester, insbesondere was den Spread betrifft? PS: Werde demnächst auch eine von mir posten.

Gesamte Funktion:

void MaxDDCurency(){
    int TempDD=AcountEquity-HighesEquity;
    if(TempDD>MaxDDCurency){return;}
    MaxDDCurency=TempDD;
}

1) Setzt Maximum DrawDown in Währung. Diese Funktion setzt die globale Variable mit dem gleichen Namen auf -negativen niedrigsten Drawdown in Kontowährung. Da der Wert negativ ist, sollten Sie in umgekehrter Reihenfolge vorgehen. Beispiel Höchste_Equity=10.000. Konto_Eigenkapital=9.500. Ich möchte den maximalen Drawdown in $ von -500. Ergibt sich als [9.500 - 10.000]. Wenn der temporäre Drawdown dann weniger als -500 beträgt, soll dies als neuer MaxDD registriert werden.

2) Die Spreads sind im Strategietester viel höher als die meisten Leute heute zahlen würden. Das ist meine Meinung, weil viele Broker Sub-Pips anbieten. Die Kursdaten sind nicht so wichtig. Die EA does-not Prozess innerhalb einer Minute Bars, es nur Prozesse bei der Eröffnung der m1 bar des Charts seine angehängt. Sofern Ihre Daten nicht zu viele m1-Balken enthalten, sollte diese Methode zuverlässig genug sein.

3) Das Ergebnis, das ich erhielt, war das erste Ergebnis, das ich nach dem Zusammenstellen des Programms erhielt. Danach habe ich andere Tests durchgeführt, die nicht so vielversprechend waren. Aber selbst bei den 3 anderen Tests, die ich durchgeführt habe, endete das System leicht profitabel oder leicht unprofitabel. Aber ja, die Tatsache bleibt bestehen, dass ein zufälliges, nicht optimiertes System die Krise von 2008 bis 2012 überlebt hat. Vielleicht könnte die Optimierung eines solchen Systems ein Thema für weitere Studien sein. Beispiel: Ihre persönliche Richtung, **kann nicht schlechter sein als zufällig richtig ;)

4) Klar, poste ein System, das du immer als interessant empfunden hast und alles, was dich an diesem System stört. Ich werde versuchen, Ideen vorzuschlagen, die diesen Problemen entgegenwirken könnten.

 
ssn: Sie scheinen auch On tick aufzurufen. Sollten Sie nicht rufen Sie diese von innerhalb der HighestEquity() Funktion dh, wenn eine neue Equity High gesetzt ist. Tut mir leid, wenn meine Kommentare falsch erscheinen. Ich muss den EA noch selbst im Strategietester testen, aber ich dachte, ich würde ein Gefühl dafür bekommen, was Sie dachten, als Sie dies schrieben.

Gesamte Funktion:

void BrkEveEquity(){
    if(SysMagTotCnt()!=0){return;}
    BrkEveEquity=HighesEquity;
    BrkEveEquTme=(int)TimeCurrent();
    SysCloseMode=false;
}
Die Break-Even Equity verwende ich schon seit geraumer Zeit. Manchmal befindet sich diese Funktion innerhalb der Funktion Equity_High, aber ich glaube, ich habe sie vor langer Zeit aus den folgenden Gründen entfernt. 1) Wenn die Break-Even-Equity-Funktion in der Funktion Equity_High enthalten ist, benötige ich die BE-Funktion nicht, da ich stattdessen einfach Equity_High verwenden kann. 2) Ich möchte den Equity_High setzen, wenn ein neuer Account_Equity High erreicht wird und nicht, wenn System_Magic_Total_Count==0. 3) Ich möchte Break_Even setzen, wenn All_Symbols geschlossen sind. Dies bietet folgende Vorteile beim Handel in Live. Wenn Sie alle Positionen schließen, kann es zu einem negativen Slippage kommen. Ihr neues Ziel wird Equity_High + Target$$$ statt z.B. Account_Balance + Target$$.
 

- Ja, die DD ist negativ, das hatte ich nicht gesehen. Vielen Dank

- Ich denke, auch m1-Open-Kurse haben ein Bid und Ask. Wenn Ihr Einstieg auf Bid ist, müssen Sie auf Ask aussteigen (z. B. wenn Sie geshortet haben). Ich habe Tests mit mt5-Daten und mit einem benutzerdefinierten festen Spread durchgeführt, und die Ergebnisse sind eklatant unterschiedlich.

- Ich denke, Ihr Ansatz mit dem Zufallssignal ist der richtige, wenn Ihr Einstieg auf technischen Daten basiert. Wenn Sie jede Optimierung heraushalten können, sollte das besser sein... denke ich. ;)...

- Das System, das ich posten werde, verwendet SOM... eigentlich wird es eine wiederverwendbare Klasse sein. Ich muss noch ein paar letzte Optimierungen vornehmen...

- Okay, das mit BE ist klar. Die MinPerMinLot ist eine feste Variable, die Sie verwenden, um Ihr Volumen im Verhältnis zu der Zeit zu setzen, seit alle Positionen geschlossen wurden?

Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
ssn:

- Ja, die DD ist negativ, das hatte ich nicht gesehen. Vielen Dank

- Ich denke, auch m1-Open-Kurse haben ein Bid und Ask. Wenn Ihr Einstieg auf Bid ist, müssen Sie auf Ask aussteigen (z. B. wenn Sie geshortet haben). Ich habe Tests mit mt5-Daten und mit einem benutzerdefinierten festen Spread durchgeführt, und die Ergebnisse sind eklatant unterschiedlich.

- Ich denke, Ihr Ansatz mit dem Zufallssignal ist der richtige, wenn Ihr Einstieg auf technischen Daten basiert. Wenn Sie jede Optimierung heraushalten können, sollte das besser sein... denke ich. ;)...

- Das System, das ich posten werde, verwendet SOM... eigentlich wird es eine wiederverwendbare Klasse sein. Ich muss noch ein paar letzte Optimierungen vornehmen...

- Okay, das mit BE ist klar. Jetzt ist die MinPerMinLot eine feste Variable, die Sie verwenden, um Ihr Volumen im Verhältnis zu der Zeit zu setzen, seit alle Positionen geschlossen wurden?

1) Gern geschehen.

2) Einverstanden. Ich wünschte, wir könnten die Spreads in mt5 fixieren. Aber es ist auch wichtig, mit realistischen Spreads zu testen und sich nicht selbst etwas vorzumachen.

3) Meine Erfahrung ist, dass bei optimierten Systemen der einmonatige Live-Test in der Regel völlig anders aussieht als erwartet. Diese Art des Testens produziert in der Regel erwartete Statistiken während meiner Live-Tests.... aber auch in der Regel stirbt die gleiche Art und Weise stirbt es in der Strategie-Tester.

4) k

5) Ja. Ziemlich genau, aber es ist viel besser, es als "seit account_equity war >= break-even equity" zu betrachten. Ich habe das Set_Break_Even_Time aus der Break_Even_Equity-Funktion herausgenommen. Ich stelle fest, dass das Setzen einzelner Variablen mit einer eigenen set_function viel besser wiederverwendbar ist als die Bündelung in einer anderen set_function.

Ich denke darüber nach, als nächstes ein Trendfolgesystem mit dem Hinzufügen von Losen als Trendfortschritt zu machen.

 
Ubzen:

1) Gern geschehen.

2) Einverstanden. Ich wünschte, wir könnten die Spreads in mt5 reparieren. Aber es ist auch wichtig, mit realistischen Spreads zu testen und sich nicht selbst etwas vorzumachen.

3) Meine Erfahrung ist, dass bei optimierten Systemen der einmonatige Live-Test in der Regel völlig anders aussieht als die erwarteten Ergebnisse. Diese Art des Testens produziert in der Regel erwartete Statistiken während meiner Live-Tests.... aber auch in der Regel stirbt die gleiche Art und Weise stirbt es in der Strategie-Tester.

4) k

5) Ja. Ziemlich genau, aber es ist viel besser, es als "seit account_equity war >= break-even equity" zu betrachten. Ich habe das Set_Break_Even_Time aus der Break_Even_Equity-Funktion herausgenommen. Ich stelle fest, dass das Setzen einzelner Variablen mit einer eigenen set_function viel besser wiederverwendbar ist als die Bündelung in einer anderen set_function.

Ich denke darüber nach, als nächstes ein Trendfolgesystem mit dem Hinzufügen von Losen als Trendfortschritt zu machen.

4)...
Dateien:
SignalSOM.mqh  24 kb
 
ssn: 4)...
??? Haben Sie das zusätzliche Material gemäß den Regeln. #1, #3 und #4 scheinen zu fehlen.