Jeden Trade einzeln schließen

Viewing 15 posts - 1 through 15 (of 38 total)
  • Author
    Posts
  • #255008 quote
    axmichi
    Participant
    Senior

    Hallo,

     

    in diesem System müssten die 3 Trades nach 100 Kerzen geschlossen werden.

    Leider werden alle Trades zum gleichen Zeitpunkt geschlossen.

     

    Was muss man codieren, dass jeer Trade korrekt schließt

    DEFPARAM CumulateOrders = TRUE
    // dates to enter (format:   yyyymmdd)
    
    $moDate[1]  = 20250519
    $moDate[2]  = 20250521
    $moDate[3]  = 20250523
    
    
    EntryDate    = 0
    FOR i = 1 TO 3
    IF Date  = $moDate[i] THEN
    EntryDate = Date
    break
    ENDIF
    NEXT
    //
    IF Date   = EntryDate  AND Time = 210000 THEN
    buy 1 CONTRACT AT MARKET
    EntryDate = 0
    ENDIF
    
    IF longonmarket  and barindex - Tradeindex = 100 Then
    sell AT MARKET
    ENDIF

    Jeder-Trade-einzeln.png Jeder-Trade-einzeln.png
    #255013 quote
    Iván González
    Moderator
    Master

    Der Grund dafür, dass alle Ihre Geschäfte auf einmal geschlossen werden, liegt darin, dass in ProRealTime die SELL-Anweisung ohne Angabe eines Betrags die gesamte Position schließt. Darüber hinaus speichert die TRADEINDEX-Funktion nur die Referenz der zuletzt durchgeführten Operation, sodass vorherige vom System „vergessen“ werden.
    Die vorgeschlagene Lösung ist folgende: Wir verwenden Arrays für die Eingabe und Ausgabe und speichern den Barindex in der Eingabe.

    DEFPARAM CumulateOrders = TRUE
    
    $moDate[0] = 20250519
    $moDate[1] = 20250521
    $moDate[2] = 20250523
    
    FOR i = 0 TO 2 DO
       IF Date = $moDate[i] AND Time = 210000 THEN
          BUY 1 CONTRACT AT MARKET
          $moDateidx[i] = BarIndex + 1
       ENDIF
    NEXT
    
    
    IF LongOnMarket THEN
       FOR j = 0 TO 2 DO      
          IF $moDateidx[j] > 0 THEN
             IF BarIndex - $moDateidx[j] = 100 THEN
                SELL 1 CONTRACT AT MARKET
                $moDateidx[j] = 0
             ENDIF
          ENDIF
       NEXT
    ENDIF
    
    #255016 quote
    JS
    Participant
    Senior

    Du kannst auch mit “TradeIndex(3)” arbeiten…

    DefParam CumulateOrders=True
    
    $moDate[1]=20250519
    $moDate[2]=20250521
    $moDate[3]=20250523
    
    For i=1 to 3
    If $moDate[i]=OpenDate Then
    EntryDate=$moDate[i]
    Break
    EndIf
    Next
    
    IF OpenDate=EntryDate then
    Buy 1 Contract at Market
    ENDIF
    
    If LongOnMarket and BarIndex-TradeIndex(3)=100-1 Then
    Sell 1 Contract at Market
    ENDIF
    Iván González thanked this post
    Scherm­afbeelding-2026-01-06-om-16.53.06.png Scherm­afbeelding-2026-01-06-om-16.53.06.png
    #255018 quote
    axmichi
    Participant
    Senior

    Vielen Dank.

    @ IVAN der Einstieg passt super.

    Können wir den Ausstieg noch so anpassen, dass das system nach 100 Tagen um 21 Uhr wieder aus steigt?

    @ JD auch Dir danke. leider steigt dein system nicht am 19.05 ein, sondern einen Tag später und es werden nicht 3 Trades gestartet, sondern nur 2. Ich denke es hängt damit zusammen, dass der Vortag ein Freitag ist???

    #255020 quote
    JS
    Participant
    Senior

    Hi,

    ich habe die Zeiten nicht berücksichtigt, aber die kannst du jederzeit selbst hinzufügen…

    Da keine Zeiten verwendet werden, werden die Trades zum „Open“ des nächsten Tages eröffnet…

    Bei mir eröffnet der Algo drei Trades … (siehe Abbildung)…

    #255021 quote
    axmichi
    Participant
    Senior

    ok meinst Du es so ??

    IF OpenDate=EntryDate and Time = 210000 then

    #255022 quote
    axmichi
    Participant
    Senior

    Hab es jetzt so geändert aber die Trades werden zwar richtig geöffnet aber nicht geschlossen

    IF OpenDate=EntryDate and Time = 210000 then
    Buy 1 Contract at Market
    ENDIF

    If LongOnMarket and BarIndex-TradeIndex(3)=10-1 and Time = 210000 Then
    Sell 1 Contract at Market
    ENDIF

    #255023 quote
    JS
    Participant
    Senior

    Das ist mit Zeiten…

    (Bitte mit einem Timeframe von maximal 1 Stunde verwenden, da sonst die Zeiten nicht korrekt ausgelesen werden.)

    DEFPARAM CumulateOrders=True
    
    $moDate[1]=20250519
    $moDate[2]=20250521
    $moDate[3]=20250523
    
    For i=1 to 3
    If $moDate[i]=Date Then
    EntryDate=$moDate[i]
    Break
    EndIf
    Next
    
    IF Date=EntryDate and Time=210000 then
    Buy 1 Contract at Market
    ENDIF
    
    If LongOnMarket and BarIndex-TradeIndex(1)=100-1 Then
    Sell 1 Contract at Market
    ENDIF
    Scherm­afbeelding-2026-01-06-om-20.38.38.png Scherm­afbeelding-2026-01-06-om-20.38.38.png
    #255025 quote
    axmichi
    Participant
    Senior

    Hi. jeder Trade soll nach 100 Tagen um 21 uhr schließen? !

    #255027 quote
    JS
    Participant
    Senior

    Wenn du diese Zeiten verwenden möchtest, kannst du kein Tages-Timeframe benutzen, da die Zeiten sonst nicht ausgelesen werden können…
    Bei Verwendung von Zeiten musst du ein Timeframe von maximal 1 Stunde einsetzen…

    DEFPARAM CumulateOrders=True
    
    $moDate[1]=20250519
    $moDate[2]=20250521
    $moDate[3]=20250523
    
    For i=1 to 3
    If $moDate[i]=Date Then
    EntryDate=$moDate[i]
    Break
    EndIf
    Next
    
    IF Date=EntryDate and Time=210000 then
    Buy 1 Contract at Market
    ENDIF
    
    If LongOnMarket and BarIndex-TradeIndex(3)=100-1 then
    Sell 1 Contract at Market
    ENDIF
    #255028 quote
    JS
    Participant
    Senior

    Um die Positionen exakt um 21:00 Uhr zu schließen (nach 100 Tagen), kannst du die unten angegebene Anzahl an Bars verwenden…(TF=1 Uhr)

    DEFPARAM CumulateOrders=True
    
    $moDate[1]=20250519
    $moDate[2]=20250521
    $moDate[3]=20250523
    
    For i=1 to 3
    If $moDate[i]=Date Then
    EntryDate=$moDate[i]
    Break
    EndIf
    Next
    
    IF Date=EntryDate and Time=210000 then
    Buy 1 Contract at Market
    ENDIF
    
    If LongOnMarket and BarIndex-TradeIndex(3)=2302 then
    Sell 1 Contract at Market
    ENDIF
    #255029 quote
    axmichi
    Participant
    Senior

    Ich habe es im 1 Stunden timeframe gemacht aber die trades schließen nicht am 100. Tag sondern schon nach 30 tage

    Probier es mal bei dir, bitte

    #255030 quote
    axmichi
    Participant
    Senior

    In deiner ausstiegsregel ist auch kein 21 uhr drin??

    #255031 quote
    JS
    Participant
    Senior

    Du kannst die Zeit hinzufügen, aber das ist nicht notwendig, da hier die Anzahl der verstrichenen Bars das Schließen der Positionen bestimmt…
    2302 Bars entsprechen exakt 100 Tagen, und wenn die Position um 21:00 Uhr eröffnet wird, wird sie auch wieder um 21:00 Uhr geschlossen…
    Ich verwende dies in Kombination mit IG.

    #255032 quote
    axmichi
    Participant
    Senior

    Ok, ich hab die Kurse von interactive brokers,  malsehen ob das auch geht, Danke Dir

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

Jeden Trade einzeln schließen


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
author-avatar
axmichi @axmichi Participant
Summary

This topic contains 37 replies,
has 4 voices, and was last updated by axmichi
1 month, 1 week ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 01/06/2026
Status: Active
Attachments: 7 files
Logo Logo
Loading...