Fonction once

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #103531 quote
    Léo
    Participant
    Average

    Bonjour à tous,

    j’essaie de créer un code pour backtest basé sur Ichimoku. J’aimerais que certains ordres ne soient réalisés qu’une fois (ie première prise de bénéfice partielle si le cours est au dessus de 20% du prix d’entrée et traverse la tenkansenD – je veux que cet ordre ne soit exécuté qu’une fois). J’ai rédigé les lignes suivantes  (avec c3 = low[1]) :

    If longonmarket and close > 1.2*positionprice then
    if close crosses under TenkansenD then
    Once Sell countofposition*1/3 shares at C3 Stop
    Endif
    Endif

     

    Ca ne fonctionne pas 🙂 j’ai essayé de placer la fonction once un peu partout mais j’ai systématiquement une erreur de code. Est-ce que quelqu’un a déjà rédigé ce type d’instruction ?

    En vous remerciant par avance.

    Cordialement.

    #103533 quote
    Nicolas
    Keymaster
    Master

    L’instruction Once ne sert pas du tout à cela 🙂 Elle est utile pour déclarer une valeur une seule fois uniquement pour une variable.

    Concernant ta demande de fermer 1/3 de position une seule et unique fois, pourquoi ne pas intégrer dans ta condition de la ligne 2, un test pour savoir combien de contrats il y a au marché ? Si la quantité de contrat/lot est identique à la taille envoyé lors de l’ouverture de position, alors tu n’as encore jamais fermé aucune partie de celle-ci.

    #103539 quote
    Léo
    Participant
    Average

    Bonjour Nicolas,

    merci pour cette réponse (du coup l’intitulé de mon poste n’est peut être pas vraiment adapté 🙂 ).

    Mon ordre d’achat est du type “BUY 1500 CASH at C2 STOP” si bien que je ne connais pas le nombre de lot à l’ouverture de la position.

    Est-ce qu’une formule de type PositionInitiale = once countofposition insérée juste sous le code d’achat pourrait fonctionner ? ou il existe une formule dédiée ?

     

    // ouverture de position
    
    If not longonmarket and Close crosses over KijunsenW then
    
    BUY 1500 CASH at C2 STOP
    
    EndIf
    
    PositionInitiale = once countofposition
    
    //condition de cloture de position
    If longonmarket and close > 1.2*positionprice and countofposition > PositionInitiale then
    if close crosses under TenkansenD then
    Once Sell countofposition*1/3 shares at C3 Stop
    Endif
    Endif
    #103548 quote
    Nicolas
    Keymaster
    Master

    Merci de placer le code dans la balise appropriée en utilisant le bouton ‘insert PRT code’.

    Il faut arrêter d’utiliser ONCE, il n’est vraiment pas utile ici 🙂 Ta solution pourrait fonctionner, je pense toutefois que le code aura besoin d’1 barre fermée pour reconnaître la quantité de positions au marché, soit:

    // ouverture de position
    
    If not longonmarket and Close crosses over KijunsenW then
     BUY 1500 CASH at C2 STOP
    EndIf
    
    if barindex-tradeindex=0 then 
     positioninitiale=countofposition
    endif
    
    //condition de cloture de position
    If longonmarket and close > 1.2*positionprice and countofposition >= PositionInitiale then
     if close crosses under TenkansenD then
      Sell countofposition*1/3 shares at C3 Stop
     Endif
    Endif
    Léo thanked this post
    #103572 quote
    Léo
    Participant
    Average

    Super merci !

    je vais creuser les fonctions barindex et tradeindex que je ne maîtrise pas ! (et Once que de toute evidence je ne maîtrise pas non plus :))

    Ok pour le bouton ‘insert PRT code’ – je ferais gaffe la prochaine fois !

    Encore Merci.

    #103680 quote
    Nicolas
    Keymaster
    Master

    Barindex c’est simplement le numéro unique de la barre (du chandelier). Tradeindex, c’est le numéro du chandelier qui a vu l’ordre N s’ouvrir ou se fermer. On peut donc faire des différences entre ces 2 constantes pour vérifier un “timing”.

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

Fonction once


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Léo @agrassin Participant
Summary

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

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 07/26/2019
Status: Active
Attachments: No files
Logo Logo
Loading...