Fonctions crosses over / crosses under
Forums › ProRealTime forum Français › Support ProOrder › Fonctions crosses over / crosses under
- This topic has 15 replies, 4 voices, and was last updated 6 years ago by Nicolas.
-
-
09/05/2018 at 6:03 AM #79792
Bonjour,
je suis assez nouveau dans la programmation d’un EA et j’utilise les fonctions crosses over et crosses under sur 2 indicateurs mais souvent il me semble qu’il ne réagit pas a cette condition. Si je regarde le charts de 1 min par exemple eur/usd en 1 jours j’entre manuellement sur une position 1-4 fois. Mon EA ne réagit que rarement (1 fois par jour).
Quelqu’un a ce même effet?
Merci!
Jérôme09/05/2018 at 8:21 AM #7979909/05/2018 at 9:00 AM #7980109/05/2018 at 11:58 AM #79806Ne pas oublier que le code est lu qu’une seule fois par bougie à sa fermeture. Par ailleurs, un croisement de moyennes mobiles doit être confirmé 1 période dessus / 1 période dessous. Les différences sont-elles aussi constatées avec un backtest de la même stratégie ?
09/05/2018 at 12:25 PM #79811Bonjour Nicolas
et merci pour votre réponse. J’aimerais que comme dans le fichier joint lorsque la condition 1 se passe (croisement à la hausse des traits-tillés MA) et la condition 2 se passe (croisement des deux lignes continues MA) j’ouvre une position. A cela s’ajoute d’autres contrôles mais ceux-ci fonctionne alors que l’exemple de l’image jointe de ce matin sur eur/usd ne s’est pas déclanché. Je suis entré manuellement sur cette position comme malheureusement beaucoup d’autres et je ne comprends pas bien pourquoi.
Ou dois-je plutôt utiliser des opérateur de comparaison > entre 2 indicateurs?
Merci beaucoup
09/05/2018 at 4:46 PM #7981909/06/2018 at 5:25 AM #7984409/06/2018 at 5:30 AM #7984709/06/2018 at 7:43 AM #79857Ok j’ai bien compris, mais :
- Les différences sont-elles aussi constatées avec un backtest de la même stratégie ? (différence temps réel / backtest) à vérifier svp
- Les périodes et type de moyennes mobiles, sont-elles bien les mêmes dans le code et sur le graphique ? (problème très courant, d’où la question..)
- Sans avoir lu le code difficile de comprendre de où peut provenir le problème, procédons dans l’ordre, car ce type d’instruction fonctionne correctement
09/06/2018 at 8:56 PM #7990209/07/2018 at 5:26 AM #79913- Les différences sont-elles aussi constatées avec un backtest de la même stratégie ? (différence temps réel / backtest) à vérifier svp
Oui les différences sont aussi constatés
- Les périodes et type de moyennes mobiles, sont-elles bien les mêmes dans le code et sur le graphique ? (problème très courant, d’où la question..)
Oui se sont les mêmes
- Sans avoir lu le code difficile de comprendre de où peut provenir le problème, procédons dans l’ordre, car ce type d’instruction fonctionne correctement
Bien entendu voici la partie ou je teste les croisements
//MA
MAa = Average[a](close)
MAb = Average[b](close)//EMA
EMAx = exponentialaverage[x](close)
EMAy = exponentialaverage[y](close)Long1 = EMAx CROSSES OVER EMAy
IF Long1 THEN
CondLong1=1
ENDIFLong2 = MAa CROSSES OVER MAb
IF Long2 THEN
CondLong2=1
ENDIFIF cond1=1 AND cond2=1 THEN
BUY 1 CONTRACT AT MARKET
SET STOP TRAILING 20
condLong1=0
condLong2=0
ENDIF// Condition for opening a Short Position
Short1 = EMAx CROSSES UNDER EMAy
IF Short1 THEN
CondShort1=1
ENDIFShort2 = MAa CROSSES OVER MAb
IF Short2 THEN
CondShort2=1
ENDIFIF CondShort1=1 AND CondShort2=1 THEN
Sellshort 1 CONTRACT AT MARKET
SET STOP TRAILING 20
CondShort1=0
CondShort2=0
ENDIFSET STOP pLOSS 20
09/07/2018 at 5:49 AM #799141234567891011121314151617181920212223242526272829303132333435363738394041424344//MAMAa = Average[a](close)MAb = Average[b](close)//EMAEMAx = exponentialaverage[x](close)EMAy = exponentialaverage[y](close)Long1 = EMAx CROSSES OVER EMAyIF Long1 THENCondLong1=1ENDIFLong2 = MAa CROSSES OVER MAbIF Long2 THENCondLong2=1ENDIFIF cond1=1 AND cond2=1 THENBUY 1 CONTRACT AT MARKETSET STOP TRAILING 20condLong1=0condLong2=0ENDIF// Condition for opening a Short PositionShort1 = EMAx CROSSES UNDER EMAyIF Short1 THENCondShort1=1ENDIFShort2 = MAa CROSSES OVER MAbIF Short2 THENCondShort2=1ENDIFIF CondShort1=1 AND CondShort2=1 THENSellshort 1 CONTRACT AT MARKETSET STOP TRAILING 20CondShort1=0CondShort2=0ENDIFSET STOP pLOSS 20Le bouton “Insert PRT code” est ton ami …
1 user thanked author for this post.
09/07/2018 at 6:00 AM #7991509/07/2018 at 9:00 AM #79935Tu utilises des variables nommées “cond1” et “cond2” pour ouvrir des ordres d’achat (ligne 19) qui ne sont jamais renseignées, donc toujours égal à 0. Tu devrais utiliser les variables que tu utilises pour tester des croisements aux lignes 11 et 16 (CondLong1 et 2), je pense que ça ira mieux 🙂
09/07/2018 at 9:28 AM #79939Désolé c’est une erreure lorsque j’a copié/collé mon code dans le forum et modifié 2-3 choses mais c’est bien CondLong1 et 2 que j’utilise et justement le même problem. Quelqu’un peut le tester sur 1 min chart eur/usd et me dire si il a le même effet?
-
AuthorPosts