Code simple

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #15725 quote
    arcane
    Participant
    Average

    Bonjour,

    Je voulais faire un système simple sans condition autre que le temps en journalier.

    Acheter pour 10 000 euros d’actions à 9 h 03 et fermer la position à 17 h 27.

    Le code ne marche pas. (ci-joint)

    Je précise que les commandes ne fonctionnent pas non plus.

    defparam flatafter =172700
    defparam flatbefore = 090300

     

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    
    // Conditions pour ouvrir une position acheteuse
    
    c1=time > 090300
    
    IF c1 and not longonmarket THEN
    BUY 10000 cash roundedup at market
    
    ENDIF
    
    // Conditions pour sortir une position acheteuse
    
    IF ONMARKET AND TIME>=172700 THEN
    SELL AT MARKET
    
    ENDIF

     

    Merci de votre aide.

    #15728 quote
    JC_Bywan
    Moderator
    Master

    >> Pour la clarté des messages sur les forums de ProRealCode, merci d’utiliser le bouton “insert PRT code” pour séparer la partie texte de la partie code, merci ! <<

    Bonjour,

    time sert à identifier non pas l’heure simple, mais l’heure de clôture d’une bougie, donc pour acheter à 9h03, il ne faut pas le faire avec un “time >090300”. Ecrit ainsi cela ne sélectionnera que la première bougie de clôture postérieure à 9h03, ce qui plus l’ut est grande, plus ladite clôture intervient tard après 9h03 (par exemple 9h05 en ut5, 10h en uth, fin de journée en ut jour…), puis ensuite classiquement l’achat ne se déclenche qu’à l’ouverture de la bougie suivante.

    Pour acheter à 9h03, il faudrait être dans une ut suffisamment petite qui a une bougie qui clôture à 9h03 et sélectionner un time=090300 (pas >) pour que l’achat se déclenche à l’ouverture de la bougie suivante qui commence à 9h03

    #15741 quote
    arcane
    Participant
    Average

    Bonjour,

    Merci pour la réponse.

    Cela fonctionne mieux avec l’ut 5 mn mais quand une position est clôturée, cela ouvre une autre position alors que je voudrais un seul ordre par jour.

    Je vais chercher sur le forum.

    #15742 quote
    JC_Bywan
    Moderator
    Master

    Pour passer un seul ordre par jour à 9h03, le faire avec une ut 3mn ou une ut1mn et un “time =” , pas un “time >”, sinon à garder une ut plus grande que le 3mn, telle que le 5mn, et à garder le “time>” qui fera son premier chat à 9h05, c’est tout à fait logique qu’après avoir vendu, on a à la fois les conditions “time>” et “not longonmarket” qui soient à nouveau respectées, et que ce morceau de code recommence à acheter.

    Si on tient absolument à garder un “time>”, alors il faut flagger le fait d’avoir déjà passé un ordre dans la journée, et rajouter la vérification du flag pour empêcher d’en passer un deuxième, comme par exemple dans ce topic: http://www.prorealcode.com/topic/limite-le-trading-automatique-a-un-ordre-journalier/

    (je prends celui-là parce qu’il ressort vite via recherche dans le site, mais de mémoire il y en a d’autres dans le forum)

    #15750 quote
    arcane
    Participant
    Average

    Oui, j’ai lu le topic et j’ai essayé mais cela ne fonctionne pas même sur l’unité de temps de 5 mn.

    Maintenant,il ne passe plus aucun ordres alors qu’avant il passait plusieurs ordres par jour.

    J’ai fait des programmes assez complexes, et je n’arrive pas à faire un programme pour acheter sans conditions à 9 h 05 une seule fois par jour. C’est dingue.

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    defparam flatbefore = 090500
    
    once achat = 0
    // Conditions pour ouvrir une position acheteuse
    IF time = 090500 and achat=0 and not longonmarket THEN
    BUY 10000 cash roundedup at market
    
    achat=1
    
    ENDIF
    
    // Conditions pour sortir une position acheteuse
    
    G
    
    SET STOP $LOSS 100
    
    SET TARGET $PROFIT 250
    #15751 quote
    arcane
    Participant
    Average

    finalement, cela a l’air de fonctionner.

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    
    defparam flatbefore = 090000
    
    // Conditions pour ouvrir une position acheteuse
    once achat = 0
    
    IF time = 090500 and achat = 0 and not longonmarket THEN
    BUY 10000 cash roundedup at market
    
    ENDIF
    #15752 quote
    JC_Bywan
    Moderator
    Master

    >> Merci d’utiliser… << : voir image ci-jointe

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

Code simple


Support ProOrder

New Reply
Author
author-avatar
arcane @arcane_jerome Participant
Summary

This topic contains 6 replies,
has 2 voices, and was last updated by JC_Bywan
9 years, 2 months ago.

Topic Details
Forum: Support ProOrder
Language: French
Started: 10/30/2016
Status: Active
Attachments: No files
Logo Logo
Loading...