jgnParticipant
New
Bonjour à vous,
Je pense qu’il y a eu de nombreuses réponses sur ce type de questions, mais tout ce que j’ai trouvé (et essayé) n’ont pas fonctionné… ;(
Je crée une strategie contenant un indicateur qui affiche ce type de signaux:
SignalLong =(S>V AND……)
SignalShort = (S<V AND….)
(Au final, j’ai une courbe, qui change de couleur & des points qui s’affiche sur ces changements d’etat).
Dans mes conditions de BUY ou de SellShort, je voudrais que la strategie prenne en compte ces signaux : le passage de l’etat “SignalS” à “SignalL” pour un Buy & inversement pour un Short.
Au départ j’avais ecrit : IF SignalL AND Filtre1 AND Filtre2 THEN => Mais j’ai des prises de positions pendant tout le temps ou la courbe est dans l’etat “SignalL”.
Apres recherches, j’ai tenté :
- IF SignalS[1] AND SignalL And “FiltresX” THEN
Ca ne prend aucune positions en Backtest.
Ou en ajoutant des (close[1] = SignalS)….. => Ce n’est pas mieux.
Est-ce un probleme de syntaxe dans mes condition de BUY & SellShort, ou est-ce que je dois chercher dans le code en amont ?
D’avance merci.
JSParticipant
Senior
Bonjour,
Les signaux de l’indicateur sont des booléens (TRUE/FALSE)…
Pour construire des décisions de trading basées sur des booléens, il faut observer les moments où le booléen bascule (change d’état)…
Cela peut s’exprimer ainsi :
LongTrigger = SignalLong AND NOT SignalLong[1]
ShortTrigger = SignalShort AND NOT SignalShort[1].
En le combinant avec une vérification de position :
If LongTrigger and NOT LongOnMarket then
BUY 1 CONTRACT AT MARKET
If ShortTrigger and NOT ShortOnMarket then
SELLSHORT 1 CONTRACT AT MARKET
En d’autres termes, la transaction n’est exécutée qu’au moment du flip du signal booléen, ce qui garantit que vous n’entrez pas plusieurs fois tant que le signal reste TRUE…
jgnParticipant
New
Bonjour JS,
Merci pour vos explications.
J’ai fais une 1ere modification > Cela crée bien des points d’entrées a la bascule du signal, mais cela continue a en créer sur le reste de la periode.
Je vais continuer a creuser dans mon code pour voir pourquoi parceque je n’ai pas mis d’autres conditions dans mes ordres d’achat/vente.
En regardant les points d’entrées, ils se produisent aussi bien juste après une clôture, qu’en plein mouvement de prix alors que le signal n’a pas changé…….
J’espere finir par trouver ce que je fais mal sans avoir a nouveau a vous embeter 😉
Bonjour ! Comme le dit
@JS, pour éviter d’entrer plusieurs fois vous devez déclarer un
trigger comme celui qu’il propose.
Si vous partagez le code, nous pourrons vous aider.