LjuParticipant
New
Bonsoir à tous,
Dans ma stratégie avec le code fourni en pièce jointe je voudrais avoir la commande “IF Not OnMarket THEN” avec la commande “BUY X SHARES AT MARKET – SET TARGET pPROFIT X ” pour chacune de mes conditions
car elles sont bien distinctes en Target profit. Malheureusement je n’arrive pas à les séparer et créer ce code, j’ai pour l’instant pu avoir un backtest avec la commande “or” entre mes 2 conditions ligne 27 de code.
Mes 2 conditions sont de la ligne 15 à 25 sachant que la première condition c’est ” C1 et C2 ” et l’autre c’est “C3 et C4 ” avec donc un souhait de target différent et sachant que la deuxième condition doit s’enclencher seulement si la première est inactive. J’ai essayer avec la commande TRUE au lieu de False, en ligne 2 mais cela n’a pas fonctionné.
Merci par avance pour votre aide
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// 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ée
noEntryBeforeTime = 153000
timeEnterBefore = 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ée
noEntryAfterTime = 210500
timeEnterAfter = time < noEntryAfterTime
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Conditions pour ouvrir une position acheteuse
indicator1 = MACDLine[37/3, 77/3, 9](close)
indicator2 = MACDSignal[37/3, 77/3, 9](close)
c1 = (indicator1 >= indicator2)
indicator3 = MACDLine[37/3, 77/3, 9](close)
c2 = (indicator3 >= 2.5)
indicator4 = TRIX[15](close)
indicator5 = Average[9](indicator4)
c3 = (indicator4 CROSSES OVER indicator5)
indicator6 = Average[9](TRIX[15](close))
c4 = (indicator6 <= 0)
IF (c1 AND c2) OR ( c3 AND c4) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY 1 SHARES AT MARKET
ENDIF
// Stops et objectifs
SET TARGET pPROFIT 5
quand tu utilise ” OR” faire bien attention
la il faut mettre des parenthèses comme ci dessous
on est bien d’accord que c’est C1 et C2 ou C3 et C4
IF ((c1 AND c2) OR ( c3 AND c4)) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
LjuParticipant
New
oui mes 2 conditions sont C1 et C2 ou C3 et C4 mais je veux attribuer a chaque conditions la commande “BUY X SHARES AT MARKET – SET TARGET pPROFIT X ” pour que chaque condition soit autonome
avez vous la solutions du code ?
JSParticipant
Senior
DEFPARAM CumulateOrders = false
IF (c1 AND c2) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY x SHARES AT MARKET
SET TARGET pPROFIT x
ENDIF
IF (c3 AND c4) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY x SHARES AT MARKET
SET TARGET pPROFIT x
ENDIF
LjuParticipant
New
MERCI DE VOTRE RETOUR,
Cette commande fonctionne bien, par contre je n’arrive pas à inclure la fonction “IF Not OnMarket THEN” pour C3 ET C4 avez vous la solution pour ça aussi ?
JSParticipant
Senior
Bonjour,
Dans ce code, « If NOT on Market » n’est pas nécessaire, car cela est déjà géré par « DefParam CumulateOrders = false »…
Mais si vous souhaitez l’inclure..
IF NOT on Market AND (c3 AND c4) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY x SHARES AT MARKET
SET TARGET pPROFIT x
ENDIF
LjuParticipant
New
UN GRAND MERCI ! je plaçai la commande au-dessus des conditions avec « THEN » c’est pour cela que mon code ne fonctionnait pas
LjuParticipant
New
j’en profite pour vous demander si vous savez si l’on peut avoir une condition de sortie différente selon que l’achat soit fait sur C1 ET C2 ou C3 ET C4 ?
JSParticipant
Senior
C’est possible, ce que vous pourriez faire par exemple est :
IF … (C1 and C2) …
Buy x …
Position1=1
Position2=0
…
EndIf
IF … (C3 and C4) …
Buy x…
Position1=0
Position2=1
…
EndIf
If Position1=1 then
Sell …
EndIf
If Position2=1 then
Sell …
EndIf
JSParticipant
Senior
Bien entendu, vous devez spécifier vos conditions de vente lors de la vente (Sell)…
LjuParticipant
New
merci pour vos messages,
je vais regarder et coder ça ce week end