Modular Algo System V1.0 + 30min-Range-BreakOut

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #187694 quote
    Stefan Sticker
    Participant
    New

    Hallo!
    Anbei eine überarbeitete Version meines kürzlich vorgestellten modularen Algorithmus-Systems.

    Features:
    – Market Data Definition DAX / DJI (neu; enthält ua Trailing-Stop-Faktor)
    – Hexensabbat-Filter
    – Moving-Average-Clustering-Filter
    – Xetra-Pivot-Point-Berechnung
    – Strategy-Stop-Code + Money-Management
    – Monthly/Weekly/Daily-Positionsize-Modifier-Code DAX/DJI (erweitert um DJI)
    – Robustness-Test-Code
    – Trailing-Stop-Code für Long/Short/Risk-Trades und Target Profit (erweitert um Target Profit)
    – S2/R2-BreakOut-Filter
    – Moving-Average-Cross-Flag-Funktion (20/50 und 100/200; neu)
    – DayTrend-Flag (neu; TrendUp + TrendDown)

    Zum Einstieg:
    – 30min Simple BreakOut Trader (neu; für DAX 1min)

    Das System ist so konzipiert, daß es möglichst mit unterschiedlichsten Trading-Algorithmen auf unterschiedlichsten Märkten kombiniert und schnell angepasst werden kann.
    Die Bilder zeigen die Performance des beigefügten Codes auf DAX 1min 1€ Micro-Contract.

    Beste Grüße
    Stefan

    //*************************************************************************//
    //Modular Algorithm Library V1.01                                           //
    //*************************************************************************//
    //Modules:
    //Market-Data-Definition+Parameter
    ///Monthly/Weekly/Daily-Modifiers, Xetra-HLC-Correction, Strategy-Stop-Code mit Money-Management
    //Moving-Average-Clustering-Filter, Robustness-Test, Stop-Loss/Trailing-Routines Long/Short/Risk
    //Long/Short-Support2/Resistance2-Break-Filter, HexenSabbat-Filter, MA-Cross-Flag, Trend-Flag
    //Trading Code
    
    //*************************************************************************//
    //Parameter                                                                //
    //*************************************************************************//
    DEFPARAM PreLoadBars =  5000
    DEFPARAM CumulateOrders = False
    DEFPARAM FlatBefore = 080000
    DEFPARAM FlatAfter = 220000
    
    ONCE ClusterSave = 1                                         // 0=OFF 1=ON                  MovingAverage-Clustering-Filter
    ONCE startingsize = 1                                         //                             starting position size
    ONCE ForbiddenLSFlag = 2                                      // 0=OFF 1=ON 2=Reverse        S2/Short-R2/Long-Filter
    ONCE RobustnessTest = 0                                       // 0=OFF 1=ON                  Robustness-Test
    ONCE SSC = 1                                                  // 0=OFF 1=ON                  Strategy-Stop-Code
    ONCE StartingCapital = 1000                                   //                             Startkapital
    ONCE Modifiers = 1                                             // 0=OFF 1=ON                  Modifikatoren auf PositionSize
    ONCE HexSabFilter = 1                                          // 0=OFF 1=ON                 HexenSabbatFilter
    ONCE MarketFlag = 1       //1=DAX 2=DJI   Marktauswahl
    
    //*************************************************************************//
    //Market Data                                                              //
    //*************************************************************************//
    Opening = 080000      // Eröffnungszeit DAX
    Closing = 220000      // Schlusszeit DAX
    TF = 1       // TimeFrame in Minuten DAX
    SpreadGeb = 3      // Spread+Gebühren DAX
    FaktorTS = 1      // Trailing-Stop-Multiplikator
    ZielProfit = 150  // Target Profit
    
    IF MarketFlag = 1 THEN
    Opening = 080000      // Eröffnungszeit DAX
    Closing = 220000      // Schlusszeit DAX
    TF = 1        // TimeFrame in Minuten DAX
    SpreadGeb = 3       // Spread+Gebühren DAX
    FaktorTS = 1      // Trailing-Stop-Multiplikator
    ZielProfit = 150
    ENDIF
    
    IF MarketFlag = 2 THEN
    Opening = 080000      // Eröffnungszeit DJI
    Closing = 220000      // Schlusszeit DJI
    TF = 1        // TimeFrame in Minuten DJI
    SpreadGeb = 5       // Spread+Gebühren DJI
    FaktorTS = 2      // Trailing-Stop-Multiplikator
    ZielProfit = 200
    ENDIF
    
    Tradeday = OpenDayOfWeek > 0 AND OpenDayOfWeek < 6 AND NOT ((Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)))
    //Flat Failsave
    If ONMARKET AND (Time < Opening OR Time > Closing) THEN
    SELL AT Market
    EXITSHORT AT Market
    ENDIF
    //*************************************************************************//
    //Algorithm Robustness-Test                                                //
    //*************************************************************************//
    StartDate = 20000101  // Parameter
    Qty = 5   // Parameter
    Rndom = 3  // Parameter
    once j = 0
    once flag = 1
    
    IF RobustnessTest = 1 THEN
    if flag = 1 then
    j = j + 1
    if j > qty then
    flag = -1
    j = j - 1
    endif
    endif
    if flag = -1 then
    j = j - 1
    if j = 0 then
    j = j + rndom
    flag = 1
    endif
    endif
     
    if opendate >= startdate AND (barindex mod qty = 0 or barindex mod qty = j) then
    tradeon = 1
    ELSIF opendate >= startdate AND NOT (barindex mod qty = 0 or barindex mod qty = j) then
    tradeon = 0
    ENDIF
    ELSIF RobustnessTest = 0 THEN
    TradeOn = 1
    ENDIF
    
    //*************************************************************************//
    //Strategy-Stop-Code, Money Management/ReInvest                            //
    //*************************************************************************//
    barsbeforenextcheck = 30  // number of bars between performance checks
    drawdownquitting = 1      // drawdown quitting on or off (on=1 off=0)
    winratequit = 40          // minimum win rate in % allowed before quitting (0 = off)
    tradesbeforewrquit = 50   // number of trades required before a win rate stop of strategy is allowed to happen
    increase = 0              // position size increasing on or off (on=1 off=0)
    decrease = 0              // position size decreasing on or off (on=1 off=0)
    capital = StartingCapital // starting capital
    startingsize = 1           // starting position size
    minpossize = 0.2          // minimum position size allowed
    gaintoinc = 5             // % profit rise needed before an increase in position size is made
    losstodec = 5             // % loss needed before a decrease in position size is made
    maxdrawdown = 30          // maximum % draw down allowed from highest ever equity before stopping strategy
    maxcapitaldrop = 25       // maximum % starting capital lost before stopping strategy
     
    once MMpositionsize = 1
    once psperc = MMpositionsize / capital
    
    IF SSC = 1 THEN
    if strategyprofit <> strategyprofit[1] then
    highestprofit = max(strategyprofit, highestprofit)
    if count < tradesbeforewrquit OR winrate > winratequit/100 then
    count = count + 1
    if strategyprofit > strategyprofit[1] then
    win = win + 1
    endif
    ENDIF
    winrate = win/count
    ENDIF
    if count >= tradesbeforewrquit AND winrate < winratequit/100 then
    quit
    endif
    if barindex mod barsbeforenextcheck = 0 AND drawdownquitting AND highestprofit <> 0 then
    if (capital + strategyprofit) <= (capital + highestprofit) - ((capital + highestprofit)*(maxdrawdown/100)) then
    quit
    endif
    endif
    if count >= tradesbeforewrquit AND highestprofit = 0 then
    if (capital + strategyprofit) <= capital - (capital * (maxcapitaldrop/100)) then
    quit
    endif
    ENDIF
    equity = capital + strategyprofit
    if increase then
    if equity/lastequity >= (1+(gaintoinc/100)) then
    MMpositionsize = (max(minpossize,equity*psperc))
    lastequity = equity
    endif
    ENDIF
    if decrease then
    if equity/lastequity <= (1-(losstodec/100)) then
    MMpositionsize = (max(minpossize,equity*psperc))
    lastequity = equity
    endif
    ENDIF
    ENDIF
    
    
    //*******************************************************************************************//
    //Position Size,Monthly,Weekly,Daily,Intra,Trend,Reversal Modifiers,           (optional)    //
    //*******************************************************************************************//
    //Berechnung am Schluss löschen ( auf 1 setzen) für Löschen des Modifikators
    ONCE DaySLFlag = 0
    ONCE PSizeL = startingsize
    ONCE PSizeS = startingsize
    ONCE MonthSizeL = 0
    ONCE MonthSizeS = 0
    ONCE WeekSizeL = 0
    ONCE WeekSizeS = 0
    ONCE DaySizeL = 0
    ONCE DaySizeS = 0
    ONCE Monatsanfang = 0
    ONCE Monatsende = 0
    ONCE IntraSizeL = 0
    ONCE IntraSizeS = 0
    
    IF Modifiers = 1 THEN
    IF MarketFlag = 1 THEN
    IF CurrentMonth = 1 OR CurrentMonth = 2 THEN
    MonthSizeS = 0.25
    MonthSizeL = 0
    ELSIF CurrentMonth = 3 OR CurrentMonth = 4 THEN
    MonthSizeS = 0
    PMonthSizeL = 0.25
    ELSIF CurrentMonth = 5 THEN
    MonthSizeS = 0
    MonthSizeL = 0
    ELSIF CurrentMonth =  6 THEN
    MonthSizeS = 0.25
    MonthSizeL = 0
    ELSIF CurrentMonth = 7 THEN
    MonthSizeS = 0
    MonthSizeL = 0.25
    ELSIF CurrentMonth = 8 THEN
    MonthSizeS = 0
    MonthSizeL = 0
    ELSIF CurrentMonth >= 9 AND CurrentMonth <= 10 THEN
    MonthSizeS = 0.25
    MonthSizeL = 0
    ELSIF CurrentMonth >= 11 AND CurrentMonth <= 12 THEN
    MonthSizeS = 0
    MonthSizeL = 0.5
    ENDIF
    ELSIF MarketFlag = 2 THEN
    IF CurrentMonth = 1 THEN
    MonthSizeS = 0.25
    MonthSizeL = 0
    ELSIF CurrentMonth = 3 OR CurrentMonth = 4 OR CurrentMonth = 5 THEN
    MonthSizeS = 0
    PMonthSizeL = 0.25
    ELSIF CurrentMonth =  6 THEN
    MonthSizeS = 0.25
    MonthSizeL = 0
    ELSIF CurrentMonth = 7 OR CurrentMonth = 8 THEN
    MonthSizeS = 0
    MonthSizeL = 0
    ELSIF CurrentMonth = 9 THEN
    MonthSizeS = 0.25
    MonthSizeL = 0
    ELSIF CurrentMonth = 10 THEN
    MonthSizeS = 0
    MonthSizeL = 0
    ELSIF CurrentMonth >= 11 AND CurrentMonth <= 12 THEN
    MonthSizeS = 0
    MonthSizeL = 0.5
    ENDIF
    ENDIF
    
    //Datumsliste jährlich anpassen und ggf erweitern!
    IF Time = Opening THEN
    If (OpenDay >= 03012019 AND Openday <= 07012019) OR (OpenDay >= 03012020 AND Openday <= 07012020) OR (OpenDay >= 03012021 AND Openday <= 07012021) OR (OpenDay >= 03012022 AND Openday <= 07012022) THEN
    Monatsanfang = 1
    ELSIF (OpenDay >= 01022019 AND Openday <= 05022019) OR (OpenDay >= 01022020 AND Openday <= 05022020) OR (OpenDay >= 01022021 AND Openday <= 05022021) OR (OpenDay >= 01022022 AND Openday <= 04022022) THEN
    Monatsanfang = 1
    ELSIF (OpenDay >= 01032019 AND Openday <= 05032019) OR (OpenDay >= 01032020 AND Openday <= 05032020) OR (OpenDay >= 01032021 AND Openday <= 05032021) OR (OpenDay >= 01032022 AND Openday <= 04032022) THEN
    Monatsanfang = 1
    ELSIF (OpenDay >= 01042019 AND Openday <= 05042019) OR (OpenDay >= 01042020 AND Openday <= 05042020) OR (OpenDay >= 01042021 AND Openday <= 05042021) OR (OpenDay >= 01042022 AND Openday <= 08042022) THEN
    Monatsanfang = 1
    ELSIF (OpenDay >= 01102019 AND Openday <= 05102019) OR (OpenDay >= 01102020 AND Openday <= 05102020) OR (OpenDay >= 01102021 AND Openday <= 05102021) OR (OpenDay >= 01102022 AND Openday <= 07102022) THEN
    Monatsanfang = 1
    ELSIF (OpenDay >= 01112019 AND Openday <= 05112019) OR (OpenDay >= 01112020 AND Openday <= 05112020) OR (OpenDay >= 01112021 AND Openday <= 05112021) OR (OpenDay >= 01112022 AND Openday <= 04112022) THEN
    Monatsanfang = 1
    ELSIF (OpenDay >= 01122019 AND Openday <= 05122019) OR (OpenDay >= 01122020 AND Openday <= 05122020) OR (OpenDay >= 01122021 AND Openday <= 05122021) OR (OpenDay >= 01122022 AND Openday <= 05122022) THEN
    Monatsanfang = 1
    ENDIF
    ELSIF Time = Closing THEN
    Monatsanfang = 0
    Monatsende = 0
    ENDIF
    
    If Monatsanfang = 1 THEN
    WeekSizeL = 0.0
    ENDIF
    If Monatsende = 1 THEN
    WeekSizeL = 0.25
    ENDIF
    
    IF OpenDayofWeek = 1 THEN
    DaySizeL = 0.25
    DaySizeS = 0
    ELSIF OpenDayofWeek = 5 Then
    DaySizeL = 0
    DaySizeS = 0.25
    ELSIF OpenDayofWeek <1 OR (OpenDayofWeek >= 2 AND OpenDayOfWeek <= 4) OR OpenDayofWeek = 6 THEN
    DaySizeL = 0
    DaySizeS = 0
    ENDIF
    
    IF Close < DLow(1) AND DaySLFlag = 1 THEN
    IntraSizeL = 0.25
    IntraSizeS = 0
    ELSIF Close > DHigh(1) AND DaySLFlag = 1 THEN
    IntraSizeL = 0
    IntraSizeS = 0.25
    ELSIF DaySLFlag = 0 THEN
    IntraSizeL = 0
    IntraSizeS = 0
    ENDIF
    
    IF Time >= Opening AND Time <= Closing THEN
    IF Close > ResR2 THEN
    IDReversalL = 0.25
    ELSIF Close > ResR3 THEN
    IDReversalL = 0.5
    ELSIF Close < SupS2 THEN
    IDReversalS = 0.25
    ELSIF Close > SupS3 THEN
    IDReversalS = 0.5
    ELSIF Close < ResR2 AND Close > SupS2 THEN
    IDReversalL = 0
    IDReversalS = 0
    ENDIF
    ENDIF
    
    IF Time = Closing THEN
    TrendSizeUp = 0
    TrendSizeDown = 0
    ENDIF
    IF Time = Opening THEN
    IF DHigh(1) > DHigh(2) AND DLow(1) > DLow(2) THEN
    TrendSizeUp = 0.25
    TrendSizeDown = 0
    ELSIF DHigh(1) < DHigh(2) AND DLow(1) < DLow(2) THEN
    TrendSizeUp = 0
    TrendSizeDown = 0.25
    ELSIF NOT (DHigh(1) > DHigh(2) AND DLow(1) > DLow(2)) AND NOT (DHigh(1) < DHigh(2) AND DLow(1) < DLow(2)) THEN
    TrendSizeUp = 0
    TrendSizeDown = 0
    ENDIF
    ENDIF
    
    //Einzelne Komponenten können nach belieben hier gelöscht werden, um die Modifikationen an eigene Vorstellungen anzupassen
    PositionSizeLong = (PSizeL+TrendSizeUp+IDReversalL+IntraSizeL+DaySizeL+WeekSizeL+MonthSizeL)*MMpositionsize
    PositionSizeShort = (PSizeS+TrendSizeDown+IDReversalS+IntraSizeS+DaySizeS+WeekSizeL+MonthSizeS)*MMpositionsize
    ELSIF Modifiers = 0 THEN
    PositionSizeLong = PSizeL*MMpositionsize
    PositionSizeShort = PSizeS*MMpositionsize
    ENDIF
    
    //*************************************************************************//
    //Xetra-Korrektur High Low Close, Pivot, Resistance, Support               //
    //*************************************************************************//
    if Time = Closing AND OPENDAYOFWEEK <6 AND OPENDAYOFWEEK >0 AND Tradeday then
    DayClose = Close
    DayHigh = Highest[(840/TF)](close[1])
    DayLow = Lowest[(840/TF)](close[1])
    ENDIF
    
    Pivot= (DayHigh + DayLow + DayClose) / 3
    ResR1 = Pivot + (Pivot - DayLow)
    ResR2 = Pivot + (Dayhigh - Daylow)
    ResR3 = Dayhigh + (2 * (Pivot - Daylow))
    SupS1 = Pivot - (Dayhigh - Pivot)
    SupS2 = Pivot - (Dayhigh - Daylow)
    SupS3 = Daylow - (2 * (Dayhigh - Pivot))
    
    //*************************************************************************//
    //Moving-Average-Clustering-FilterCode (optional)                          //
    //*************************************************************************//
    x     = 10*pipsize             //10-pip range
    ma5   = average[5,0](close)
    ma50  = average[50,0](close)
    ma100 = average[100,0](close)
    ma200 = average[200,0](close)
    MaxMA = max(ma5,max(ma50,max(ma100,ma200)))
    MinMA = min(ma5,min(ma50,min(ma100,ma200)))
    
    IF ClusterSave = 1 THEN
    IF (MaxMA - MinMA) <= x THEN
    Tradeon = 0
    ELSIF (MaxMA - MinMA) > x THEN
    IF RobustnessTest = 0 THEN
    Tradeon = 1
    ELSIF opendate >= startdate AND NOT (barindex mod qty = 0 or barindex mod qty = j) THEN
    Tradeon = 0
    ENDIF
    ENDIF
    ENDIF
    
    //*************************************************************************//
    //R2-Long/S2-Short Filter (optional)                                       //
    //*************************************************************************//
    IF ForbiddenLSFlag = 1 THEN
    ForbiddenLong = Close < SupS2
    ForbiddenShort = Close > ResR2
    ELSIF ForbiddenLSFlag = 2 THEN
    ForbiddenLong = Close > ResR2
    ForbiddenShort = Close < SupS2
    ELSIF ForbiddenLSFlag = 0 THEN
    ForbiddenLong = 0
    ForbiddenShort = 0
    ENDIF
    
    //*************************************************************************//
    //HexenSabbat-Filter                                                       //
    //*************************************************************************//
    //Datumsliste ggf jährlich anpassen
    IF HexSabFilter = 1 THEN
    IF Date = (15032019 OR 21062019 OR 20092019 OR 20122019 OR 20032020 OR 19062020 OR 18092020 OR 18122020 OR 19032021 OR 18062021 OR 17092021 OR 17122021 OR 18032022 OR 17062022 OR 16092022 OR 16122022) THEN
    Tradeon = 0
    ELSIF RobustnessTest = 0 AND Opening AND Tradeday THEN
    TradeON = 1
    ENDIF
    ENDIF
    
    //*************************************************************************//
    //MA20/MA50-   MA100/200-   Cross-Flag                                     //
    //*************************************************************************//
    MA20 = Average[20](close)
    MA50 = Average[50](close)
    MA100 = Average[100](close)
    MA200 = Average[200](close)
    MA20over = (MA20 crosses over MA50)
    MA20under = (MA20 crosses under MA50)
    MA100over = (MA100 > MA200)
    MA100under = (MA100 < MA200)
    
    //*************************************************************************//
    //Daytrend-Flag                                                            //
    //*************************************************************************//
    IF Time = Opening THEN
    IF DHigh(1) > DHigh(2) AND DLow(1) > DLow(2) THEN
    TrendFlag = 1
    ELSIF DHigh(1) < DHigh(2) AND DLow(1) < DLow(2) THEN
    TrendFlag = -1
    ELSIF NOT (DHigh(1) > DHigh(2) AND DLow(1) > DLow(2)) AND NOT (DHigh(1) < DHigh(2) AND DLow(1) < DLow(2)) THEN
    TrendFlag = 0
    ENDIF
    ENDIF
    TrendUp = (TrendFlag = 1)
    TrendDown = (TrendFlag = -1)
    
    //*************************************************************************//
    //trailing stop function      Risk, Long, Short                            //
    //*************************************************************************//
    //wenn gewünscht die Parameter ändern oder die SET STOP-CODES löschen
    // TrailingFlag = 0 Spezial (Code im Modul)
    // TrailingFlag = 1 Normal
    // TrailingFlag = 2 Risk
    trailingstartL = 25*FaktorTS      //LONG  trailing will start @trailinstart points profit, TrailingFlag = 0
    trailingstartS = 25*FaktorTS       //SHORT trailing will start @trailinstart points profit, TrailingFlag = 0
    trailingL = 20*FaktorTS            //trailing to move the "stoploss"
    trailingS= 20*FaktorTS            //trailing to move the "stoploss"
    trailingR= 15*FaktorTS            //trailing start+to move the "stoploss" for risky positions, TrailingFlag = 2
    SaveDistanceL = 10       //Minimum Stop-Abstand 10 lt IG
    SaveDistanceS = 10      //Minimum Stop-Abstand 10 lt IG
    SaveDistanceR = 10       //Minimum Stop-Abstand 10 lt IG
    MinimumPlus = SpreadGeb     //Anzahl Pips zum Breakeven inkl. Spread+Gebühren
    SET TARGET pProfit ZielProfit    //Target Profit
    
    //reset the stoploss value
    IF NOT ONMARKET THEN
    TrailingFlag = 0
    NewSL = 0
    ENDIF
    
    //************************//
    //manage long positions   //
    //***********************//
    IF LOngONMarket AND TrailingFlag = 1 THEN
    newSL = tradeprice(1)-(trailingstartL*pipsize)
    SET STOP pLOSS TrailingstartL
    ENDIF
    //breakeven
    IF (close-tradeprice(1)) >= ((MinimumPlus+SaveDistanceL)*pipsize) AND TrailingFlag = 1 THEN
    TrailingFlag = 3
    newSL = tradeprice(1)+(MinimumPlus*pipsize)
    SET STOP pTrailing TrailingL
    ENDIF
    IF (close-newSL) >= ((trailingL)*pipsize) AND TrailingFlag = 3 THEN
    newSL = close-(trailingL*pipsize)
    ENDIF
    IF LongOnMarket AND TrailingFlag = 2 THEN
    newSL = tradeprice(1)-(trailingR*pipsize)
    SET STOP pLOSS trailingR
    //breakeven
    IF (close-tradeprice(1)) >= ((MinimumPlus+SaveDistanceR)*pipsize) THEN
    newSL = tradeprice(1)+(MinimumPlus*pipsize)
    TrailingFlag = 4
    SET STOP pTrailing TrailingR
    ENDIF
    IF (close-newSL) >= (trailingR*pipsize) AND TrailingFlag = 4 THEN
    newSL = close-(trailingR*pipsize)
    ENDIF
    ENDIF
     
    //************************//
    //manage Short positions  //
    //************************//
    IF ShortONMarket AND TrailingFlag = 1 THEN
    newSL = tradeprice(1)+(trailingstartS*pipsize)
    SET STOP pLOSS TrailingstartS
    ENDIF
    //breakeven
    IF (tradeprice(1)-close) >= ((MinimumPlus+SaveDistanceS)*pipsize) AND TrailingFlag = 1 THEN
    TrailingFlag = 3
    newSL = tradeprice(1)-(MinimumPlus*pipsize)
    ENDIF
    IF (newSL-close) >= (trailingS*pipsize) AND TrailingFlag = 3 THEN
    newSL = close+(trailingS*pipsize)
    SET STOP pTrailing TrailingS
    ENDIF
    IF ShortOnMarket AND TrailingFlag = 2 THEN
    SET STOP pLOSS trailingR
    newSL = tradeprice(1)+(trailingR*pipsize)
    ENDIF
    //breakeven
    IF (tradeprice(1)-close) >= ((MinimumPlus+SaveDistanceR)*pipsize) THEN
    newSL = tradeprice(1)-(MinimumPlus*pipsize)
    SET STOP pTrailing TrailingR
    TrailingFlag = 4
    ENDIF
    IF (newSL-close) >= (trailingR*pipsize) AND TrailingFlag = 4 THEN
    newSL = close+(trailingR*pipsize)
    ENDIF
    
    //stop order to exit the positions
    IF LONGOnMarket AND newSL > 0 AND Close <= newSL THEN
    SELL AT MARKET
    ELSIF ShortOnMarket AND newSL > 0 AND Close >= newSL THEN
    EXITSHORT AT MARKET
    ENDIF
    
    //*************************************************************************//
    //Simple BreakOut und Trendfolge                          M/W/D: o/o/o     //
    //*************************************************************************//
    AmplitudeMin = 20
    hi = Highest[30](close[1])
    lo = Lowest[30](close[1])
    
    IF Time >= 080000 AND Time <= 220000 AND TradeDay AND TRADEON AND (hi - lo) > AmplitudeMin THEN
    //up
    IF NOT ONMARKET AND NOT ForbiddenLong AND Close > hi THEN
    IF RSI > 75 AND MACD > 2 AND Close > Average[10](close) AND Close > Close[1] AND Close[1] > Close[2] AND AroonUp > 70 AND MA20over AND TrendUp AND Close > Supertrend THEN
    TrailingFlag = 1
    BUY PositionsizeLong CONTRACTS AT MARKET
    ENDIF
    ENDIF
    //down
    IF NOT ONMARKET AND NOT ForbiddenShort AND Close < lo THEN
    IF RSI < 35 AND MACD < -2 AND Close < Average[10](close) AND Close < Close[1] AND Close[1] < Close[2] AND AroonDown > 70 AND MA20under AND TrendDown AND Close < Supertrend THEN
    TrailingFlag = 1
    SellShort PositionsizeShort CONTRACTS AT MARKET
    ENDIF
    ENDIF
    ENDIF
    
    robertogozzi thanked this post
    Picture-Tradesystem.png Picture-Tradesystem.png RunUpDrawdown.png RunUpDrawdown.png
    #187697 quote
    Stefan Sticker
    Participant
    New

    Last Minute Änderung:
    HexenSabbat-Filter Daten für 2019 korrigiert (Copy/Paste-Schlendrian).
    Ergebnisse nun minimal anders (57,xx Hit Rate und 1,83 Gewinn/Verlust-Ratio).
    Sorry.

    #187759 quote
    robertogozzi
    Moderator
    Master

    Danke fürs teilen 🙂

    #187761 quote
    Stefan Sticker
    Participant
    New

    Gerne! 🙂
    Allgemein sind Feedback und/oder Anregungen sehr willkommen! 😉

    #191260 quote
    bertrandpinoy
    Participant
    Veteran

    ich habe dieses Problem hier

    Capture-decran-2022-04-05-190443.png Capture-decran-2022-04-05-190443.png
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

Modular Algo System V1.0 + 30min-Range-BreakOut


ProOrder: Automatischer Handel & Backtesting

New Reply
Author
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by bertrandpinoy
3 years, 10 months ago.

Topic Details
Forum: ProOrder: Automatischer Handel & Backtesting
Language: German
Started: 02/06/2022
Status: Active
Attachments: 3 files
Logo Logo
Loading...