Récupérer informations de bougies en particulier

Viewing 11 posts - 16 through 26 (of 26 total)
  • Author
    Posts
  • #164357 quote
    turame
    Participant
    Master

    Effectivement, il me faut un historique des dernières 100 valeurs uniquement. Peut-être aurais-tu un bout de code pour ne conserver que les 100 dernières valeurs ?

    #164358 quote
    Nicolas
    Keymaster
    Master

    Je n’ai aucune idée de comment tu remplis ton tableau, alors voici comment on pourrait faire en utilisant la variable “index” comme numéro de la colonne :

    if macondition then 
     $tableau[index] = rsi[14] //stock ma valeur dans la colonne n° index
     
     if index = 99 then //on reset index à 0 si on a 100 valeurs
      index = 0
     else //ou sinon
      index=index+1 //on incremente la colonne 
     endif 
    endif
    #164376 quote
    turame
    Participant
    Master

    Bien sûr !! Suis-je bête… Ca devrait maintenant marcher très probablement.

    Merci en tout cas.

    #164430 quote
    Nicolas
    Keymaster
    Master

    J’ai corrigé le code ci-dessus, il faut s’arrêter à 99, sinon on aurait eu 101 colonnes (0 à 100 = 101 valeurs…) 🙄

    #164490 quote
    turame
    Participant
    Master

    Nickel merci, ça fonctionne au poil !

    #164699 quote
    JiPaLou
    Participant
    New

    Merci pour votre aide qui m’a permit de bien avancer ! 🙂

     

    Une autre question, j’aimerai utiliser une variable, mais qu’elle soit stockée en mémoire afin d’être réutilisée au(x) prochain(s) lancement(s) du script.

    Exemple i=0 au 1er lancement du script (timeframe 10min), i=0 pendant les 5 bougies suivantes, puis je positionne i=1 car il satisfait à mes conditions, j’aimerais donc qu’au prochain parcourt du code i=1

    Je n’ai pas réussi à trouver ça sur le forum

    #164805 quote
    Nicolas
    Keymaster
    Master

    Tant que tu n’affectes pas d’autre valeurs à i, il restera à sa dernière valeur.

    Par contre, si quand tu dis “prochain lancement du script”, tu veux dire enlever l’indicateur du graphique et le remettre ensuite, alors non, tout sera remis à l’état zéro.

    #164911 quote
    JiPaLou
    Participant
    New

    J’ai toujours un souci, voila mon code :

    if time=010000 or time=050000 or time=090000 or time=130000 or time=170000 or time=210000 then
       //fermeture des positions en cours
       sell at market
       exitshort at market
       Orders=0
       //[enregistrement infos bougies précédentes]
       //[...]
    endif
    
    for i = index downto 0
       //[Récupération informations]
       //[...]
       if [Conditions] and Orders=0 then
          // LONG
          BUY 1 SHARE AT Haut STOP
          SET STOP pLOSS amplitudepips
          SET TARGET pPROFIT amplitudepips
          // SHORT
          SELLSHORT 1 SHARE AT Bas STOP
          SET STOP pLOSS amplitudepips
          SET TARGET pPROFIT amplitudepips
          Orders=1
          break
       endif
    next

    Je suis en timeframe 10min, et toutes les 4H j’initialise une variable à 0 (Orders=0).

    Puis quand les données que je récupèrent sont OK avec mes conditions :

    – je place mes ordres (BUY STOP & SELL STOP) avec SL / TP

    – je modifie ma variable (Orders=1) afin qu’il ne place pas de nouveaux ordres si mes conditions sont réunies de nouveau jusqu’au prochain tf 4H

     

    Mais quand j’execute ce code, il ne place plus un seul ordre, j’ai l’impression que Orders vaut 1 tout le temps, dès le début…

    #164914 quote
    JiPaLou
    Participant
    New

    Bon en fait il manquait juste un Orders=0 tout en haut du code…

    #164982 quote
    JiPaLou
    Participant
    New

    Finalement j’ai bien toujours un souci pour ne pas placer de 2e ordre Buy ou Sell, quand un 1er est deja passé…

    Le code est le suivant, je ne comprends pas avec les variables positionnées ça devrait fonctionner…

    once Orders=0
    if time=010000 or time=050000 or time=090000 or time=130000 or time=170000 or time=210000 then
       //fermeture des positions en cours
       sell at market
       exitshort at market
       Orders=0
       //[enregistrement infos bougies précédentes]
       //[...]
    endif
     
    for i = index downto 0
       //[Récupération informations]
       //[...]
       if [Conditions] and Orders=0 then
          // LONG
          BUY 1 SHARE AT Haut STOP
          SET STOP pLOSS amplitudepips
          SET TARGET pPROFIT amplitudepips
          // SHORT
          SELLSHORT 1 SHARE AT Bas STOP
          SET STOP pLOSS amplitudepips
          SET TARGET pPROFIT amplitudepips
          Orders=1
          break
       endif
    next

    J’ai également essayé de mettre le if Orders=0 avant le for…

    Pas mieux !  🙁

    #164997 quote
    Nicolas
    Keymaster
    Master

    Un ordre conditionnel ne dure qu’une seule bougie, donc si tu lances ton code en timeframe 5-minutes par exemple, les ordres STOPS resteront actifs durant 5 minutes si ils ne sont pas activés par le prix, puis disparaîtront et il faudra attendre que ta condition à la ligne 2 soit vrai pour que “orders” soit à nouveau égal à 0 et que tu autorises à nouveau de placer ces ordres (condition ligne 14).

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

Récupérer informations de bougies en particulier


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
JiPaLou @jipalou Participant
Summary

This topic contains 25 replies,
has 3 voices, and was last updated by Nicolas
4 years, 11 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 03/12/2021
Status: Active
Attachments: 2 files
Logo Logo
Loading...