Stratégie multi indices en 10′ (secondes)
Forums › ProRealTime forum Français › Support ProOrder › Stratégie multi indices en 10′ (secondes)
- This topic has 21 replies, 4 voices, and was last updated 1 year ago by Meta Signals Pro.
-
-
11/09/2020 at 11:22 AM #149886
Bonjour la communauté,
je partage aujourd’hui une stratégie qui me donne de bon résultats avec un manque de constance d’une semaine à l’autre.
j’atteint mes limite en programmation…mais je suis convaincu que la base est est bonne et mérite d’être partagée et améliorée.
merci de faire part de vos commentaires, amélioration, correction, …
fonctionne sur plusieurs indices en travaillant sur les variables startingvalue(P,1,2,3,4…)
Stratégie adaptable123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941//-------------------------------------------------------------------------// Définition des paramètres du codeDefparam CumulateOrders = FalseDefparam Preloadbars = 10000Defparam FlatBefore = 153000Defparam FlatAfter = 213000daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//daysForbiddenEntry = OpenDayOfWeek = 1 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//************************************************************************// Heuristics Algorithm P StartIf (onmarket[1] = 1 and onmarket = 0) or (longonmarket[1] = 1 and longonmarket and countoflongshares < countoflongshares[1]) or (longonmarket[1] = 1 and longonmarket and countoflongshares > countoflongshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares < countofshortshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares > countofshortshares[1]) or (longonmarket[1] and shortonmarket) or (shortonmarket[1] and longonmarket) ThenoptimizeP = optimizeP + 1EnDifStartingValueP = 10ResetPeriodP = 5 //Specify no of days after which to reset optimizationIncrementP = 1MaxIncrementP = 3 //Limit of no of IncrementPs either up or downRepsP = 3 //Number of trades to use for analysisMaxValueP = 12 //Maximum allowed valueMinValueP = 9 //Minimum allowed valueonce DayinitP = dayonce MonthinitP = monthIf (month = MonthinitP and day = (DayinitP + ResetPeriodP)) or (month = (MonthinitP + 1) and ((month - DayinitP) + day = ResetPeriodP)) ThenR2LimE = StartingValuePWinCountBP = 0StratAvgBP = 0BestAP = 0BestBP = 0DayinitP = dayMonthinitP = monthEndIfonce P = StartingValuePonce PincPosP = 1 //Positive IncrementP Positiononce NincPosP = 1 //Neative IncrementP Positiononce optimizeP = 0 ////Initialize Heuristicks Engine Counter (Must be IncrementPed at Position Start or Exit)once ModeP = 1 //Switches between negative and positive IncrementPs//once WinCountBP = P //Initialize Best Win Count//GRAPH WinCountBP coloured (0,0,0) AS "WinCountBP"//once StratAvgBP = PP5P //Initialize Best Avg Strategy Profit//GRAPH StratAvgBP coloured (0,0,0) AS "StratAvgBP"If optimizeP = RepsP ThenWinCountAP = 0 //Initialize current Win CountStratAvgAP = 0 //Initialize current Avg Strategy ProfitFor iP = 1 to RepsP DoIf positionperf(iP) > 0 ThenWinCountAP = WinCountAP + 1 //IncrementP Current WinCountEndIfStratAvgAP = StratAvgAP + (((PositionPerf(iP)*countofposition[iP]*close)*-1)*-1)NextStratAvgAP = StratAvgAP/RepsP //Calculate Current Avg Strategy Profit//Graph (PositionPerf(1)*countofposition[1]*close)*-1 as "PosPerf1"//Graph (PositionPerf(2)*countofposition[2]*close)*-1 as "PosPerf2"//Graph StratAvgAP*-1 as "StratAvgAP"//once BestAP = P00//GRAPH BestAP coloured (0,0,0) AS "BestAP"If StratAvgAP >= StratAvgBP ThenStratAvgBP = StratAvgAP //Update Best Strategy ProfitBestAP = PEndIf//once BestBP = P00//GRAPH BestBP coloured (0,0,0) AS "BestBP"If WinCountAP >= WinCountBP ThenWinCountBP = WinCountAP //Update Best Win CountBestBP = PEndIfIf WinCountAP > WinCountBP and StratAvgAP > StratAvgBP ThenModeP = 0ElsIf WinCountAP < WinCountBP and StratAvgAP < StratAvgBP and ModeP = 1 ThenP = P - (IncrementP*NincPosP)NincPosP = NincPosP + 1ModeP = 2ElsIf WinCountAP >= WinCountBP or StratAvgAP >= StratAvgBP and ModeP = 1 ThenP = P + (IncrementP*PincPosP)PincPosP = PincPosP + 1ModeP = 1ElsIf WinCountAP < WinCountBP and StratAvgAP < StratAvgBP and ModeP = 2 ThenP = P + (IncrementP*PincPosP)PincPosP = PincPosP + 1ModeP = 1ElsIf WinCountAP >= WinCountBP or StratAvgAP >= StratAvgBP and ModeP = 2 ThenP = P - (IncrementP*NincPosP)NincPosP = NincPosP + 1ModeP = 2EndIfIf NincPosP > MaxIncrementP or PincPosP > MaxIncrementP ThenIf BestAP = BestBP ThenP = BestAPElseIf RepsP >= 10 ThenWeightedScoreP = 10ElseWeightedScoreP = round((RepsP/100)*100)EndIfP = round(((BestAP*(20-WeightedScoreP)) + (BestBP*WeightedScoreP))/20) //Lower RepsP = Less weight assigned to Win%EndIfNincPosP = 1PincPosP = 1ElsIf P > MaxValueP ThenP = MaxValuePElsIf P < MinValueP ThenP = MinValuePEndIFoptimizeP = 0Endif// Heuristics Algorithm P End//************************************************************************// Heuristics Algorithm 1 StartIf (onmarket[1] = 1 and onmarket = 0) or (longonmarket[1] = 1 and longonmarket and countoflongshares < countoflongshares[1]) or (longonmarket[1] = 1 and longonmarket and countoflongshares > countoflongshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares < countofshortshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares > countofshortshares[1]) or (longonmarket[1] and shortonmarket) or (shortonmarket[1] and longonmarket) Thenoptimize = optimize + 1EnDifStartingValue = 0.54ResetPeriod = 5 //Specify no of hour after which to reset optimizationIncrement = 0.005MaxIncrement = 40 //Limit of no of increments either up or downReps = 3 //Number of trades to use for analysisMaxValue = 0.6 //Maximum allowed valueMinValue = 0.4 //Minimum allowed valueonce Dayinit = dayonce Monthinit = monthIf (month = Monthinit and day = (Dayinit + ResetPeriod)) or (month = (Monthinit + 1) and ((month - Dayinit) + day = ResetPeriod)) ThenR2LimE = StartingValueWinCountB = 0StratAvgB = 0BestA = 0BestB = 0Dayinit = dayMonthinit = monthEndIfonce R2LimE = StartingValueonce PIncPos = 1 //Positive Increment Positiononce NIncPos = 1 //Neative Increment Positiononce Optimize = 0 ////Initialize Heuristicks Engine Counter (Must be Incremented at Position Start or Exit)once Mode = 1 //Switches between negative and positive increments//once WinCountB = 3 //Initialize Best Win Count//GRAPH WinCountB coloured (0,0,0) AS "WinCountB"//once StratAvgB = 4353 //Initialize Best Avg Strategy Profit//GRAPH StratAvgB coloured (0,0,0) AS "StratAvgB"If Optimize = Reps ThenWinCountA = 0 //Initialize current Win CountStratAvgA = 0 //Initialize current Avg Strategy ProfitFor i = 1 to Reps DoIf positionperf(i) > 0 ThenWinCountA = WinCountA + 1 //Increment Current WinCountEndIfStratAvgA = StratAvgA + (((PositionPerf(i)*countofposition[i]*close)*-1)*-1)NextStratAvgA = StratAvgA/Reps //Calculate Current Avg Strategy Profit//Graph (PositionPerf(1)*countofposition[1]*close)*-1 as "PosPerf1"//Graph (PositionPerf(2)*countofposition[2]*close)*-1 as "PosPerf2"//Graph StratAvgA*-1 as "StratAvgA"//once BestA = 300//GRAPH BestA coloured (0,0,0) AS "BestA"If StratAvgA >= StratAvgB ThenStratAvgB = StratAvgA //Update Best Strategy ProfitBestA = R2LimEEndIf//once BestB = 300//GRAPH BestB coloured (0,0,0) AS "BestB"If WinCountA >= WinCountB ThenWinCountB = WinCountA //Update Best Win CountBestB = R2LimEEndIfIf WinCountA > WinCountB and StratAvgA > StratAvgB ThenMode = 0ElsIf WinCountA < WinCountB and StratAvgA < StratAvgB and Mode = 1 ThenR2LimE = R2LimE - (Increment*NIncPos)NIncPos = NIncPos + 1Mode = 2ElsIf WinCountA >= WinCountB or StratAvgA >= StratAvgB and Mode = 1 ThenR2LimE = R2LimE + (Increment*PIncPos)PIncPos = PIncPos + 1Mode = 1ElsIf WinCountA < WinCountB and StratAvgA < StratAvgB and Mode = 2 ThenR2LimE = R2LimE + (Increment*PIncPos)PIncPos = PIncPos + 1Mode = 1ElsIf WinCountA >= WinCountB or StratAvgA >= StratAvgB and Mode = 2 ThenR2LimE = R2LimE - (Increment*NIncPos)NIncPos = NIncPos + 1Mode = 2EndIfIf NIncPos > MaxIncrement or PIncPos > MaxIncrement ThenIf BestA = BestB ThenR2LimE = BestAElseIf reps >= 10 ThenWeightedScore = 10ElseWeightedScore = round((reps/100)*100)EndIfR2LimE = round(((BestA*(20-WeightedScore)) + (BestB*WeightedScore))/20) //Lower Reps = Less weight assigned to Win%EndIfNIncPos = 1PIncPos = 1ElsIf R2LimE > MaxValue ThenR2LimE = MaxValueElsIf R2LimE < MinValue ThenR2LimE = MinValueEndIFOptimize = 0EndIf// Heuristics Algorithm 1 End//************************************************************************// Heuristics Algorithm 2 StartIf (onmarket[1] = 1 and onmarket = 0) or (longonmarket[1] = 1 and longonmarket and countoflongshares < countoflongshares[1]) or (longonmarket[1] = 1 and longonmarket and countoflongshares > countoflongshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares < countofshortshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares > countofshortshares[1]) or (longonmarket[1] and shortonmarket) or (shortonmarket[1] and longonmarket) Thenoptimize2 = optimize2 + 1EndifStartingValue2 = 0.7ResetPeriod2 = 5 //Specify no of months after which to reset optimizationIncrement2 = 0.005MaxIncrement2 = 40 //Limit of no of increments either up or downReps2 = 3 //Number of trades to use for analysisMaxValue2 = 0.8 //Maximum allowed valueMinValue2 = 0.6 //Minimum allowed valueonce Dayinit2 = dayonce Monthinit2 = monthIf (month = Monthinit2 and day = (Dayinit2 + ResetPeriod2)) or (month = (Monthinit2 + 1) and ((month - Dayinit2) + day = ResetPeriod2)) ThenR2LimS = StartingValue2WinCountB2 = 0StratAvgB2 = 0BestA2 = 0BestB2 = 0Dayinit2 = HourMonthinit2 = DayEndIfonce R2LimS = StartingValue2once PIncPos2 = 1 //Positive Increment Positiononce NIncPos2 = 1 //Neative Increment Positiononce Optimize2 = 0 ////Initialize Heuristicks Engine Counter (Must be Incremented at Position Start or Exit)once Mode2 = 1 //Switches between negative and positive increments//once WinCountB2 = 3 //Initialize Best Win Count//GRAPH WinCountB2 coloured (0,0,0) AS "WinCountB2"//once StratAvgB2 = 4353 //Initialize Best Avg Strategy Profit//GRAPH StratAvgB2 coloured (0,0,0) AS "StratAvgB2"If Optimize2 = Reps2 ThenWinCountA2 = 0 //Initialize current Win CountStratAvgA2 = 0 //Initialize current Avg Strategy ProfitFor i2 = 1 to Reps2 DoIf positionperf(i2) > 0 ThenWinCountA2 = WinCountA2 + 1 //Increment Current WinCountEndIfStratAvgA2 = StratAvgA2 + (((PositionPerf(i2)*countofposition[i2]*close)*-1)*-1)NextStratAvgA2 = StratAvgA2/Reps2 //Calculate Current Avg Strategy Profit//Graph (PositionPerf(1)*countofposition[1]*close)*-1 as "PosPerf1-2"//Graph (PositionPerf(2)*countofposition[2]*close)*-1 as "PosPerf2-2"//Graph StratAvgA2*-1 as "StratAvgA2"//once BestA2 = 300//GRAPH BestA2 coloured (0,0,0) AS "BestA2"If StratAvgA2 >= StratAvgB2 ThenStratAvgB2 = StratAvgA2 //Update Best Strategy ProfitBestA2 = R2LimSEndIf//once BestB2 = 300//GRAPH BestB2 coloured (0,0,0) AS "BestB2"If WinCountA2 >= WinCountB2 ThenWinCountB2 = WinCountA2 //Update Best Win CountBestB2 = R2LimSEndIfIf WinCountA2 > WinCountB2 and StratAvgA2 > StratAvgB2 ThenMode2 = 0ElsIf WinCountA2 < WinCountB2 and StratAvgA2 < StratAvgB2 and Mode2 = 1 ThenR2LimS = R2LimS - (Increment2*NIncPos2)NIncPos2 = NIncPos2 + 1Mode2 = 2ElsIf WinCountA2 >= WinCountB2 or StratAvgA2 >= StratAvgB2 and Mode2 = 1 ThenR2LimS = R2LimS + (Increment2*PIncPos2)PIncPos2 = PIncPos2 + 1Mode2 = 1ElsIf WinCountA2 < WinCountB2 and StratAvgA2 < StratAvgB2 and Mode2 = 2 ThenR2LimS = R2LimS + (Increment2*PIncPos2)PIncPos2 = PIncPos2 + 1Mode2 = 1ElsIf WinCountA2 >= WinCountB2 or StratAvgA2 >= StratAvgB2 and Mode2 = 2 ThenR2LimS = R2LimS - (Increment2*NIncPos2)NIncPos2 = NIncPos2 + 1Mode2 = 2EndIfIf NIncPos2 > MaxIncrement2 or PIncPos2 > MaxIncrement2 ThenIf BestA2 = BestB2 ThenR2LimS = BestA2ElseIf reps2 >= 10 ThenWeightedScore2 = 10ElseWeightedScore2 = round((reps2/100)*100)EndIfR2LimS = round(((BestA2*(20-WeightedScore2)) + (BestB2*WeightedScore2))/20) //Lower Reps = Less weight assigned to Win%EndIfNIncPos2 = 1PIncPos2 = 1ElsIf R2LimS > MaxValue2 ThenR2LimS = MaxValue2ElsIf R2LimS < MinValue2 ThenR2LimS = MinValue2EndIFOptimize2 = 0EndIf// Heuristics Algorithm 2 End//************************************************************************// Heuristics Algorithm 3 StartIf (onmarket[1] = 1 and onmarket = 0) or (longonmarket[1] = 1 and longonmarket and countoflongshares < countoflongshares[1]) or (longonmarket[1] = 1 and longonmarket and countoflongshares > countoflongshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares < countofshortshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares > countofshortshares[1]) or (longonmarket[1] and shortonmarket) or (shortonmarket[1] and longonmarket) Thenoptimize3 = optimize3 + 1EnDifStartingValue3 = 5.6ResetPeriod3 = 5 //Specify no of hour after which to reset optimizationIncrement3 = 0.2MaxIncrement3 = 15 //Limit of no of Increment3s either up or downReps3 = 3 //Number of trades to use for analysisMaxValue3 = 7 //Maximum allowed valueMinValue3 = 4 //Minimum allowed valueonce Dayinit3 = dayonce Monthinit3 = monthIf (month = Monthinit3 and day = (Dayinit3 + ResetPeriod3)) or (month = (Monthinit3 + 1) and ((month - Dayinit3) + day = ResetPeriod3)) ThenTrailingStart = StartingValue3WinCountB3 = 0StratAvgB3 = 0BestA3 = 0BestB3 = 0Dayinit3 = dayMonthinit3 = monthEndIfonce TrailingStart = StartingValue3once PincPos3 = 1 //Positive Increment3 Positiononce NincPos3 = 1 //Neative Increment3 Positiononce optimize3 = 0 ////Initialize Heuristicks Engine Counter (Must be Increment3ed at Position Start or Exit)once Mode3 = 1 //Switches between negative and positive Increment3s//once WinCountB3 = 3 //Initialize Best Win Count//GRAPH WinCountB3 coloured (0,0,0) AS "WinCountB3"//once StratAvgB3 = 4353 //Initialize Best Avg Strategy Profit//GRAPH StratAvgB3 coloured (0,0,0) AS "StratAvgB3"If optimize3 = Reps3 ThenWinCountA3 = 0 //Initialize current Win CountStratAvgA3 = 0 //Initialize current Avg Strategy ProfitFor i3 = 1 to Reps3 DoIf positionperf(i3) > 0 ThenWinCountA3 = WinCountA3 + 1 //Increment3 Current WinCountEndIfStratAvgA3 = StratAvgA3 + (((PositionPerf(i3)*countofposition[i3]*close)*-1)*-1)NextStratAvgA3 = StratAvgA3/Reps3 //Calculate Current Avg Strategy Profit//Graph (PositionPerf(1)*countofposition[1]*close)*-1 as "PosPerf1"//Graph (PositionPerf(2)*countofposition[2]*close)*-1 as "PosPerf2"//Graph StratAvgA3*-1 as "StratAvgA3"//once BestA3 = 300//GRAPH BestA3 coloured (0,0,0) AS "BestA3"If StratAvgA3 >= StratAvgB3 ThenStratAvgB3 = StratAvgA3 //Update Best Strategy ProfitBestA3 = TrailingStartEndIf//once BestB3 = 300//GRAPH BestB3 coloured (0,0,0) AS "BestB3"If WinCountA3 >= WinCountB3 ThenWinCountB3 = WinCountA3 //Update Best Win CountBestB3 = TrailingStartEndIfIf WinCountA3 > WinCountB3 and StratAvgA3 > StratAvgB3 ThenMode3 = 0ElsIf WinCountA3 < WinCountB3 and StratAvgA3 < StratAvgB3 and Mode3 = 1 ThenTrailingStart = TrailingStart - (Increment3*NincPos3)NincPos3 = NincPos3 + 1Mode3 = 2ElsIf WinCountA3 >= WinCountB3 or StratAvgA3 >= StratAvgB3 and Mode3 = 1 ThenTrailingStart = TrailingStart + (Increment3*PincPos3)PincPos3 = PincPos3 + 1Mode3 = 1ElsIf WinCountA3 < WinCountB3 and StratAvgA3 < StratAvgB3 and Mode3 = 2 ThenTrailingStart = TrailingStart + (Increment3*PincPos3)PincPos3 = PincPos3 + 1Mode3 = 1ElsIf WinCountA3 >= WinCountB3 or StratAvgA3 >= StratAvgB3 and Mode3 = 2 ThenTrailingStart = TrailingStart - (Increment3*NincPos3)NincPos3 = NincPos3 + 1Mode3 = 2EndIfIf NincPos3 > MaxIncrement3 or PincPos3 > MaxIncrement3 ThenIf BestA3 = BestB3 ThenTrailingStart = BestA3ElseIf Reps3 >= 10 ThenWeightedScore3 = 10ElseWeightedScore3 = round((Reps3/100)*100)EndIfTrailingStep = round(((BestA3*(20-WeightedScore3)) + (BestB3*WeightedScore3))/20) //Lower Reps3 = Less weight assigned to Win%EndIfNincPos3 = 1PincPos3 = 1ElsIf TrailingStart > MaxValue3 ThenTrailingStart = MaxValue3ElsIf TrailingStart < MinValue3 ThenTrailingStart = MinValue3EndIFoptimize3 = 0EndIf// Heuristics Algorithm 3 End//************************************************************************// Heuristics Algorithm 4 StartIf (onmarket[1] = 1 and onmarket = 0) or (longonmarket[1] = 1 and longonmarket and countoflongshares < countoflongshares[1]) or (longonmarket[1] = 1 and longonmarket and countoflongshares > countoflongshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares < countofshortshares[1]) or (shortonmarket[1] = 1 and shortonmarket and countofshortshares > countofshortshares[1]) or (longonmarket[1] and shortonmarket) or (shortonmarket[1] and longonmarket) Thenoptimize4 = optimize4 + 1EnDifStartingValue4 = 1.9ResetPeriod4 = 5 //Specify no of days after which to reset optimizationIncrement4 = 0.1MaxIncrement4 = 20 //Limit of no of Increment4s either up or downReps4 = 3 //Number of trades to use for analysisMaxValue4 = 3 //Maximum allowed valueMinValue4 = 1 //Minimum allowed valueonce Dayinit4 = Dayonce Monthinit4 = MonthIf (Month = Monthinit4 and Day = (Dayinit4 + ResetPeriod4)) or (Month = (Monthinit4 + 1) and ((month - Dayinit4) + Day = ResetPeriod4)) ThenTrailingStep = StartingValue4WinCountB4 = 0StratAvgB4 = 0BestA4 = 0BestB4 = 0Dayinit4 = DayMonthinit4 = MonthEndIfonce TrailingStep = StartingValue4once PincPos4 = 1 //Positive Increment4 Positiononce NincPos4 = 1 //Neative Increment4 Positiononce optimize4 = 0 ////Initialize Heuristicks Engine Counter (Must be Increment4ed at Position Start or Exit)once Mode4 = 1 //Switches between negative and positive Increment4s//once WinCountB4 = 4 //Initialize Best Win Count//GRAPH WinCountB4 coloured (0,0,0) AS "WinCountB4"//once StratAvgB4 = 4454 //Initialize Best Avg Strategy Profit//GRAPH StratAvgB4 coloured (0,0,0) AS "StratAvgB4"If optimize4 = Reps4 ThenWinCountA4 = 0 //Initialize current Win CountStratAvgA4 = 0 //Initialize current Avg Strategy ProfitFor i4 = 1 to Reps4 DoIf positionperf(i4) > 0 ThenWinCountA4 = WinCountA4 + 1 //Increment4 Current WinCountEndIfStratAvgA4 = StratAvgA4 + (((PositionPerf(i4)*countofposition[i4]*close)*-1)*-1)NextStratAvgA4 = StratAvgA4/Reps4 //Calculate Current Avg Strategy Profit//Graph (PositionPerf(1)*countofposition[1]*close)*-1 as "PosPerf1"//Graph (PositionPerf(2)*countofposition[2]*close)*-1 as "PosPerf2"//Graph StratAvgA4*-1 as "StratAvgA4"//once BestA4 = 400//GRAPH BestA4 coloured (0,0,0) AS "BestA4"If StratAvgA4 >= StratAvgB4 ThenStratAvgB4 = StratAvgA4 //Update Best Strategy ProfitBestA4 = TrailingStepEndIf//once BestB4 = 400//GRAPH BestB4 coloured (0,0,0) AS "BestB4"If WinCountA4 >= WinCountB4 ThenWinCountB4 = WinCountA4 //Update Best Win CountBestB4 = TrailingStepEndIfIf WinCountA4 > WinCountB4 and StratAvgA4 > StratAvgB4 ThenMode4 = 0ElsIf WinCountA4 < WinCountB4 and StratAvgA4 < StratAvgB4 and Mode4 = 1 ThenTrailingStep = TrailingStep - (Increment4*NincPos4)NincPos4 = NincPos4 + 1Mode4 = 2ElsIf WinCountA4 >= WinCountB4 or StratAvgA4 >= StratAvgB4 and Mode4 = 1 ThenTrailingStep = TrailingStep + (Increment4*PincPos4)PincPos4 = PincPos4 + 1Mode4 = 1ElsIf WinCountA4 < WinCountB4 and StratAvgA4 < StratAvgB4 and Mode4 = 2 ThenTrailingStep = TrailingStep + (Increment4*PincPos4)PincPos4 = PincPos4 + 1Mode4 = 1ElsIf WinCountA4 >= WinCountB4 or StratAvgA4 >= StratAvgB4 and Mode4 = 2 ThenTrailingStep = TrailingStep - (Increment4*NincPos4)NincPos4 = NincPos4 + 1Mode4 = 2EndIfIf NincPos4 > MaxIncrement4 or PincPos4 > MaxIncrement4 ThenIf BestA4 = BestB4 ThenTrailingStep = BestA4ElseIf Reps4 >= 10 ThenWeightedScore4 = 10ElseWeightedScore4 = round((Reps4/100)*100)EndIfTrailingStep = round(((BestA4*(20-WeightedScore4)) + (BestB4*WeightedScore4))/20) //Lower Reps4 = Less weight assigned to Win%EndIfNincPos4 = 1PincPos4 = 1ElsIf TrailingStep > MaxValue4 ThenTrailingStep = MaxValue4ElsIf TrailingStep < MinValue4 ThenTrailingStep = MinValue4EndIFoptimize4 = 0EndIf// Heuristics Algorithm 4 End//************************************************************************//Pivot (H + L + C + O)/4If OpenDayOfWeek = 1 ThenHt = DHigh(2)Bs = DLow(2)C = DClose(2)O = DOpen(0)EndifIf OpenDayOfWeek => 2 and dayofweek < 6 ThenHt = DHigh(1)Bs = DLow(1)C = DClose(1)O = DOpen(0)EndifPivot = (Ht + Bs + C + O)/4Res4 = Ht + (3*(Pivot - BS))Res3 = Ht + (2*(Pivot - Bs))Res2 = Pivot + (Ht - Bs)Res1 = (2*Pivot) - BsSup1 = (2*Pivot) - HtSup2 = Pivot-(Ht - Bs)Sup3 = Bs - (2*(Ht - Pivot))Sup4 = Bs - (3*(Ht - Pivot))//Heikin-HachiOnce UpDown = 0IF BarIndex = 0 ThenxClose = TotalPricexOpen = RangexHigh = HighxLow = LowElsexClose = TotalPricexOpen = (xOpen[1] + xClose[1])/2xHigh = Max(max(high, xOpen), xClose)xLow = Min(min(Low, xOpen), xClose)endifIf XClose >= XOpen thenif UpDown <> 1 thenUpDown = 1endifElseIf UpDown <> -1 thenUpDown = -1endifendifHHSize = 0.6Distance = 8LookBack = 8640SRk = 5SRs = 8//P = 9 // Slope, R², RSI, Sochastic//R2LimE = 0.52 // Coefficient de correlation R² d'entrée//R2LimS = 0.77 // Coefficient de correlation R² de sortieQ = P // StochasticR = 3 // StochasticS = 5 // StochasticSumBull = 2 // Variable BullSumBear = 2 // Variable Bear// Timeframe SRLeveltimeframe (5 minutes, updateonclose)// --- icihmoku support and resistancekijun = (highest[26](high)+lowest[26](low))/2SSB = (highest[52](high[26])+lowest[52](low[26]))/2kijunp = summation[SRk](Kijun=Kijun[1])=SRkssbp = summation[SRs](SSB=SSB[1])=SRsif kijunp thenkijunPrice = kijunendifif ssbp thenssbPrice = SSBendifif kijunprice = ssbprice thenSRlevel = kijunpriceif SRLevel > Close thenResLevel = SRlevelelsif SRLevel < Close thenSupLevel = SRlevelendifendif// Timeframe en UT SupérieurTimeframe (3 minutes, updateonclose)SlopeUTSup = Endpointaverage[P](LinearRegressionSlope[P](Close))If SlopeUTSup > SlopeUTSup[1] thenBullUTSup = 1BearUTSup = 0Elsif SlopeUTSup < SlopeUTSup[1] thenBullUTSup = 0BearUTSup = -1endifMyR2Sup = R2[P](Close)If MyR2Sup > R2LimE thenAllowedEntry = 1Elsif MyR2Sup < R2LimE thenAllowedEntry = 0EndifMyRSIUTSup = TriangularAverage[P](RSI[5](Close))If MyRSIUTSup > MyRSIUTSup[1] thenMyRSIUTSupBull = +1MyRSIUTSupBear = 0Elsif MyRSIUTSup < MyRSIUTSup[1] thenMyRSIUTSupBull = 0MyRSIUTSupBear = -1Endif//************************************************************************//Timeframe en UT de TradingTimeframe (10 seconds, default)EMA50 = ExponentialAverage[50](Close)EMA200 = ExponentialAverage[200](Close)Slope = EndpointAverage[P](LinearRegressionSlope[P](Close))If Slope > Slope[1] ThenBull = +1Bear = 0Elsif Slope < Slope[1] ThenBull = 0Bear = -1EndifMyR2 = R2[P](WeightedClose)MyRSI = EndpointAverage[P](RSI[5](Close))If MyRSI > MyRSI[1] thenMyRSIBull = +1MyRSIBear = 0Elsif MyRSI < MyRSI[1] thenMyRSIBull = 0MyRSIBear = -1EndifMyStocK = Stochastic[Q,R](close)MyStocD = WeightedAverage[S](Stochastic[Q,R](close))If MyStocK > MyStocD ThenStocUp = +1StocDown = 0Elsif MyStocK < MyStocD ThenStocUp = 0StocDown = -1Endif//************************************************************************levier = 2capital = 500 + (strategyprofit*2/5)z = (capital / (close/20)) * levier//************************************************************************//Position acheteuseBuyConditionA = (xClose - xOpen)*pipsize => HHSizeBuyConditionB = Summation[SumBull](BullUTSup) = SumBullBuyConditionC = Summation[SumBull](AllowedEntry) = SumbullBuyConditionD = MyRSIUTSup < 76.4BuyConditionE = summation[SumBull](MyRSIUTSupBull) = SumBullBuyConditionF = EMA50 > EMA200 and EMA50 < Close and EMA200 < CloseBuyConditionG = Summation[SumBull](Bull) = SumBullBuyConditionH = MyRSI < 76.4BuyConditionI = summation[SumBull](MyRSIBull) = SumBullBuyConditionJ = Summation[SumBull](StocUp) = SumBull and MyStocK < 80BuyConditionK = MyR2 Crosses over R2LimEBuyConditionL = MyR2 > R2LimEif BuyconditionA and BuyConditionB and BuyConditionC and BuyConditionD and BuyConditionE and BuyConditionF and BuyConditionG and BuyConditionH and BuyConditionI and BuyConditionJ and BuyConditionK and not onmarket and not daysForbiddenEntry thenallowtrading = 1for iSRB = 0 to lookback -1 dodist = (Reslevel[iSRB] - Close) < distance*pipsizeif dist thenallowtrading = 0 //no trading is allowed we are near a SR!break //break the loop, no need to continue, trading is not allowed anymore!endifnextif close > pivot then//above PivotiPivt = 1while iPivt =< 4 doif iPivt = 1 thenFloor = PivotCeil = Res1if close > Floor and close < Ceil thenbreakendifelsif iPivt = 2 thenFloor = Res1Ceil = Res2if close > Floor and close < Ceil thenbreakendifelsif iPivt = 3 thenFloor = Res2Ceil = Res3if close > Floor and close < Ceil thenbreakendifelsif iPivt = 4 thenFloor = Res3Ceil = Res4if close > Floor and close < Ceil thenbreakendifendifiPivt = iPivt + 1wendelsif close < Pivot then//below PivotiPivt = 1while iPivt <= 4 doif iPivt = 1 thenFloor = Sup1Ceil = Pivotif close > Floor and close < Ceil thenbreakendifelsif iPivt = 2 thenFloor = Sup2Ceil = Sup1if close > Floor and close < Ceil thenbreakendifelsif iPivt = 3 thenFloor = Sup3Ceil = Sup2if close > Floor and close < Ceil thenbreakendifelsif iPivt = 4 thenFloor = Sup4Ceil = Sup3if close > Floor and close < Ceil thenbreakendifendifiPivt = iPivt + 1wendendifFor IPivt = 1 to 4 dodist = (Ceil - Close) < distance*pipsizeIf Dist thenallowtrading = 0BreakendifnextIf BuyConditionL thenEntry = Barindexendifif Barindex-Entry <= 2 thenif allowtrading thenbuy z share at marketendifendifendifIf Longonmarket and MyR2Sup crosses under R2LimS thenSell at Marketelsif Longonmarket and MyR2Sup crosses under R2LimE thenSell at MarketEndif//Position VendeuseSellConditionA = (xOpen - xClose)*pipsize => HHSizeSellConditionB = Summation[SumBear](BearUTSup) = -SumBearSellConditionC = Summation[SumBull](AllowedEntry) = SumBullSellConditionD = MyRSIUTSup > 23.6SellConditionE = Summation[SumBear](MyRSIUTSupBear) = -SumBearSellConditionF = EMA50 < EMA200 and EMA50 > Close and EMA200 > CloseSellConditionG = Summation[SumBear](Bear) = -SumBearSellConditionH = MyRSI > 23.6SellConditionI = Summation[SumBear](MyRSIBear) = -SumBearSellConditionJ = Summation[SumBear](StocDown) = -SumBear and MyStocK > 20SellConditionK = MyR2 Crosses over R2LimESellConditionL = MyR2 > R2LimEif SellConditionA and SellconditionB and SellConditionC And SellConditionD and SellConditionE and SellConditionF and SellConditionG and SellConditionH and SellConditionI and SellConditionJ and SellConditionK and not onmarket and not daysForbiddenEntry thenallowtrading = 1for iSRV = 0 to lookback -1 dodist = (close-Suplevel[iSRV]) < distance*pipsizeif dist thenallowtrading = 0 //no trading is allowed we are near a SR!break //break the loop, no need to continue, trading is not allowed anymore!endifnextif close > pivot then//above PivotiPivt = 1while iPivt =< 4 doif iPivt = 1 thenFloor = PivotCeil = Res1if close > Floor and close < Ceil thenbreakendifelsif iPivt = 2 thenFloor = Res1Ceil = Res2if close > Floor and close < Ceil thenbreakendifelsif iPivt = 3 thenFloor = Res2Ceil = Res3if close > Floor and close < Ceil thenbreakendifelsif iPivt = 4 thenFloor = Res3Ceil = Res4if close > Floor and close < Ceil thenbreakendifendifiPivt = iPivt + 1wendelsif close < Pivot then//below PivotiPivt = 1while iPivt <= 4 doif iPivt = 1 thenFloor = Sup1Ceil = Pivotif close > Floor and close < Ceil thenbreakendifelsif iPivt = 2 thenFloor = Sup2Ceil = Sup1if close > Floor and close < Ceil thenbreakendifelsif iPivt = 3 thenFloor = Sup3Ceil = Sup2if close > Floor and close < Ceil thenbreakendifelsif iPivt = 4 thenFloor = Sup4Ceil = Sup3if close > Floor and close < Ceil thenbreakendifendifiPivt = iPivt + 1wendendifFor IPivt = 1 to 4 dodist = (Close - Floor) < distance*pipsizeIf Dist thenallowtrading = 0Breakendifnextif SellConditionL thenEntry = BarindexendifIf Barindex-Entry <= 2 thenif allowtrading thensellshort z share at marketendifendifendifIf Shortonmarket and MyR2Sup crosses under R2LimS thenExitshort at marketelsif Shortonmarket and MyR2Sup crosses under R2LimE thenExitshort at marketEndif//************************************************************************//Stop Loss & Trailing function//Set stop $loss capital*levier*4/100Set Target $Profit capital*levier*3/100//reset the stoploss valueIf not onmarket thennewSL = 0Endif//manage long positionsIf Longonmarket ThenIf newSL = 0 and xLow-tradeprice(1) > trailingstart*pipsize thennewSL = tradeprice(1) + trailingstep*pipsizeEndifIf newSL <> 0 and xLow-newSL > trailingstep*pipsize thennewSL = newSL + trailingstep*pipsizeEndifEndif//manage short positionsIf ShortonMarket thenIf newSL = 0 and tradeprice(1)-xHigh > trailingstart*pipsize ThennewSL = tradeprice(1) - trailingstep*pipsizeEndifIf newSL <> 0 and newSL-xHigh > trailingstep*pipsize ThennewSL = newSL - trailingstep*pipsizeEndifEndif//stop order to exit the positionsIf newSL <> 0 ThenSell at newSL StopExitshort at newSL StopEndif//************************************************************************ma contribution au cercle vertueux…
1 user thanked author for this post.
11/09/2020 at 4:19 PM #14991711/09/2020 at 5:26 PM #149926Slt Nicolas,
oui en effet, le code est long mais il ne doit pas faire peur…!
tout d’abord, je dois dire que j’ai découvert prorealcode pendant le dernier confinement, je ne suis pas programmeur, j’apprend sur le tas en lisant le forum et en décryptant vos codes à tous; beaucoup dans mon code sont des morceaux qui viennent d’un peu partout, j’ai peut être des incohérences ce qui expliquerait que je me retrouve certaines semaines avec des résultats neutre, d’autres semaines c’est très bon.
c’est une stratégie disont “intrascalp” qui prend en compte plusieurs timeframe, car c’est le seul moyen fiable que j’ai trouvé pour confirmer la tendance à court terme.
c’est une stratégie en 10 secondes ce qui ne me permet pas de backtester au delà de 4 jours, peut être certain d’entre vous pouront faire plus avec la V11
la première partie du code sont une succession de 5 algorithmes que j’ai emprunté à Juan. ils servent à l’optimisation des variables:
- StartingValueP = période pour:
- Slope ==> pente de régression linéaire
- R² ==> coefficient de corrélation de Scope
- moyenne mobile d’un RSI[5]
- période du Stochastique
- StartingValue = variable d’ajustement pour la valeur d’entrée en position en fonction du R² ( supérieur à 0,4) 0.54
- StartingValue2 = variable d’ajustement du R² de sortie
- StartingValue3 = il s’agit de l’optimisation de la variable d’un trailingstart (basée sur Heikin Ashi)
- StartingValue4 = il s’agit de l’optimisation de la variable d’un trailingstep (basée sur Heikin Ashi)
En Effet j’utilise un xClose et xOpen en lieu et place de Close, car j’ai remarqué que j’obtenais de meilleurs résultats de cette manière (Nicolas il s’agit de ton code que j’ai adapté à mes besoins)
j’utilise donc plusieur timeframe
- Timeframe (5 minutes, updateonclose)
j’utilise Ichimoku dans ce timeframe pour definir des supports et résistance en fonction des plats Kijun et SSB, j’utilise également le point pivot pour définir les résistance et support du pivot, si je suis trop proche de ces zones je ne dois pas trader!
- Timeframe (3 minutes, updateonclose) ça change en fonction de l’actif, car ce time frame est important pour l’indice trader, 2, 3, 4….4 étant un maximum
- dans ce time frame intervient plusieurs indicateurs:
- une pente de régression linéaire (Slope)
- un R²
- un RSI
- dans ce time frame intervient plusieurs indicateurs:
Slope me donne la tendance, elle monte je suis à l’achat, elle descend je suis à la vente. le RSI doit être inférieur à 76.4 en achat et supérieur à 23.8 en vente (référence à un palier de fibo…;)); le R² me sert pour déterminer un point d’entrée, en fonction de Slope, il me confirme la tendance lorsqu’il est supérieur à 0,x “0.54 dans le cas présent sur le Nasdaq). c’est tout pour ce time frame.
j’ai créer des valeurs booléenne pour l’interprétation de comment le code doit fonctionner (si des questions je suis à votre disposition)
- Timeframe (10 seconds, default)
- c’est le timeframe de trading, si les conditions définies dans le timeframe supérieur (3 minutes) sont remplie, et que je trouve un point d’entrée en 10 sec alors j’entre.
- je remarque malgré tout que souvent après etre entré en position le marché se retourne, il s’agit de la seule raison qui me fait perdre une position (j’en arrive à la conclusion que je suis chaque fois en retard sur l’entrée)
Dans ce timeframe j’utilise également:
-
- deux moyennes mobile 50 et 200 (filtre pour entrer en position, sous les moyenne ==> vente ; au dessus des moyenne ==> Achat)
- une pente de régression linéaire
- une R²
- un RSI et un Stochastique
pour entrer en position, le RSI doit remplir les même condition qu’en UT supérieur, idem Slope et R² et le stochastique > 20 en vente et <80 à l’achat.
-
- que ce soit à la vente ou à l’achat, la différence entre l’ouverture et la fermeture de la bougie précédente ne doit pas être inférieur à 0.6*pipsize
- voir les conditions
pour sortir de position, il y a deux solution:
- soit le stop suivre se déclenche et la position est gagnée quoi qu’il arrive
- soit le stop suiveur ne se déclenche pas et le marché se retourne et alors c’est le croisement à la baisse du R² en ut supérieur qui sert de stoploss
- R2limS qui correspond à une valeur élevée du R² (0.7 par défaut)
- R2LimE qui correspond à la valeur de corrélation limite
voila c’est pas compliqué ;=), j’espère être clair.
11/10/2020 at 10:52 AM #150002En effet c’est beaucoup plus clair, merci pour ce résumé 🙂
AMHA, il y a trop de conditions liées à des calculs d’indicateurs dans ton timeframe 10-sec. Si tu connais ta tendance dans les timeframes supérieurs, tu devrais attendre un retour à la moyenne dans ceux-ci, et trouver une action simple du prix dans la plus petite des unités de temps pour lancer ta position.
11/10/2020 at 11:24 AM #150005Slt Nicolas,
je vais essayé de pondre un truc…
j’ai tellement passé de temps sur ce put….. de code que j’avoue avoir envie de prendre un peu de distance quelques jours.
merci pour ton retour en tout cas.
à titre personnel, vu que tu es le nez dans le code plus que moi, que pense tu de la stratégie?
11/12/2020 at 11:58 AM #150261En effet c’est beaucoup plus clair, merci pour ce résumé 🙂
AMHA, il y a trop de conditions liées à des calculs d’indicateurs dans ton timeframe 10-sec. Si tu connais ta tendance dans les timeframes supérieurs, tu devrais attendre un retour à la moyenne dans ceux-ci, et trouver une action simple du prix dans la plus petite des unités de temps pour lancer ta position.
Slt Nicolas,
j’ai tenté de réduire les conditions en UT 10′ sans réel amélioration.
j’ai ajusté et filtré mon code actuel ce qui améliore la stratégie, mais je suis convaincu qu’il y a moyen d’obtenir mieux…
le code actuel fonctionne bien sur le nasdaq….sur les autres indices c’estplus compliqué.
11/12/2020 at 4:41 PM #150308Dernière mise à jour: [edit modérateur: merci de poster la stratégie en fichier texte attaché, trop de codes à afficher] …
11/12/2020 at 4:53 PM #150310Merci Fantasio, mais j’ai dut supprimer le dernier code, ça faisait planter l’affichage du site 🙄
Aurais-tu la gentillesse d’attacher le code dans un fichier texte la prochaine fois ? (on un ficher itf bien entendu). Merci encore pour le partage.
11/12/2020 at 5:03 PM #15031211/12/2020 at 5:07 PM #150318Merci Fantasio, mais j’ai dut supprimer le dernier code, ça faisait planter l’affichage du site 🙄
Aurais-tu la gentillesse d’attacher le code dans un fichier texte la prochaine fois ? (on un ficher itf bien entendu). Merci encore pour le partage.
Disons que j’espère aussi profiter des amélioration que d’autre pourrons apporter.
jusque là j’ai beaucoup sollicité la communauté, à mon tour de proposer quelque chose.
si la stratégie s’avère pas trop mal je pourrais l’ajouter à la base de donnée des stratégies déjà existantes.
11/12/2020 at 6:44 PM #150327Petite erreur sur les conditions de sortie de short:
1234567If Shortonmarket and EMA13 crosses over EMA50 thenExitshort at Marketelsif shortonmarket and MyR2Sup crosses under R2LimS thenExitshort at Marketelsif shortonmarket and MyR2Sup crosses under R2LimE thenExitshort at MarketEndiferreur de copié collé.
11/17/2020 at 12:36 PM #150774Bonjour Fantasio, Merci d’avoir partagé ton travail. Je ne suis pas Expert, mais ton code m’intéresse beaucoup car vue la volatilité actuelle, il vaut mieux profiter de micro oscillations que de faire du Trend Following. Il suffit d’un Tweet de X ou Y personnalité pour que le compte parte en fumée 🙂
J’ai repris ton fichier (IA-NASDAQ-R²-V1.063HiSR.itf) et j’ai mis à jour les conditions de sortie comme indiqué dans ton post (11/12/2020 at 6:44 PM#150327). Malheureusement, j’arrive à un résultat largement inférieur à ton screen shot tant sur le Win Rate (60%) que sur le Profit Factor (x1.05). Aussi, l’Algo n’a pris que des ordres Short.
As-tu fais les tests en mode tick by tick?
Le Spread de 1 ne correspond pas à ce qu’il y a sur le site de IG. Sur des allers-retours fréquents avec petits gains, cela peut avoir un gros impact sur le résultat final.
Je serais intéressé de savoir si tu obtiens les mêmes résultats.
IG NQ SPREAD12345678/// SPREAD NQ //////IF time>=133000 AND time>200000 thenspread = 1/2ELSIF time>=200000 AND time>220000 thenspread = 5/2ELSIF time>=220000 AND time>133000 thenspread = 2/2ENDIFSi tu postes la dernière version, je peux faire des tests sur SP500 et DAX si cela t’intéresse.
11/17/2020 at 1:19 PM #150784Slt Khaled,
oui j’obtiens plus ou moins les mêmes résultats.
les les backtest sont toujours effectués en tick/tick
Je constat néanmoins des divergences entre back test et réel…. souvent en réel les résultats sont moins bon.
La stratégie tourne pour le moment en demo, et j’observe… quand je détecte des position perdante j’essaie de compenser en ajoutant un filtre, c’est la raison pour laquelle le code s’allonge de semaine en semaine… et j’atteins les limites avec le code ci-joint; raison pour laquelle j’ai partagé…afin que la communauté puisse apporter sa contribution.
La stratégie est bonne, je l’utilise quotidiennement en manuel avec de bon résultats ( 4 à 5%/jours avec une bonne discipline) le problème, c’est que c’est très difficile de demander à une statégie automatique de remplacer l’œil humain.
Par contre l’histoire du spread, j’ai déjà effectué beaucoup de test sur différentes plages de trading, mais en dehors des plages horaires des marchés US ou EUR, je n’ai pas de bon résultats, car ils se comportent différemment en dehors des ouvertures de marché respective.
Bien que les plages d’IG soient différentes et côtent H24, je ne conseil pas de trader les marchés US et dehors des ouvertures de WS (15H30 – 22H00 heures Europe) idem pour le CAC ou le DAX qui se trade entre 9h et 17h30 au plus tard; avec cette stratégie.
11/17/2020 at 1:34 PM #150788Fantasio, je suis d’accord sur les horaires de trading sur IG, après la clôture des marchés US, ça devient du rodéo… ça doit être des Algos…
Est ce que tu sais pourquoi ton Algo ne sort que des Trade Short ? même après la correction de SELL en SELLSHORT?
11/17/2020 at 1:37 PM #150789ça doit être un concours de circonstance, car sur des backtest des précédentes semaine j’ai eu des long….
j’ai également eu un long il y a une quinzaine de minute sur un autre indice
- StartingValueP = période pour:
-
AuthorPosts