Clore une position avec BladeScalper
Forums › ProRealTime forum Français › Support ProOrder › Clore une position avec BladeScalper
- This topic has 6 replies, 3 voices, and was last updated 2 years ago by Nicolas.
-
-
09/21/2022 at 1:17 PM #201135
Bonjour à tous, je suis VRAIMENT catastrophique en coding, je suis un littéraire j’ai horreur des logiques mathematiques, malgré tout je me force à comprendre comment coder un algo que je trouve interessant… J’apprecierai enormement un coup de pouce pour m’aider à finaliser un code :
Voici mon probleme, j’utilise BladeScalper pour entrer en position, j’ai l’impression qu’il rentre au bon moment, mais ne se stoppe jamais au TP1 et pire il poursuit la position sans se stopper au SL.
J’utilise ce code :
12345678910ignored, BladeSignal = CALL "BladeSCALPER"[1, 1, 1, 1, 0.7, 25, 0.7, 0, 0.7, 15000, 1, 3.6, 29.6, 0, 1, 0, 200, 0, 0](close)//of course you need to adapt each parameter of the PatternFactor and the MovingAverageFILTER (23.6, ... , ..., 0, 200, 0)if not longonmarket and BladeSignal =1 thenbuy 0.4 contract at marketendifif not shortonmarket and BladeSignal =-1 thensellshort 0.4 contract at marketendifOui je sais c’est basique mais j’ai fait des efforts j’ai essayé manuellement :
123456789101112131415161718// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteuseignored, indicator1 = CALL "BladeSCALPER"[1, 1, 1, 1, 0.7, 25, 3.2, 0, 3.2, 15000, 1, 3.6, 31.6, 1, 1, 0, 200, 0, 1](close)c1 = (close CROSSES UNDER indicator1)IF c1 THENBUY 0.45 CONTRACT AT MARKETENDIF// Conditions pour fermer une position acheteuseignored, indicator2 = CALL "BladeSCALPER"[1, 1, 1, 1, 0.7, 25, 0.7, 0, 0.7, 15000, 1, 3.6, 31.6, 1, 1, 0, 200, 0, 1](close)c2 = (close CROSSES UNDER indicator2)IF c2 THENSELL AT MARKETENDIFBref rien n’y fait, mais je suis sur que la communauté pourra m’aider à coder correctement….
Désolé pour le charabia…
09/21/2022 at 3:19 PM #201151Sauf erreur de ma part, ce CALL ne te renvoi pas la valeur du Takeprofit, tu ne peux récupérer que la valeur 1 ou -1 (comme tu l’as fait) pour créer des signaux d’alertes dans la plateforme.
Il faudrait voir avec l’auteur comment faire pour récupérer ces valeurs de TP.
09/21/2022 at 5:46 PM #201158Bonjour Leo,
Merci @Nicolas pour la réponse ;
=> possible de créer un fil “BladeSCALPER : Screeners & BackTests” sur le forum français avec la question de Leo ?En l’état nous ne produisons en effet pas les TP ; la principale raison pour cela est de rappeler que les TP sont placés de façon théorique et les statisitiques sont indicatives ; c’est une aide pour profiler un asset mais on ne peut pas s’en satisfaire pour créer une stratégie ;
la vraie performance de cet indicateur est quand on ajuste les TP de façon circonstanciée aux PowerZONES en les plaçant juste en dessous des résistances lors d’un Buy ou juste au-dessus des supports lors d’un Short ;
Bien à toi,
Christophe
09/26/2022 at 11:52 AM #201424J’ai fait un backtest avec des TakeProfit fixes à chaque entrée en position grace au signal BladeScalper et les résultats sont pourtant enthousiasmant… Pas forcement besoin des PowerZones…
Si quelqu’un est interessé et arrive à intégrer un take profit et un stop loss fixe au code initial qui se declencheraient dès le signal, le code deviendrait vraiment interessant :
12345678910ignored, BladeSignal = CALL "BladeSCALPER"[1, 1, 1, 1, 1, 20, 1.5, 0, 2, 1000, 3, 1, 23.6, 0, 1, 0, 200, 0, 0](close)//of course you need to adapt each parameter of the PatternFactor and the MovingAverageFILTER (23.6, ... , ..., 0, 200, 0)if not longonmarket and BladeSignal =1 thenbuy at marketendifif not shortonmarket and BladeSignal =-1 thensellshort at marketendif09/27/2022 at 6:49 PM #201524Bonjour à tous, bonjour Nicolas et merci pour ta réponse encore !
Je progresse, doucement mais surement.
Quelqu’un aurait la moindre idée pourquoi quand je lance mon algo je recois cette alerte : ‘votre systeme automatisé s’est arreté en raison d’un indice dans le tableau qui est hors limite”voici mon code
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 153000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 223000// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiéenoEntryBeforeTime = 153000timeEnterBefore = time >= noEntryBeforeTime// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiéenoEntryAfterTime = 223000timeEnterAfter = time < noEntryAfterTimeignored, BladeSignal = CALL "BladeSCALPER"[1, 1, 1, 1, 1, 25, 1, 0, 1, 15000, 1, 3.6, 29.6, 0, 1, 0, 200, 0, 0](close)//of course you need to adapt each parameter of the PatternFactor and the MovingAverageFILTER (23.6, ... , ..., 0, 200, 0)if not longonmarket and BladeSignal =1 thenbuy 0.3 contract at marketendifif not shortonmarket and BladeSignal =-1 thensellshort 0.3 contract at marketendifSL = 7 // Initial SLTP = 10TSL = 1 // Use TSL?TrailingDistance = 5 // Distance from close to TSLTrailingStep = 3 // Pips locked at start of TSL//************************************************************************IF TSL = 1 THEN//reset the stoploss valueIF NOT ONMARKET THENnewSL = 0CAND = 0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL = 0 AND CLOSE - TRADEPRICE(1) >= TrailingDistance*PipSize THENnewSL = TRADEPRICE(1) + TrailingStep*PipSizeENDIF//next movesCAND = BarIndex - TradeIndexIF newSL > 0 AND CLOSE[1] >= HIGHEST[CAND](CLOSE) THENnewSL = CLOSE[1] - TrailingDistance*PipSizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL = 0 AND TRADEPRICE(1) - CLOSE[1] >= TrailingDistance*PipSize THENnewSL = TRADEPRICE(1) - TrailingStep*PipSizeENDIF//next movesCAND = BarIndex - TradeIndexIF newSL > 0 AND CLOSE[1] <= LOWEST[CAND](CLOSE) THENnewSL = CLOSE[1] + TrailingDistance*PipSizeENDIFENDIF//stop order to exit the positionsIF newSL > 0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIFSET STOP pLOSS SLENDIFAutre question : dois-je cocher “réajustement des stops ” lorsque je lance mon algo ?
Merci beaucoup vous êtes au top !!
09/27/2022 at 8:55 PM #20153209/28/2022 at 12:28 PM #201559 -
AuthorPosts
Find exclusive trading pro-tools on