ATR Wert einer bestimmten Uhrzeit

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #150822 quote
    phoentzs
    Participant
    Master

    Hallo,

    wie kann ich in einem Code den ATR(14) einer bestimmten Uhrzeit festlegen und später in einer Kauf Order benutzen?

    time= 080000

    ATR(14)

    #150829 quote
    robertogozzi
    Moderator
    Master

    Los geht's:

    If time = 080000 then
       MyATR = AverageTrueRange[14](Close)
    Endif

    Wann immer Sie möchten , können Sie MyATR verwenden , um einen Trade abzuschließen .

    phoentzs thanked this post
    #150831 quote
    phoentzs
    Participant
    Master

    So einfach, Dankeschön.

    #150889 quote
    phoentzs
    Participant
    Master

    Ok, das funktioniert.

    Jetzt habe ich aber ein anderes Problem. Meine Sellstop und Buystop Orders werden nur auf die 8:00 Kerze gesetzt. Sollten aber innerhalb meiner definierten Handelsspanne gesetzt werden. Also von 08:00 bis 17:00 mit dem ATR-Wert von 08:00.

    Ich finde den Fehler nicht. Kann mir einer helfen?

    //ATR Breakout Morning EurUsd
    
    DEFPARAM CumulateOrders = false // Kumulieren von Positionen deaktiviert
    // Stornieren aller pending Orders und Schließen aller Positionen zur "FLATAFTER"-Zeit
    DEFPARAM FLATAFTER = 220000
    
    // Verhindert das Trading an bestimmten Wochentagen
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    
    //Ein Trade pro Tag
    ONCE TradeLong  = 1
    ONCE TradeShort = 1
    IF IntraDayBarIndex = 0 THEN
    TradeLong  = 1
    TradeShort = 1
    ENDIF
    
    positionsize = 1
    
    If time = 080000 then
    MyATR = AverageTrueRange[24](Close)
    Endif
    
    //ATRmax = myATR < 10*pipsize
    
    
    // trading window
    ONCE BuyTime  = 080000  //083000
    ONCE SellTime = 170000  //110000
     
    // position management
    IF Time >= BuyTime AND Time <= SellTime THEN
    
    //Long
    IF not onmarket and tradelong AND not daysForbiddenEntry THEN
    BUY positionsize CONTRACT AT (close + (myATR*1.5)) stop
    // Stops und Targets
    SET STOP loss myATR*3       
    SET TARGET PROFIT myATR*1.5    
    tradelong=0
    ENDIF
    
    //short
    IF not onmarket and tradeshort AND not daysForbiddenEntry THEN
    SELLSHORT positionsize CONTRACT AT (close - (myATR*1.5)) stop
    // Stops und Targets
    SET STOP loss myATR*3        
    SET TARGET PROFIT myATR*1.5    
    tradeshort=0
    ENDIF
    ENDIF
    #150895 quote
    robertogozzi
    Moderator
    Master

    Entfernen Sie die Zeilen 40 und 49 und fügen Sie diese wenigen Zeilen vor Zeile 18 hinzu:

    IF LongOnMarket  THEN
       TradeLong  = 0
    ENDIF
    IF ShortOnMarket THEN
       TradeShort = 0
    ENDIF
    phoentzs thanked this post
    #150897 quote
    phoentzs
    Participant
    Master

    Ok, danke.

    Ich bemerkte eben ein nächstes Problem. Der Schlusskurs muss natürlich auch von 08:00 sein.

    Ich habs jetzt jetzt so geschrieben und dann long und short für die StopOrders benutzt. Funktioniert das zuverlässig?

    If time = 080000 then
    MyATR = AverageTrueRange[24](Close)
    long = (close + (myATR*ein))
    short = (close - (myATR*ein))
    Endif
    #150899 quote
    robertogozzi
    Moderator
    Master

    Ja das ist korrekt. Ich glaube wirklich, dass es funktionieren wird!

    #175584 quote
    DiegoI
    Participant
    New

    Hallo,

    ich habe ein ähnliches Problem und möchte mit der 14 Uhr Kerze meinen Einstieg definieren. Leider kauft das System aktuell immer zum 14 Uhr Eröffnungskurs und nicht zum vordefinierten Einstieg E1. Was muss ich ändern, damit es klappt? Vielen Dank für ihre Hilfe vorab!

    timeframe(1 hour, updateonclose)
    If time = 140000 AND DayOfWeek = 1 then
    E1 = CLOSE - (3/10000)
    Endif
    
    timeframe(15 minute, updateonclose)
    // Bedingungen zum Einstieg in Long-Positionen
    IF NOT LONGONMARKET AND (hour >= 14 AND hour < 21 AND DayOfWeek = 1) THEN
    BUY 1 CONTRACTS AT E1 Stop
    ENDIF
    
    // Bedingungen zum Ausstieg von Long-Positionen
    IF LONGONMARKET AND (hour = 21 AND DayOfWeek = 1) THEN
    SELL AT MARKET
    ENDIF
    
    // Bedingungen zum Einstieg in Short-Positionen
    //IF NOT ShortOnMarket AND hour = x AND DayOfWeek = y THEN
    //SELLSHORT 1 CONTRACTS AT MARKET
    //ENDIF
    
    // Bedingungen zum Ausstieg aus Short-Positionen
    //IF ShortOnMarket AND hour = (x + 1) THEN
    //EXITSHORT AT MARKET
    //ENDIF
    
    // Stops und Targets: Legen Sie hier schützende Stops und Profit Targets fest
    SET STOP PLOSS 100
    SET TARGET PPROFIT 130
    
    GRAPHONPRICE E1
    #175585 quote
    robertogozzi
    Moderator
    Master

    Versuchen Sie, diese Zeilen zwischen den Zeilen 6 und 7 zu schreiben:

    If hour >= 21 then
       E1 = 0
    Endif

    Außerdem verwenden Sie einen STOP-Befehl.
    Wie können Sie sicher sein, dass der Preis von E1 höher ist als der aktuelle?

    #175736 quote
    DiegoI
    Participant
    New

    Hat leider nicht funktioniert. Vielleicht nochmal etwas klarer, was ich erreichen möchte. Bei meinem ursprünglichen Handelssystem habe ich zum Eröffnungskurs um 14 Uhr (hour = 14) gekauft. Jetzt möchte ich das System gerne so modifizieren, dass ich erst kaufe, wenn der Kurs zum Beispiel 3 Pips tiefer ist als der Eröffnungskurs um 14 Uhr. Dafür definiere ich den Kurs auf Stundenbasis, um dann später auf 15 Minuten-Basis ggfs. noch einen Training Stop einzufügen. Vorher würde ich aber gerne testen, inwieweit sich die Ergebnisse des Backtest verbessern, wenn ich nicht stumpf zum Eröffnungskurs um 14 Uhr kaufe, sondern erst einsteige, sobald der Kurs etwas tiefer ist. Vielen Dank für ihre Hilfe vorab!

    #175766 quote
    robertogozzi
    Moderator
    Master

    Tut mir leid, aber ich kann deine Erklärung nicht verstehen. Ich denke, es ist der Übersetzer, der bestimmte Wörter in die klassische Sprache übersetzt, nicht die spezifische Sprache des Handels. Wenn Sie ein praktisches Beispiel geben könnten, könnte ich es vielleicht besser verstehen.

    #176133 quote
    DiegoI
    Participant
    New

    Ich füge mal meinen Original Code an, vielleicht wird es dann klarer. Ich möchte nicht mehr zur Eröffnung um 14 Uhr einsteigen, sondern erst, wenn der Kurs x Pips niedriger als der Eröffnungskurs um 14 Uhr ist. Wie kann man das umsetzen?

    In case the translator did not work properly again, my issue in English as well. My original trade system foresees to buy at 2pm. I don’t want to buy at the opening anymore, but if the price is e.g. 3 Pips lower than the opening price of the 2pm candle. How does this work?

    // Bedingungen zum Einstieg in Long-Positionen
    IF NOT LONGONMARKET AND hour = 14 AND DayOfWeek = 1 THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    // Bedingungen zum Ausstieg von Long-Positionen
    IF LONGONMARKET AND hour = 21 AND DayOfWeek = 1 THEN
    SELL AT MARKET
    ENDIF
    
    // Stops und Targets: Legen Sie hier schützende Stops und Profit Targets fest
    SET STOP PLOSS 100
    SET TARGET PPROFIT 130
    #176136 quote
    robertogozzi
    Moderator
    Master

    Ersetzen Sie Zeile 3 durch diese, die eine ausstehende Order verwendet:

    BUY 1 CONTRACT AT close - 3*PipSize LIMIT

    Beachten Sie, dass der Broker einen Mindestabstand zum aktuellen Preis verlangt. 3 Pips sind im Allgemeinen wenig. Schauen Sie auf der IG-Website nach.

    #176542 quote
    DiegoI
    Participant
    New

    Danke, es kann so einfach sein. Allerdings funktioniert es noch nicht wie gewünscht. Die Berechnung soll immer auf Basis der Schlusskurs der 13 Uhr Kerze sein oder der Eröffnung der 14 Uhr Kerze. Wenn ich das so im Backtest verwende, z.B. auf 15-Minuten Basis, dann nimmt er immer den Schlusskurs der letzten Kerze als Einstiegskriterium. Der Einstiegskurs sollen sich aber nicht verändern und immer auf die 14 Uhr Eröffnung beziehen. Wie muss man das definieren?

    In case the translator works not properly. Thanks, it can be so simple. But it doesn’t work properly yet. The calculation should be always based on the closing of the 1pm candle respectively the opening of the 2pm candle. By using this formula in my backtest, e.g. on a 15 minute basis than the last close is always used as criteria for the entry. However, the trade entry should not change, it should always relate to the opening of the 2pm candle. How to define that?

    #176544 quote
    robertogozzi
    Moderator
    Master

    Das ist okay. STUNDE = 14 ist das Ende der 13:00 Uhr. Bitte nur auf Deutsch schreiben.

Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.

ATR Wert einer bestimmten Uhrzeit


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
phoentzs @phoentzs Participant
Summary

This topic contains 18 replies,
has 3 voices, and was last updated by robertogozzi
4 years, 5 months ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 11/17/2020
Status: Active
Attachments: 2 files
Logo Logo
Loading...