Fonctions crosses over / crosses under

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #79792 quote
    schaadj
    Participant
    New

    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ôme

    #79799 quote
    noisette
    Participant
    Veteran

    Bonjour,

    Il m’arrive d’avoir des différences entre backtest et réel en raison du spread qui n’est pas fixe  sur le forex.

    Cordialement.

    #79801 quote
    schaadj
    Participant
    New

    Bonjour noisette,

    merci beaucoup pour votre réponse, je n’avais pas pensé a cela.

    Bonne journée

    #79806 quote
    Nicolas
    Keymaster
    Master

    Ne 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 ?

    #79811 quote
    schaadj
    Participant
    New

    Bonjour 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

    #79819 quote
    Nicolas
    Keymaster
    Master

    Il n’y a pas d’images jointes ? 🙂

    Les opérateurs de comparaison sont une autre façon de procéder, mais le résultat serait le même qu’avec CROSSES OVER / UNDER.

    #79844 quote
    schaadj
    Participant
    New

    ooops 🙂 Voilà

    [attachment file=79845]

    crossesover.png crossesover.png
    #79847 quote
    schaadj
    Participant
    New

    Apparemment l’ouverture d’une position fonctionne uniquement lorsque les 2 conditions sont très proches l’une de l’autre. Hier manuellement j’aurais ouvert 3-4 positions mon EA en a ouvert 1 seule.

    #79857 quote
    Nicolas
    Keymaster
    Master

    Ok j’ai bien compris, mais :

    1. 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
    2. 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..)
    3. 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
    #79902 quote
    noisette
    Participant
    Veteran

    Si le robot ne prend position que si les croisements ont lieu sur la même bougie, c’est que tu n’as pas programmé la mémorisation de la condition 1 X bougies en arrière de la condition 2.

    #79913 quote
    schaadj
    Participant
    New
    1. 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
    1. 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
    1. 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
    ENDIF

    Long2 = MAa CROSSES OVER MAb
    IF Long2 THEN
    CondLong2=1
    ENDIF

    IF 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
    ENDIF

    Short2 = MAa CROSSES OVER MAb
    IF Short2 THEN
    CondShort2=1
    ENDIF

    IF CondShort1=1 AND CondShort2=1 THEN
    Sellshort 1 CONTRACT AT MARKET
    SET STOP TRAILING 20
    CondShort1=0
    CondShort2=0
    ENDIF

    SET STOP pLOSS 20

    #79914 quote
    swapping
    Participant
    Master
    //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
    ENDIF
    
    Long2 = MAa CROSSES OVER MAb
    IF Long2 THEN
    CondLong2=1
    ENDIF
    
    IF 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
    ENDIF
    
    Short2 = MAa CROSSES OVER MAb
    IF Short2 THEN
    CondShort2=1
    ENDIF
    
    IF CondShort1=1 AND CondShort2=1 THEN
    Sellshort 1 CONTRACT AT MARKET
    SET STOP TRAILING 20
    CondShort1=0
    CondShort2=0
    ENDIF
    
    SET STOP pLOSS 20

    Le bouton “Insert PRT code” est ton ami …

    Nicolas thanked this post
    #79915 quote
    schaadj
    Participant
    New

    Merci et désolé je suis  nouveau dans le forum:-)

    #79935 quote
    Nicolas
    Keymaster
    Master

    Tu 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 🙂

    #79939 quote
    schaadj
    Participant
    New

    Dé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?

Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.

Fonctions crosses over / crosses under


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
schaadj @schaadj Participant
Summary

This topic contains 15 replies,
has 4 voices, and was last updated by Nicolas
7 years, 6 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 09/05/2018
Status: Active
Attachments: 1 files
Logo Logo
Loading...