Selectionner des jours de trade

Viewing 15 posts - 1 through 15 (of 17 total)
  • Author
    Posts
  • #213467 quote
    RICOU
    Participant
    New

    Bonjour,

    je n’arrive pas à programmer la selection des jours ou je vais trader. En effet, j’essaye de programmer mes trades du mardi au jeudi mais je n’y arrive pas.

    Merci pour votre aide.

    #213471 quote
    Nicolas
    Keymaster
    Master

    Il faut créer un booléen qui comporte les testes des jours:

    joursdetrading = dayofweek>=2 and dayofweek<=4

    puis ajouter cette condition dans la chaîne conditionnelle qui provoque une prise de position :

    if buycondition and joursdetrading then 
     buy at market 
    endif
    #213525 quote
    RICOU
    Participant
    New

    Merci beaucoup, je vais mettre ça en place.

    j’ai une autre question :

    je suis en train de créer un trade automatique, est il possible d’y insérer une condition telle que par exemple “si gains du jour = 100”, le robot s’arrête pour la journée et redémarre le lendemain.

    Par avance merci,

    #213534 quote
    Nicolas
    Keymaster
    Master

    Le gain est il en monnaie ou en points ?

    Il y a beaucoup d’exemples sur ce principe:

    https://www.prorealcode.com/topic/arreter-le-systeme-jusquau-lendemain/#post-100341 (en points)

    Pour limiter les gains en monnaie à 100 par jour:

    // Definition of code parameters
    DEFPARAM CumulateOrders = False // Cumulating positions deactivated
    
    // ---parameters
    MaxDailyProfit=100 //Max daily profit allowed (in money)
    
    once tradeon=1
    
    // reset the current state of the strateygprofit each new day
    If intradaybarindex=0 then
    MyProfit=STRATEGYPROFIT
    tradeon = 1
    endif
    
    // test if the strategyprofit of the day is currently above the daily profit allowed of below the daily loss allowed
    If StrategyProfit>=MyProfit+MaxDailyProfit  then
    tradeon = 0
    endif
    IF  tradeon=1 and rsi[14]crosses over 50  THEN
    BUY 1 contract AT MARKET
    ENDIF
    
    IF  tradeon=1  and rsi[14]crosses under 50 THEN
    SELLSHORT 1 contract AT MARKET
    ENDIF
    
    //graph strategyprofit 
    //graph MyProfit+MaxDailyProfit coloured("orange")
    //graph tradeon

    Le calcul se fait à chaque fermeture d’ordre.

    #213566 quote
    RICOU
    Participant
    New

    Bonjour, j’ai du faire une erreur de codage dans mes heures d’ouverture.

    En effet, normalement mon robot aurait s’arrêter à 22h00 et la position qui était ouverte ne c’est pas stoppée, j’ai du le faire manuellement.

    Pourriez vous me corriger, par avance merci.

    ci après la partie du code erronée :

    //DAX STOCH RSI
    DEFPARAM CumulateOrders = true//
    tradestart = time > 090000
    Tradeend= time < 220000
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//dont trade Saturday and Sunday

    Code-errone.jpg Code-errone.jpg
    #213568 quote
    Nicolas
    Keymaster
    Master

    Je ne vois pas dans ce code où sont utilisés les variables booléennes tradestart et tradeend.

    Pour comprendre comment utiliser les conditions et les variables booléenes (vrai/faux ; 1/0), je te suggère de suivre la formation à la programmation ici : Premiers pas avec la programmation pour ProRealTime

    #213569 quote
    RICOU
    Participant
    New

    ci joint le code complet et si je ne me trompe pas ta question relative aux “variables booléennes tradestart et tradeend” se trouvent à la fin du code mais je crois qu’il manque quelque chose.

     

    //DAX STOCH RSI
    DEFPARAM CumulateOrders = true//
    tradestart = time > 090000
    Tradeend= time < 220000
    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//dont trade Saturday and Sunday
    
    TP =20
    SL =40
    
    STOCH = Stochastic[14,3](close)
    indicator4 = Average[5](STOCH)
    RSIind = RSI[14](close)
    
    // Conditions to enter long positions
    
    c2 = (STOCH - indicator4 >10)//Stochastic upward momentum
    c3 = (RSIind > 45)//RSI upward momentum
    c5 = (average[10](STOCH)<45)// Stochastic not yet overbought
    
    //Conditions to enter short
    
    d2 = (STOCH - indicator4 <-10)//Stochastic downward momentum
    d3 = (RSIind < 55)//RSI downward momentum
    d5 = (average[10](STOCH)>55)//Stochastic not yet oversold
    
    IF c2 AND c3 AND c5 AND tradestart AND tradeend THEN
    BUY 5 CONTRACT AT MARKET
    Set target pprofit TP
    SET STOP pLOSS SL
    ENDIF
    
    IF d2 AND d3 AND d5 AND tradestart AND tradeend THEN
    SELLshort 5 CONTRACT AT MARKET
    Set target pprofit TP
    SET STOP pLOSS SL
    ENDIF
    #213571 quote
    Nicolas
    Keymaster
    Master

    Merci, selon moi c’est correct. Pour que le code puisse tester ces horaires, donc la stratégie doit être lancé pour que les bougies de 090000 et 220000 existent sur le graphique. Sur une unité de temps de 4 heures par exemple, le code sera lu à 4,8 et 12h00, donc bien après ta condition de démarrage à 9h. Idem pour la condition de 22h00 bien entendu.

    #213581 quote
    RICOU
    Participant
    New

    Ok, donc sur une UT de 10mn pour quelle raison mon robot ne c’est pas arrêté à 22h00 et la position qui était ouverte ne c’est pas stoppée, j’ai du le faire manuellement à 23h00.

    #213582 quote
    phoentzs
    Participant
    Master

    Selon votre horaire, aucun poste ne sera chronométré ou fermé. Seulement aucun nouveau poste n’est ouvert après 22h00.

    #213585 quote
    RICOU
    Participant
    New

    Ok, peut on alors automatiser une fermeture automatique à 22h00 de toutes les positions qui sont encore ouvertes ouvertes ?

    #213586 quote
    phoentzs
    Participant
    Master

    if onmarket and time=220000 then

    sell at market

    exitshort at market

    endif

    #213587 quote
    RICOU
    Participant
    New

    ok, I will try this code

    Br,

    #214053 quote
    Nicolas
    Keymaster
    Master

    ou avec

    defparam flatafter=220000

     

    (fermeture des ordres au marché et en attente après 22h00)

    #214212 quote
    RICOU
    Participant
    New

    Bonjour Nicolas,

    merci beaucoup pour la réponse.

    Comment peut on vérifier que le robot est bien inactif après 22h ?

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

Selectionner des jours de trade


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
RICOU @ricou Participant
Summary

This topic contains 16 replies,
has 3 voices, and was last updated by phoentzs
2 years, 10 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 04/18/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...