Prix à une heure donnée codée

Viewing 15 posts - 16 through 30 (of 45 total)
  • Author
    Posts
  • #60765 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Tu trouveras ci-dessous mon indicateur qui vous les plus hauts du jours:

    T=Time
    T1=Time
    plusHaut=Dhigh(0)
    P=high
    P1=high
    if plusHaut = Dhigh(0) then
    T=Time and P=plusHaut
    endif
    If T1>T then
    if P1 = high then
    T1=Time and P=P1
    endif
    endif
    If T>T1 then
    if P = high then
    T=Time and P=max(P1,high)
    endif
    endif
    RETURN P

    Concernant le système de trading suivant (qui n’est pas de moi, je le teste pour voir comment ça marche), peux tu m’indiquer comment bien choisir dans le menu “tick par tick” car le résultat n’est pas identique ? Merci

    DEFPARAM CumulateOrders=true
    REM Achat
    ONCE TimeStart =090000
    ONCE TimeEnd =173000
    once OrderSize=1
    once ExitIndex=-2
    OrderSize=round(200000/open)
     
    condition1 = (Time >= TimeStart)
    condition2 = (Time <=TimeEnd)
    indicator1 = close
    indicator2 = SuperTrend[3,10]
    c1 = (indicator1 CROSSES OVER indicator2)
    IF CONDITION1 AND CONDITION2 THEN
    IF c1 THEN
    BUY OrderSize SHARES AT MARKET
    ENDIF
     
     
    rem return ordersize
     
    REM Vente
     
    indicator3 = close
    indicator4 = SuperTrend[3,10]
    c2 = (indicator3 CROSSES UNDER indicator4)
     
    IF c2 THEN
    SELL  AT MARKET
    ExitIndex=BarIndex
    ENDIF
     
    SET TARGET pProfit 6
     
    If BarIndex=ExitIndex+1 then
    ExitIndex=0
    If positionperf(1)<0 then
    OrderSize=ordersize+1
    else
    OrderSize=1
    EndIf
    endif
    endif
    // Stops et objectifs
    // Stops et objectifs
    REM SET STOP pLOSS B
    #62688 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Concernant les algorithmes de trading, j’ai remarqué qu’après avoir lancé le backtest de celui-ci, les résultats P&L dépendent de la périodicité choisie dans le graphique. Ils sont en effet totalement différents suivants que l’on choisit 1seconde, 1minute, 5 minutes etc…

    Comment être sur que son algorithme de trading trade bien sur la bonne période? par exemple 15 min?

    Merci.

    #62708 quote
    Nicolas
    Keymaster
    Master

    Il faut en effet toujours faire ses backtests en mode tick par tick pour être certain d’avoir bien vérifié toutes les valeurs de prix contenus dans une barre et qui pourraient impacter la performance de la stratégie.

    Il est logique que les performances soient différentes d’un timeframe à un autre, puisque l’on ne traite pas les mêmes données. Dans la stratégie que tu as posté, l’indicateur SuperTrend se calcule sur 10 périodes (10 chandeliers), qui ne sont pas les mêmes si tu changes d’unité de temps et donc les informations diffèrent.

    Lors de l’envoi de la stratégie dans le module de trading automatique ProOrder, il faudra choisir l’unité de temps approprié à la stratégie. Une fois la stratégie en cours de fonctionnement, il faudra l’arrêter complètement pour en changer.

    #67898 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    J’ai besoin de tes lumières. Le code ci-dessous me permet d’obtenir un prix par rapport à son ouverture. Comment faire pour que la code s’arrête dès qu’il me l’a renvoyé une fois?

    Merci

    
    NbreDeBarres = IntradayBarIndex
     
    
    PriceBarIndex = 0
    Pricevalue=0
    once p=open[0]
    n=0.05
    FOR i = NbreDeBarres downto 0 DO
    IF close[i] > p*(1+(n/100)) THEN
    PriceValue = close[i]
    PriceBarIndex = i
    p=open[i]
    break
    ENDIF
    
    Next
    
     
    return PriceBarIndex, Pricevalue
    #67900 quote
    Nicolas
    Keymaster
    Master

    Simplement en ajoutant une condition pour que la recherche ne se fasse que si PriceValue=0

    NbreDeBarres = IntradayBarIndex
     
    
    once PriceBarIndex = 0
    once Pricevalue=0
    
    if PriceValue = 0 then  
    once p=open[0]
    n=0.05
    FOR i = NbreDeBarres downto 0 DO
    IF close[i] > p*(1+(n/100)) THEN
    PriceValue = close[i]
    PriceBarIndex = i
    p=open[i]
    break
    ENDIF
    
    Next
    endif
     
    return PriceBarIndex, Pricevalue
    #67919 quote
    Zakmeb
    Participant
    Average

    Merci Nicolas mais PriceBarIndex=i=0 au lieu de me renvoyer le nombre d’intradaybarindex de ce prix.

    #67920 quote
    Zakmeb
    Participant
    Average

    Si tu prends mon code avant tes modifications, il me renvoie bien le nombre de barres pour chaque prix.

    #67921 quote
    Zakmeb
    Participant
    Average

    Merci pour ta réponse.

    #67931 quote
    Zakmeb
    Participant
    Average

    Nicolas, merci de me répondre dès que tu as 5min.

    #67932 quote
    Nicolas
    Keymaster
    Master

    Merci de repréciser la demande, ça n’est pas très clair en effet. Le fait est que puisque le code est lu depuis le début de l’historique, alors l’indicateur ne fonctionnera qu’une seule fois au début de celui-ci, est-ce bien là le problème ?

    #67937 quote
    Zakmeb
    Participant
    Average

    il y a un nombre de barres (intradaybarindex) dans la journée. Il commence à 0 (ouverture de la cotation) et fini à plus de 400 (clôture de la cotation) par exemple. Je demande à mon code de prendre donc le prix d’ouverture et de me renvoyer ce prix * 0,05% dès qu’il est atteint( et en même temps le nombre de intradaybarindex pour ce même prix quand il est atteint. C’est ce que fait mon code mais il travaille en boucle et j’aimerai qu’il s’arrête dès que cette conditions est vérifiée. C’est pourquoi, ton retour est juste pour le prix mais le nombre de intradaybarindex pour ce même prix est toujours égal à 0.

    J’ai modifié mon code en tenant compte de ta remarque, sauf que dans celui-ci, il me renvoie count qui ne se remet pas à 0 lorsque l’on passe à un autre jour.

    NbreBarindex = IntradayBarIndex
    once Count=0
     
    once PriceBarIndex = 0
    once Pricevalue=0
    
    p=open[0]
    n=0.1
    
    For i=NbreBarindex downto 0 do
    IF close[i] < p*(1+(n/100)) THEN
    Count=Count+1
    else
    PriceValue = close[i]
    PriceBarIndex = count
    ENDIF
    break
    next
    
     
    
    return PriceValue, PriceBarIndex
    #67940 quote
    Zakmeb
    Participant
    Average

    En fait, il y a deux mois, je t’avais demandé si il était possible d’avoir un prix à un horaire donnée, pouvait on le coder (je ne connaissais pas encore PRT). Aujourd’hui, mon objectif est toujours le même mais en utilisant Intradaybarindex. Si on veut par exemple un prix à 15 (même calculer par rapport à l’ouverture) alors qu’on ouvert à 10, alors il y a un nombre de barres entre ces deux prix (on était à 0 barre lorsque le prix était à 10 à l’ouverture et on est >0 barre à 15). J’essaie de déterminer ce nombre lorsque ce prix est atteint. Et enfin, je veux que mon code me renvoie ce prix et ce nombre de barre et s’arrête.

    #68634 quote
    Ted21
    Participant
    Senior

    Il semblerait que la réponse à ma question soit dans cette file, si un bon génie pouvait m’aider, merci.

    >>

    Bonjour,

    Comment récupérer la valeur du cours d’ouverture à une heure précise, sur un indice cotant en continu.

    Et comment tracer un niveau à cette valeur sur la journée, même question sur la semaine et le mois, sans que la ligne ne dépasse l’UT considérée.

    Et comment trouver la valeur max et la valeur mini durant la journée à partir de l’heure d’open que j’aurais choisi.

    Exemple : J’ai besoin de la valeur d’ouverture à 8h pour mon indicateur et je souhaite tracer ce niveau sur mon graphe sur la durée de la journée.

    Et tracer l’ouverture Hebdo sur la durée de la semaine, mais que le tracé ne se prolonge pas au delà de la semaine considérée.

    Merci

    #69214 quote
    Zakmeb
    Participant
    Average

    Bonjour Nicolas,

    Une petite question qui est lié au mode Probacktest Tick par Tick.

    Mon algorithme de trading semble donner de très bon résultat en Probacktest et en Walk Forward, son taux de réussite est supérieur à 100% sur les périodes (5 au total). Mais en mode Tick par Tick, le Probacktest me renvoie un résultat négatif.

    Penses tu que mon code fonctionnera en intraday malgré tout ou dois je le modifier ( c’est là la difficulté) pour que le Probacktest Tick par Tick soit positif?

    Merci d’avance.

    #77984 quote
    Zakmeb
    Participant
    Average

    Bonsoir Nicolas,

    Suite à mes précédents postes, j’ai surtout cherché des indicateurs pour le plus haut et le plus bas. Cependant, j’ai un but simple  que je souhaite coder et qui est le suivant: acheter/vendre à un prix “borné” suivant l’orientation du prix (en hausse/en baisse) et vendre/racheter à un prix “borné”.

    Tu trouveras mon code ci-dessous qui illustre ce que je souhaite faire:

    DEFPARAM CumulateOrders=true
    
    
    once Pex=open[0]
    once i=1
    Pa=Pex*(1+0.0002)
    Pv=Pex*(1-0.0002)
    P=close[i]
    q=200000/close[0]
    
    if Pex<P then
    if P<=Pa then
    i=i+1
    P=close[i]
    
    endif
    
    if not longonmarket then
    buy q lot at market
    endif
    
    Pex=tradeprice
    Paa=Pex*(1+0.003)
    
    if P<=Paa then
    i=i+1
    P=close[i]
    
    endif
    
    if longonmarket then
    sell at market
    endif
    
    elsif Pex>P then
    if P>=Pv then
    i=i+1
    P=close[i]
    
    endif
    
    if not shortonmarket then
    sellshort q lot at market
    endif
    
    Pex=tradeprice
    Pvv=Pex*(1-0.003)
    
    if P>=Pvv then
    i=i+1
    P=close[i]
    
    endif
    
    if shortonmarket then
    exitshort at market
    endif
    
    endif

    Peux tu m’aider et même m’orienter (me corriger)?

    Merci et bon week end.

Viewing 15 posts - 16 through 30 (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...