Répondre

condition THEN pour l'utiliser comme condition IF dans la deuxième règle

12 réponses

Pago

Client, bbp_participant, communauté, 83 réponses.

Visiter le profil

il y a 11 ans #111005

Bonjour,

 

quelqu'un sait Comment traiter le résultat d'une règle #1 dans une deuxième règle ?

 

Par exemple :

Dans la première règle, j'utilise est la condition MACD > 0 si le résultat est vrai je veux utiliser ce signal dans la deuxième règle.

 

J'essaie avec THEN Assign Variable, mais cette variable reste même si les conditions IF ne sont plus remplies.

 

 

Cezar

0

stearno

Client, bbp_participant, communauté, 379 réponses.

Visiter le profil

il y a 11 ans #121260

Le tsar,

Vous avez raison, la règle attribue la variable et n'y touche plus jusqu'à ce que les conditions soient remplies.

 

Ce qu'il faut donc faire, c'est avoir 2 règles : La première règle attribue une variable lorsque la MACD >0 et la deuxième règle attribue une variable lorsque la MACD<0. Ainsi, votre variable sera toujours le reflet de la position de la MACD.

 

-STearno

0

Pago

Client, bbp_participant, communauté, 83 réponses.

Visiter le profil

il y a 11 ans #121262

Bonjour Stearno,

 

J'ai eu peur que c'est la seule voie possible. Les La condition ci-dessus n'était qu'un exemple simplifié, la condition est très compliquée. et La condition d'inversion est très compliquée et je pensais qu'elle pouvait être résolue d'une manière ou d'une autre.

J'ai une autre idée. Je viens d'essayer d'exporter la condition en tant qu'indicateur et de l'importer ensuite dans l'assistant afin d'utiliser le signal.

 

Cezar

0

stearno

Client, bbp_participant, communauté, 379 réponses.

Visiter le profil

il y a 11 ans #121266

C'est une bonne chose. Bonne chance !

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 11 ans #121283

Bonjour,

Quelqu'un sait-il comment traiter le résultat d'une règle #1 dans une deuxième règle ?

Par exemple :

Dans la première règle, j'utilise la condition MACD > 0. Si le résultat est vrai, je veux utiliser ce signal dans la deuxième règle.

J'essaie avec THEN Assign Variable, mais cette variable reste même si les conditions IF ne sont plus remplies.

Bonjour Cezar,

Ce que vous pouvez faire, c'est traiter le résultat de la deuxième règle, puis redonner à la variable la valeur false (par la fonction Assign variable).

Marque

Marque
StratégieArchitecte de Quantités

0

Pago

Client, bbp_participant, communauté, 83 réponses.

Visiter le profil

il y a 11 ans #121288

Bonjour Mark,

 

I Je ne comprends pas très bien. Pouvez-vous me donner un exemple concret de cette fonction ?

 

Cezar

 

 

 

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 11 ans #121292

Je voulais dire quelque chose comme ça :

 

Règle 1 :

SI la position du marché est plate et que le MACD > 0

ALORS

Affecter la variable ThereIsSignal = 1

 

Règle 2 :

IF ThereIsSignal = 1

ALORS

Entrer au marché
Affecter la variable ThereIsSignal = 0

 

 

De cette façon, la variable qui a été définie par la première règle sera désactivée lorsque vous entrerez dans la transaction, c'était votre problème comme je l'ai compris.

 

Marque

Marque
StratégieArchitecte de Quantités

0

Pago

Client, bbp_participant, communauté, 83 réponses.

Visiter le profil

il y a 11 ans #121303

Merci de votre attention.Voilà la solution !

 

Cezar

0

518pip

Abonné, bbp_participant, communauté, 8 réponses.

Visiter le profil

il y a 11 ans #121812

Je voulais dire quelque chose comme ça :

 

Règle 1 :

SI la position du marché est plate et que le MACD > 0

ALORS

Affecter la variable ThereIsSignal = 1

 

Règle 2 :

IF ThereIsSignal = 1

ALORS

Entrer au marché
Affecter la variable ThereIsSignal = 0

 

 

De cette façon, la variable qui a été définie par la première règle sera désactivée lorsque vous entrerez dans la transaction, c'était votre problème comme je l'ai compris.

 

Marque

Bonjour, je suis confronté à un problème similaire, merci de m'aider. Tout le monde.

 

multi entry si le prix est supérieur à l'ema 100.

 

1ère entrée si l'ema 10 croise l'ema 20, alors entrez au marché avec l'objectif.

 

2ème entrée si 10 ema croise à nouveau 20 ema et que le prix est toujours au-dessus de 100 ema, entrer au marché. (parfois la 1ère entrée peut ne plus être ouverte si l'objectif a été atteint)

 

continuer à entrer sur le marché tant que le prix est au dessus de 100 ema et à chaque fois que 10 ema et 20 ema se croisent au dessus de manière indépendante.

 

J'ai essayé d'assigner une variable, mais mon ea actuel garde ouvert la 1ère et la 2ème entrée en même temps quand la 1ère entrée se produit et saute le reste des entrées valides.

 

Nous vous remercions,

0

Pago

Client, bbp_participant, communauté, 83 réponses.

Visiter le profil

il y a 11 ans #121818

Bonjour, je suis confronté à un problème similaire, merci de m'aider. Tout le monde.

 

multi entry si le prix est supérieur à l'ema 100.

 

1ère entrée si l'ema 10 croise l'ema 20, alors entrez au marché avec l'objectif.

 

2ème entrée si 10 ema croise à nouveau 20 ema et que le prix est toujours au-dessus de 100 ema, entrer au marché. (parfois la 1ère entrée peut ne plus être ouverte si l'objectif a été atteint)

 

continuer à entrer sur le marché tant que le prix est au dessus de 100 ema et à chaque fois que 10 ema et 20 ema se croisent au dessus de manière indépendante.

 

J'ai essayé d'assigner une variable, mais mon ea actuel garde ouvert la 1ère et la 2ème entrée en même temps quand la 1ère entrée se produit et saute le reste des entrées valides.

 

Nous vous remercions,

 

 

Bonjour 518pip,

 

Je pense qu'il n'est pas nécessaire d'assigner une variable.

 

Règle 1 : La première entrée -> IsBarOpen est True && Bid > EMA 100 && EMA 10 croise au-dessus de EMA 20

Règle 2 La deuxième entrée -> IsBarOpen est True && (Open P/L [Magic_first_entry] 0 ou Closed P/L [Magic_first_entry] 0) && Bid > EMA 100 && EMA 10 croise au-dessus de EMA 20   

 

Pour conclure, vous pouvez utiliser une troisième règle avec les conditions de clôture.

 

 

J'espère pouvoir vous aider. Sinon, vous pouvez joindre la stratégie au message, ce qui nous permettra de vous aider plus spécifiquement.

 

 

 

Cezar

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 11 ans #121822

Bonjour, je suis confronté à un problème similaire, merci de m'aider. Tout le monde.

 

multi entry si le prix est supérieur à l'ema 100.

 

1ère entrée si l'ema 10 croise l'ema 20, alors entrez au marché avec l'objectif.

 

2ème entrée si 10 ema croise à nouveau 20 ema et que le prix est toujours au-dessus de 100 ema, entrer au marché. (parfois la 1ère entrée peut ne plus être ouverte si l'objectif a été atteint)

 

continuer à entrer sur le marché tant que le prix est au dessus de 100 ema et à chaque fois que 10 ema et 20 ema se croisent au dessus de manière indépendante.

 

J'ai essayé d'assigner une variable, mais mon ea actuel garde ouvert la 1ère et la 2ème entrée en même temps quand la 1ère entrée se produit et saute le reste des entrées valides.

 

Nous vous remercions,

 

Vous pouvez procéder comme suit (je ne montrerai que le côté long) :

 

——————–

Règle 1 :

——————–

SI

OrderPosition(1000) n'est pas Flat // nous nous assurons que le premier ordre est déjà ouvert

et Offre > EMA(100) // s'assurer que le prix est supérieur à EMA(100)

et la EMA(10) croise la EMA(20)

ALORS

Entrer sur le marché avec le nombre magique (2000)

 

——————–

Règle 2 :

——————–

SI

OrderPosition(1000) is Flat // nous nous assurons que l'ordre n'est pas déjà ouvert

et Offre > EMA(100) // s'assurer que le prix est supérieur à EMA(100)

et la EMA(10) croise la EMA(20)

 

ALORS

Entrer sur le marché avec le nombre magique (1000)

 

 

 

Cela devrait fonctionner. La deuxième règle permet de prendre un signal lorsque l'EMA(10) croise l'EMA(20) et la règle 1 permet de prendre en compte le cas particulier où le premier ordre est déjà ouvert.

Les règles doivent être respectées dans l'ordre suivant.
Il faudrait peut-être ajouter également Is Bar Open = true aux deux règles pour s'assurer que les transactions ne sont ouvertes qu'à l'ouverture de la barre.

Marque
StratégieArchitecte de Quantités

0

boomza100

Abonné, bbp_participant, communauté, 7 réponses.

Visiter le profil

il y a 11 ans #121844

Bonjour à tous,

 

J'ai une question similaire, en lien avec le sujet de ce fil de discussion.

 

Je continue à obtenir de nouvelles positions ouvertes, à chaque nouveau tic-tac.

 

Ce que je veux faire, c'est n'ouvrir une position qu'une seule fois, si mes conditions sont remplies.

 

S'il y a déjà un poste ouvert, n'en ouvrez pas un autre.

 

Si une position a été fermée, il est possible d'en ouvrir une autre si les conditions sont remplies.

 

Mon code est le suivant.

 

 

 

——————–

Règle 1 :

——————–

 

IF IsBarOpen is True

 

et d'autres conditions //trop long à répéter ici, mais cela n'a pas d'importance

 

et OrderPosition(MagicLong) est Flat //ie : il n'y a pas de positions ouvertes ? ?? (c'est bien ça ?)

 

ALORS Entrer au marché (MagicLong)

 

 

Si j'ai bien compris, vous ne pouvez ouvrir qu'une seule position par numéro magique, mais il continue d'ouvrir de nouvelles positions à chaque tic-tac.

 

Des suggestions ?

 

Merci.

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 11 ans #121915

Bonjour,

 

La condition OrderPosition(MagicLong) is Flat est vraiment vraie s'il n'y a pas de positions ouvertes, donc vos conditions sont correctes.

 

Si j'ai bien compris, vous ne pouvez ouvrir qu'une seule position par numéro magique, mais il continue d'ouvrir de nouvelles positions à chaque tic-tac.

 

Oui, il ne devrait pas ouvrir plusieurs positions avec le même nombre magique. S'il ouvre une nouvelle position à chaque tick, il y a un problème ou un bug possible. Pouvez-vous poster votre stratégie (fichier .sqw) ici ?

Marque
StratégieArchitecte de Quantités

0

Affichage de 12 réponses de 1 à 12 (sur un total de 12)