Prix à une heure donnée codée

Viewing 15 posts - 31 through 45 (of 45 total)
  • Author
    Posts
  • #78349 quote
    Nicolas
    Keymaster
    Master

    Quelles sont les niveaux de prix où tu cherches à acheter / vendre dans ton code ? Je vois que tu en calcules certains mais qu’ils ne sont pas utilisés. Par ailleurs, dans cette stratégie, tu ouvres une position sans aucune condition et tu la fermes immédiatement à la barre d’après, toujours sans aucune condition.

    Pour placer des ordres conditionnels à des niveaux de prix calculés, tu peux utiliser les ordres STOP ou LIMIT, voir dans la documentation:

    https://www.prorealcode.com/documentation/stop-pending/

    https://www.prorealcode.com/documentation/limit/

    #78611 quote
    Zakmeb
    Participant
    Average

    Bonsoir Nicolas,

    Désolé de te répondre si tardivement. J’ai noté tes remarques et je suis en train de travailler dessus. Je te reviens dès que j’ai d’autres questions et/ou un autre code à soumettre à ta correction.

    Merci encore pour ton assistance.

    ZM.

    #78856 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Le but de mon indicateur est de simplement donner comme résultat le prix lorsque les courbes du  supertrend et des prix se croisent. Il m’envoie un message comme quoi il y a trop d’itération, le programme tourne en boucle. J’ai surement mal codé.

    P=close[i]
    i=0
    
    C1=(P crosses under supertrend[3,10])
    C2=(P crosses over supertrend[3,10])
    
    if C1 then
    signal=1
    else
    signal=0
    endif
    
    if C2 then
    signal=-1
    else
    signal=0
    endif
    
    if signal=0 then
    while signal=0 do
    i=i+1
    
    continue
    wend
    elsif signal=1 or signal=-1 then
    P=close[i]
    endif
    
    Return P
    

    Merci pour ton aide.

    #78857 quote
    Zakmeb
    Participant
    Average

    Je viens d’en écrire un second mais il me renvoie uniquement 0

    P=close
    
    
    if P=supertrend[3,10] then
    P=close
    else
    P=0
    endif
    
    Return P
    
    #78897 quote
    Nicolas
    Keymaster
    Master

    Dans ton premier code, tu utilises l’instruction ‘continue’ qui n’existe pas en langage ProBuilder. Si la boucle n’est pas cassée (break), elle continuera à tourner jusqu’à ce que ta variable “signal” soit différent de 0, hors elle ne change jamais dans ta boucle, donc elle est infini. Bref tu as fait une très mauvaise utilisation des boucles dans ton code 🙂 mais c’est comme ça que l’on a tous appris ! Je te conseil les cours de programmation en vidéo du site: (les boucles sont abordées dans la deuxième formation) Apprendre la programmation pour ProRealTime

    Dans le deuxième code tu cherches à tester si P (soit le Close) est égal au Supertrend, ça n’arrivera jamais au moment ou le code est testé dans l’historique (soit au Close de chaque bougie) car c’est justement ce qui fait changer le SuperTrend de tendance, son croisement avec le prix.

    Pour ce que tu cherches à faire, il y a plus simple :

    P=close
    
    if P crosses over supertrend[3,10] then
     prix = close 
    else
     prix = 0
    endif
    
    Return Prix as "prix lors du croisement"
    #78906 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas

    Et merci pour ton retour et ton aide. En effet, je ne maitrise pas encore correctement ce langage, mais j’avance tout doucement 🙂

    Je vais suivre ta formation et continuer à avancer. Comme tu l’as vu plus haut dans notre discussion, tu m’as conseillé de placer des ordres “limit” ou “stop”. C’est la prochaine étape qui fait suite à l’indicateur que tu m’as corrigé.

    Je te reviendrai surement avec d’autres questions et d’autres erreurs. Merci pour ta patience et ta disponibilité.

    #79123 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Comme tu l’as remarqué, je suis encore en train d’apprendre. C’est pourquoi, j’ai besoin de ton aide.

    J’essaie de coder l’ indicateur suivant et qui fait suite au code que tu m’as précédemment corrigé:

    On prend un point de référence qui est le cours d’ouverture open[0] que l’on nomme Pex par exemple. Je lui rajoute ou déduit un delta qui varie suivant le support sur lequel on travaille (action, devises etc…). Je compare open[0]+delta et open[0]-delta au prix (ici close). Dès que c’est atteint (crosses over ou crosses under?), Pex égale close (cela fait donc référence au code que tu m’as corrigé). Ensuite on continue durant la journée de transaction le même schéma.

    Pex=close est supposé inchangé si les condition suivantes ne sont pas vérifiés. Cela doit donner une courbe en dent de scie.

    J’espere que c’est assez clair.

    Merci pour ton aide.

    #79149 quote
    Nicolas
    Keymaster
    Master

    Oui c’est clair et ton explication me laisse penser que tu devrais y arriver seul. Qu’attends-tu de moi ? 🙂

    #79155 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Je vais suivre ton conseil et essayer de mon coté.

    #81624 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Je vais suivre ta formation dans les jours à venir amis en attendant j’ai besoin de tes lumières.

    Je travaille sur CAC 40 10€ (ou 1€).

    J’ai pris le cours d’ouverture du vendredi 28/09/2018 comme indiqué sur le code. Le but du code est d’acheter si le prix augmente de 2 pts et donc de vendre (short) si le prix baisse de 2. Ensuite pour une position acheteuse, je vends dès que le prix augmente de 3 pts et pour une position short, j’achète dès que le prix diminue de 3 pts. Si dans les deux cas les 3 pts ne sont pas atteint et que la tendance s’inverse, pour une position acheteuse, je vends dès que le prix diminue de 2 pts et pour une position short, j’achète dès que le prix augmente de 2 pts. Et ainsi de suite.

    Mon code ne semble pas répondre comme il faut.

    Merci pour ton aide.

    once Pex=5514.55
    Q=10
    A=2
    B=3
    
    
    if Pex+A<close then
    
    if not longonmarket then
    buy Q lot at market
    Pex=Tradeprice
    endif
    if Pex+B<close then
    if longonmarket then
    sell at market
    Pex=Tradeprice
    endif
    elsif Pex-A>close then
    if longonmarket then
    sell at market
    Pex=Tradeprice
    endif
    endif
    
    elsif Pex-A>close then
    
    if not shortonmarket then
    sellshort Q lot at market
    Pex=Tradeprice
    endif
    if Pex-B>close then
    if shortonmarket then
    exitshort at market
    Pex=Tradeprice
    endif
    elsif Pex+A<close then
    if shortonmarket then
    exitshort at market
    Pex=Tradeprice
    endif
    endif
    endif
    #81670 quote
    Nicolas
    Keymaster
    Master

    Donc c’est une moyenne à la baisse/hausse (avec une grille de 2 points) et avec un takeprofit de 3 points sur l’ensemble du panier ?

    #81674 quote
    Zakmeb
    Participant
    Average

    C’est ça. Avec en plus la possibilité d’accepter des pertes max de 2 points si la tendance s’inverse.

    #81678 quote
    Nicolas
    Keymaster
    Master

    Non, donc pas vraiment une moyenne à la baisse dans ce cas.

    Pour cela il faudrait utiliser des ordres conditionnels STOP/LIMIT et la distance minimale à respecter vis à vis du cours actuel, pour le CAC40 est de 4 points: https://www.ig.com/fr/indices/marches-indices/france-40

    Par ailleurs, merci d’ouvrir une file unique pour chaque nouvelle question/problème. Je crois qu’on s’égare ici 😉

    #81839 quote
    Zakmeb
    Participant
    Average

    Merci pour ton aide et bonne journée.

    #81897 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Suite à ton retour, une dernière question:

    Lorsque la première position (Acheteuse ou vendeuse) est prise puis que le take profit est exécuté, comment prend il une seconde position quant on sait que pour prendre la première j’utilise comme point de départ (ou prix de départ) le cours d’ouverture en chiffre comme indiqué dans le code que je t’ai envoyé (“once Pex=5514.55″). En effet, pour que la boucle fonctionne bien, il faut que le nouveau point de départ soit au moins le prix d’exécution du take profit (ou du stop loss).

    Merci pour ton retour.

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

Prix à une heure donnée codée


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Zakmeb @zakmeb Participant
Summary

This topic contains 44 replies,
has 3 voices, and was last updated by Zakmeb
7 years, 5 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 01/08/2018
Status: Active
Attachments: No files
Logo Logo
Loading...