Nach Positionsschließung keine neue Order direkt ausführen

Viewing 12 posts - 31 through 42 (of 42 total)
  • Author
    Posts
  • #185858 quote
    robertogozzi
    Moderator
    Master

    Da ist er:

    // Festlegen der Code-Parameter
    DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
    Timeframe(2h,UpdateOnClose)                          //2h
    // Pivot calculations
    Pivot = (High + Low + Close) / 3       //Pivot
    ResR1 = Pivot + (Pivot - low)
    ResR2 = Pivot + (high - low)
    ResR3 = high + (2 * (Pivot - low))
    ResR4 = (2 * Pivot) + high - (3 * low)
    SupS1 = Pivot - (high - Pivot)
    SupS2 = Pivot - (high - low)
    SupS3 = low - (2 * (high - Pivot))
    SupS4 = (2 * Pivot) + low - (3 * high)
    //
    Timeframe(default)                                   // 15min
    ONCE Flag    = 0
    ONCE TradeON = 1
    ONCE HIbar   = 0
    Bullish      = close > open
    Bearish      = close < open
    IF Bullish THEN
       IF Bearish[1] THEN
          HIbar = BarIndex
       ELSE
          IF high > high[BarIndex-HIbar] THEN
             HIbar = BarIndex
          ENDIF
       ENDIF
    ENDIF
    // Bedingungen zum Einstieg in Long-Positionen
    indicator1 = ExponentialAverage[8](totalPrice)
    c1 = (open > indicator1)
    Ema20 = average[20,1](close)
    Ema50 = average[50,1](close)
    Distance  = (abs(Ema20 - Ema50) <= 20 * pipsize)
    IF c1 AND Not OnMarket AND Flag = 0 AND Distance AND TradeON THEN
       BUY 1 CONTRACT AT MARKET
       Flag    = 1
       TradeON = 0
    ENDIF
    // Bedingungen zum Ausstieg von Long-Positionen
    indicator2 = ExponentialAverage[8](totalPrice)
    c2 = (open < indicator2)
    c3 = (open < low[2])
    c4 = close CROSSES OVER ResR2
    IF (c2 OR c3 OR c4) AND LongOnMarket THEN
       SELL AT MARKET
    ENDIF
    IF c2 THEN
       Flag = 0
    ENDIF
    IF Not OnMarket AND TradeON[1] = 0 THEN
       TradeON = 1
    ENDIF
    IF OnMarket AND close > low[BarIndex-HIbar] THEN
       SELL AT low[BarIndex-HIbar] STOP
    ENDIF
    IF LongOnMarket AND high > ResR4 THEN
       SELL AT ResR4 STOP
    ENDIF

    Es müssen keine Short-Trades geschlossen werden.

    #185876 quote
    MatzeDue
    Participant
    Junior

    Hi Roberto,

    danke für die Anpassung:

    1. Die Long-Position wird aber leider nicht direkt bei überschreiten des ResR4 geschlossen. Siehe Bild 1.

    2. Ich habe meinen Code für Short erweitert.

    s1 = close < ExponentialAverage[8](totalPrice)

    IF s1 and TradeOn = 1 and Not OnMarket THEN
    SELLSHORT 4 CONTRACT AT MARKET
    TradeOn =0
    ENDIF

    Wie würde hierzu der Code lauten, wenn der Short-Trade geschlossen werden soll, wenn das High der Vor-Vor-Kerze überschritten wird? (siehe Bild 2)

    3. Ist es möglich, den Code so zu optimieren, dass nach einem Gewinn-Trade, während der nächsten zwei Kerzen keine neue Order in die gleiche Handelsrichtung ausgeführt werden darf?

    Danke dir vorab.

    Bildschirmfoto-2022-01-18-um-20.40.34.png Bildschirmfoto-2022-01-18-um-20.40.34.png Bildschirmfoto-2022-01-18-um-20.55.44.png Bildschirmfoto-2022-01-18-um-20.55.44.png
    #186156 quote
    MatzeDue
    Participant
    Junior

    Hi Roberto,

    könntest Du mir hier nochmal behilflich sein ?

    Danke.

    #186172 quote
    robertogozzi
    Moderator
    Master

    Ja, ich denke, ich schaffe es am Wochenende.

    #186271 quote
    robertogozzi
    Moderator
    Master

    1. Die LONG-Position wird geschlossen, wenn der Preis auf RES4 fällt, NACHDEM die Kerze geschlossen wurde
    2. Welches ist die Kerze, verglichen mit der Eintragskerze, in der Sie den KURZ schließen möchten?
    3. Ich habe die 2-Kerzen-Zählung hinzugefügt, wenn es einen Gewinn gibt.

    // MatzeDue system
    //
    // Festlegen der Code-Parameter
    DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
    Timeframe(2h,UpdateOnClose)                          //2h
    // Pivot calculations
    Pivot = (High + Low + Close) / 3       //Pivot
    ResR1 = Pivot + (Pivot - low)
    ResR2 = Pivot + (high - low)
    ResR3 = high + (2 * (Pivot - low))
    ResR4 = (2 * Pivot) + high - (3 * low)
    SupS1 = Pivot - (high - Pivot)
    SupS2 = Pivot - (high - low)
    SupS3 = low - (2 * (high - Pivot))
    SupS4 = (2 * Pivot) + low - (3 * high)
    //
    Timeframe(default)                                   // 15min
    ONCE Flag       = 0
    ONCE TradeOnL   = 1
    ONCE TradeOnS   = 1
    ONCE HIbar      = 0
    ONCE LONGtype   = 1
    ONCE SHORTtype  = 2
    ONCE TradeType  = 0
    ONCE LongCount  = 0
    ONCE ShortCount = 0
    Bullish        = close > open
    Bearish        = close < open
    IF Bullish THEN
    IF Bearish[1] THEN
    HIbar = BarIndex
    ELSE
    IF high > high[BarIndex-HIbar] THEN
    HIbar = BarIndex
    ENDIF
    ENDIF
    ENDIF
    //
    IF IntraDayBarIndex = 0 THEN
    TradeOnL   = 1
    TradeOnS   = 1
    TradeType  = 0
    LongCount  = 0
    ShortCount = 0
    ENDIF
    //
    IF StrategyProfit > StrategyProfit[1] THEN
    IF TradeType = LONGtype THEN
    TradeOnL   = 0
    LongCount  = 2
    ELSIF TradeType = SHORTtype THEN
    TradeOnS   = 0
    ShortCount = 2
    ENDIF
    ENDIF
    //
    IF Not OnMarket THEN
    TradeType = 0
    ENDIF
    // Bedingungen zum Einstieg in Long-Positionen
    indicator1 = ExponentialAverage[8](totalPrice)
    c1 = (open > indicator1)
    Ema20 = average[20,1](close)
    Ema50 = average[50,1](close)
    Distance  = (abs(Ema20 - Ema50) <= 20 * pipsize)
    IF c1 AND Not OnMarket AND Flag = 0 AND Distance AND TradeOnL THEN
    BUY 1 CONTRACT AT MARKET
    TradeType = LONGtype
    Flag      = 1
    TradeOnL  = 0
    ENDIF
    // Bedingungen zum Ausstieg von Long-Positionen
    indicator2 = ExponentialAverage[8](totalPrice)
    c2 = (open < indicator2)
    c3 = (open < low[2])
    c4 = close CROSSES OVER ResR2
    IF (c2 OR c3 OR c4) AND LongOnMarket THEN
    SELL AT MARKET
    ENDIF
    //
    //Short
    s1 = close < ExponentialAverage[8](totalPrice)
    IF s1 and TradeOnS = 1 and Not OnMarket THEN
    //SELLSHORT 4 CONTRACT AT MARKET
    TradeOnS = 0
    ENDIF
    //
    IF c2 THEN
    Flag = 0
    ENDIF
    IF LongOnMarket AND close > low[BarIndex-HIbar] THEN
    SELL AT low[BarIndex-HIbar] STOP
    ENDIF
    IF LongOnMarket AND high > ResR4 THEN
    SELL AT ResR4 STOP
    ENDIF
    //
    LONGcount  = max(0,LONGcount -1)
    SHORTcount = max(0,SHORTcount -1)
    IF LONGcount = 0 AND LONGcount[1] > 0 THEN
    TradeOnL = 1
    ENDIF
    IF SHORTcount = 0 AND SHORTcount[1] > 0 THEN
    TradeOnS = 1
    ENDIF
    graph StrategyProfit > StrategyProfit[1]
    graph ShortCount
    graph LongCount
    graph TradeOnL
    graph TradeOnS
    MatzeDue-system.itf
    #186278 quote
    MatzeDue
    Participant
    Junior

    Hi Roberto, danke

     

    zu 1.) kann man auch sofort die Kerze verkaufen, die das ResR4 crossed?

    zu 2.) Es soll die Kerze die Short-Position schließen, die von der Vor-Vor-Kerze das High überschreitet. (siehe Bild gelbe Linie)

    Lässt sich das noch anpassen?

    Bildschirmfoto-2022-01-18-um-20.55.44-1.png Bildschirmfoto-2022-01-18-um-20.55.44-1.png
    #186281 quote
    robertogozzi
    Moderator
    Master

    1. Möchten Sie, dass es herauskommt, wenn RES4 berührt, aber sollte es herauskommen, wenn der Preis von unter oder über RES4 kommt?
    2. vielleicht gibt es ein Problem mit der Übersetzung, aber ich kann nicht verstehen, welche Kerze Sie meinen, in Bezug auf den Eintrag SHORT; zeigt diejenige an, in die SHORT eintritt, und diejenige, die es verlassen sollte.

    #186285 quote
    MatzeDue
    Participant
    Junior
    1. Ja, wenn das Resr4 berührt wird
    2. Short Exit bei Berührung der gelben Linie. (siehe neues Bild). Ich glaube es ist die Funktion mit barindex…
    #186316 quote
    robertogozzi
    Moderator
    Master

    Ich sehe, es gibt wahrscheinlich ein Übersetzungsproblem.

    Versuchen Sie, sich Fragen auf andere Weise zu stellen.

    Frage Nummer 1:

    .    Der Handel muss geschlossen werden, wenn der Preis Res4 berührt. Möchten Sie, dass es geschlossen wird, wenn der Preis steigt und Res4 berührt, oder wenn der Preis fällt und Res4 berührt,
    .    oder es egal ist, ob er steigt oder fällt?

    Frage Nummer 2:

    .    Geben Sie mir ein Beispiel mit einem Pfeil, wo eine SHORT-Operation eintritt; dann sagen Sie mir, bei welcher NÄCHSTEN Kerze sie ausgehen muss (und warum sie ausgehen muss).

    #186331 quote
    MatzeDue
    Participant
    Junior

    zu 1. Long Position schließen, wenn  der Preis steigt und Res4 berührt.

    zu 2. Short Position schließen, wenn  Kerze #4 das High von Kerze #2 berührt, siehe Bild im Anhang.

    Bildschirmfoto-2022-01-22-um-12.59.37.png Bildschirmfoto-2022-01-22-um-12.59.37.png
    #186475 quote
    robertogozzi
    Moderator
    Master

    Dies verlässt LONG, wenn ResR4 erreicht ist.

    Und es verlässt SHORT, wenn das Maximum der Kerze nach dem Eintrag (Nummer 2) erreicht ist:

    // MatzeDue system
    //
    // Festlegen der Code-Parameter
    DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
    Timeframe(2h,UpdateOnClose)                          //2h
    // Pivot calculations
    Pivot = (High + Low + Close) / 3       //Pivot
    ResR1 = Pivot + (Pivot - low)
    ResR2 = Pivot + (high - low)
    ResR3 = high + (2 * (Pivot - low))
    ResR4 = (2 * Pivot) + high - (3 * low)
    SupS1 = Pivot - (high - Pivot)
    SupS2 = Pivot - (high - low)
    SupS3 = low - (2 * (high - Pivot))
    SupS4 = (2 * Pivot) + low - (3 * high)
    //
    Timeframe(default)                                   // 15min
    ONCE Flag       = 0
    ONCE TradeOnL   = 1
    ONCE TradeOnS   = 1
    ONCE HIbar      = 0
    ONCE LONGtype   = 1
    ONCE SHORTtype  = 2
    ONCE TradeType  = 0
    ONCE LongCount  = 0
    ONCE ShortCount = 0
    Bullish        = close > open
    Bearish        = close < open
    IF Bullish THEN
    IF Bearish[1] THEN
    HIbar = BarIndex
    ELSE
    IF high > high[BarIndex-HIbar] THEN
    HIbar = BarIndex
    ENDIF
    ENDIF
    ENDIF
    //
    IF IntraDayBarIndex = 0 THEN
    TradeOnL   = 1
    TradeOnS   = 1
    TradeType  = 0
    LongCount  = 0
    ShortCount = 0
    ENDIF
    //
    IF StrategyProfit > StrategyProfit[1] THEN
    IF TradeType = LONGtype THEN
    TradeOnL   = 0
    LongCount  = 2
    ELSIF TradeType = SHORTtype THEN
    TradeOnS   = 0
    ShortCount = 2
    ENDIF
    ENDIF
    //
    IF Not OnMarket THEN
    TradeType = 0
    ShortBAR  = 0
    ShortEXIT = 0
    ENDIF
    IF ShortOnMarket THEN
    IF BarIndex = ShortBAR THEN
    ShortEXIT = high
    ENDIF
    ENDIF
    // Bedingungen zum Einstieg in Long-Positionen
    indicator1 = ExponentialAverage[8](totalPrice)
    c1 = (open > indicator1)
    Ema20 = average[20,1](close)
    Ema50 = average[50,1](close)
    Distance  = (abs(Ema20 - Ema50) <= 20 * pipsize)
    IF c1 AND Not OnMarket AND Flag = 0 AND Distance AND TradeOnL THEN
    BUY 1 CONTRACT AT MARKET
    TradeType = LONGtype
    Flag      = 1
    TradeOnL  = 0
    ENDIF
    // Bedingungen zum Ausstieg von Long-Positionen
    indicator2 = ExponentialAverage[8](totalPrice)
    c2 = (open < indicator2)
    c3 = (open < low[2])
    c4 = close CROSSES OVER ResR2
    IF (c2 OR c3 OR c4) AND LongOnMarket THEN
    SELL AT MARKET
    ENDIF
    //
    //Short
    s1 = close < ExponentialAverage[8](totalPrice)
    IF s1 and TradeOnS = 1 and Not OnMarket THEN
    SELLSHORT 4 CONTRACT AT MARKET
    TradeOnS = 0
    ShortBAR  = BarIndex + 2
    ShortEXIT = 0
    ENDIF
    //
    IF c2 THEN
    Flag = 0
    ENDIF
    IF LongOnMarket AND close > low[BarIndex-HIbar] THEN
    SELL AT low[BarIndex-HIbar] STOP
    ENDIF
    IF LongOnMarket AND high > ResR4 THEN
    SELL AT ResR4 STOP
    ENDIF
    //
    IF LongOnMarket THEN
    IF close < ResR4 THEN
    SELL AT ResR4 LIMIT
    ELSIF close > ResR4 THEN
    SELL AT ResR4 STOP
    ENDIF
    ENDIF
    //
    IF ShortOnMarket AND ShortEXIT > 0 THEN
    IF close > ShortEXIT THEN
    EXITSHORT AT ShortEXIT STOP
    ELSIF close > ShortEXIT THEN
    EXITSHORT AT ShortEXIT LIMIT
    ENDIF
    ENDIF
    //
    LONGcount  = max(0,LONGcount -1)
    SHORTcount = max(0,SHORTcount -1)
    IF LONGcount = 0 AND LONGcount[1] > 0 THEN
    TradeOnL = 1
    ENDIF
    IF SHORTcount = 0 AND SHORTcount[1] > 0 THEN
    TradeOnS = 1
    ENDIF
    graph StrategyProfit > StrategyProfit[1]
    graph ShortCount
    graph LongCount
    graph TradeOnL
    graph TradeOnS
    graphonprice ShortEXIT coloured(255,0,0,255)
    MatzeDue-system-1.itf
    #187062 quote
    MatzeDue
    Participant
    Junior

    Hi Roberto,

    Long Exit im ResR4 funktioniert 🙂

    aber der SHORT-Exit, wenn das Maximum der Kerze (Nummer 2) erreicht ist, funktioniert nicht. Kannst Du mir die notwendigen Bedingungen im Code farblich markieren?

    Möglicherweise habe ich etwas übersehen.

    Danke.

Viewing 12 posts - 31 through 42 (of 42 total)
  • You must be logged in to reply to this topic.

Nach Positionsschließung keine neue Order direkt ausführen


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
MatzeDue @matzedue Participant
Summary

This topic contains 41 replies,
has 3 voices, and was last updated by MatzeDue
4 years, 1 month ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 12/08/2021
Status: Active
Attachments: 10 files
Logo Logo
Loading...