Rajouter une position si / et fermer si

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #161861 quote
    Umbrapro
    Participant
    Junior

    Bonsoir,

    Je suis face à un problème. J’ai un indicateur qui va générer des signaux de vente et d’achat. J’aimerais que mon algo puisse cumuler plusieurs positions s’il y a plusieurs signaux dans un même sens.

    J’ai d’abord changé le cumul d’ordre en true. A partir de là c’est bon l’algorithme prend tous les signaux. Sauf que si par exemple il prend un trade à l’achat et que ensuite il y un signal à la vente dans ce cas il va fermer ma position à l’achat pour pouvoir ouvrir un short. (ce que je ne veux pas).

    Ce que je veux est que l’algorithme :

    1. soit hedge (en ayant des positions dans 2 sens).

    2. Soit que l’algorithme ignore le signal de vente car il est déjà à l’achat et toujours en position (car tp et sl pas encore atteint). > Pour cette option tout ce que j’avais trouvé c’est de mettre la condition suivante : “AND NOT ONMARKET”. Sauf que du coup il ne peut plus cumuler plusieurs positions dans un même sens.

     

    Si jamais une des deux options proposées ci-dessus est possible, est-il possible de faire en sorte que l’algorithme si en perte sur une première position puis en gain sur une deuxième position (dans le même sens) puisse décider de fermer si la moyenne des 2 positions est gagnante de X points.

    Exemple concret sur le Dax.

    Premier signal d’achat de mon indicateur à 13500 pts.

    Le cours descend à 13450 pts > Second signal d’achat sur les 13450 pts.

    Ducoup l’on se retrouve à 2 positions avec un prix moyen d’entré à 13475. >>>>>>> Comment faire pour que l’algo ferme les 2 positions si le cours remonte à 13480 ?

     

     

    Merci d’avance pour vos réponses et votre aide précieuse. (surtout à Nicolas!)

    #161898 quote
    Nicolas
    Keymaster
    Master

    1/ hedging pas possible

    Pour éviter de prendre une position short si on est long, alors tester si on déjà long avec :

    if not longonmarket then 
     //pim pam poum, on vend!
    endif

    Le prix moyen des positions en cours est POSITIONPRICE, donc tu peux placer un ordre de vente pour ton cumul d’achat comme ceci :

    takeprofit = 10 //taille du takeprofit en point 
    
    sell at positionprice+takeprofit*pointsize limit
    #161953 quote
    Umbrapro
    Participant
    Junior

    Bonjour merci, à quel partie de mon code dois-je mettre la ligne “sell at positionprice+takeprofit*pointsize limit”

    sachat que mon code à cette forme là :

     

    // Conditions pour ouvrir une position acheteuse
    IF NOT LongOnMarket AND VosConditions THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    If LongOnMarket AND VosConditions THEN
    SELL AT MARKET
    ENDIF
    
    // Conditions pour ouvrir une position en vente à découvert
    IF NOT ShortOnMarket AND VosConditions THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    
    // Conditions pour fermer une position en vente à découvert
    IF ShortOnMarket AND VosConditions THEN
    EXITSHORT AT MARKET
    ENDIF
    
    // Stops et objectifs : entrez vos stops et vos objectifs ici

     

    Edit par modérateur: code ci-dessus reformaté par modérateurs, merci d’utiliser le bouton “insert PRT code” pendant la création de vos messages pour afficher le code au bon format

    #161954 quote
    Umbrapro
    Participant
    Junior

    Autant pour moi j’ai trouvé.

    #161955 quote
    Umbrapro
    Participant
    Junior

    La ligne “sell at positionprice+takeprofit*pointsize limit” fonctionne très bien pour cloturer tous les achats.

    Quelle est la ligne similaire pour cloturer tous les shorts ?

    J’ai essayé de remplacer le “sell” par “exitshort” mais cela ne semble pas fonctionner

    #161968 quote
    Nicolas
    Keymaster
    Master

    Pour fermer les positions de vente en gain, il faut bien entendu que le niveau de sortie des positions soit en dessous du prix moyen 🙂

    exitshort at positionprice  -  takeprofit*pointsize limit
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Rajouter une position si / et fermer si


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Umbrapro @umbrapro Participant
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by Nicolas
5 years ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 02/17/2021
Status: Active
Attachments: No files
Logo Logo
Loading...