ARRET SYSTEME a cause d’indicateur

Forums ProRealTime forum Français Support ProOrder ARRET SYSTEME a cause d’indicateur

Viewing 3 posts - 1 through 3 (of 3 total)
  • #236188

    Bonjour

    je vous ai ecrit car j’ai un système qui s’est arrété a cause de “Le système de trading a été arrété car un indicateur a reçu un paramètre négatif ou nul. Vous pouvez modifier votre code pour éviter les paramètres négatifs puis bactester le système pour vérifier la correction”

    J’ai du mal a identifier la cause car le message n’est pas très précis sur quelle indicateur et il n’y a rien mentionné dans les pdf d’aide. Le support PRT ne semble pas très réactif non plus.

    J’ai fait qq modif mais à chaque fois ca a replanté.

    j’ai rajouté cela notamment

    DEFPARAM CumulateOrders=False
    defparam preloadbars=10000

    Tout se passe bien dans le backtest j’ai du mal à comprendre que ca ne puisse pas etre le cas en réel.

    Je vais des call d’indicateurs et j’utilise du multitimeframe.

    Avez vous une idée d’ou cela vient ?

    Merci

    Christophe

     

    #236214

    Sans voir votre code, il est difficile de vous dire où se trouve l'erreur, mais le message que vous recevez après l'exécution du système se produit parfois pour diverses raisons. Par exemple, si vous créez un indicateur de ligne haute lmax=highest[bar](close) et que la variable qui définit les périodes bar renvoie une valeur inférieure ou inférieure à zéro, une erreur se produira.

    Solution possible ? Forcer la barre à être supérieure à 0.
    lmax=highest[max(1,bar)](close)

    #236250

    Bonjour Ivan

    Je lis souvent vos posts merci pour le partage !!

     

    Je pense que vous avez raison le problème doit être sur [Barindex-valeurBarLongOrder]. Ce que j’essaie de faire c’est qu’une fois mes conditions remplies sur un barre “valeurBarLongOrder” J’attend que le high de cette bar soit casse en placant tous les jours un stop price ert chose important sans que le low de cette par soit casse par le bas ce qui invalidera tout le set up

    J’utilise également le low précédent cette bar pour définir mon stop et mon risk et donc ma quantite. Peut etre que je devrais simplement enregistré les high et low précédent cette bar .

    Voila l’idée.

    if (OrdreLongTrigger = 1 and OrdreLongTrigger[1] = 0) THEN
    OrderLongToReplaceTrigger = 1
    valeurBarLongOrder = BarIndex
    endif

    if OrderLongToReplaceTrigger = 1 and BarIndex<>valeurBarLongOrder and (lowest[Barindex-valeurBarLongOrder](close) < low[Barindex-valeurBarLongOrder]) THEN
    OrderLongToReplaceTrigger = 0
    endif
    //graph OrderLongToReplaceTrigger

    //graphonprice low[Barindex-valeurBarLongOrder]
    // on replace l’order stop si le high du T1 n’a pas été franchi par un autre High
    // on n’est pas Long car dans la boucle
    // et il faut que aucun order a cette bar soit généré plus haut
    //high[Barindex-valeurBarLongOrder] est la première valeur ou l’order à été trigger T1 en général (voir si plusieurs valueur il faudraut peut etre prendre la dernier ou //le plus haut high ?
    // highest[Barindex-valeurBarLongOrder](high) est le plus haut high apres ce T1
    if OrderLongToReplaceTrigger = 1 and OrdreLongTrigger = 0 and lowest[Barindex-valeurBarLongOrder](close) > low[Barindex-valeurBarLongOrder] then
    Risk = (high[Barindex-valeurBarLongOrder]-low[Barindex-valeurBarLongOrder+1])*pointvalue
    RiskperTrade = 0.02
    capital = 17200+STRATEGYPROFIT
    maxquantiteRiskTrade= round((RiskperTrade*capital)/risk)

    if (Time > 1172001 and Time < 215901) then
    depositI = 2500
    maxquantitedepositI = floor(capital/depositI)
    quantiteLongI = min(maxquantiteRiskTrade,maxquantitedepositI)
    //graph quantiteLong
    BUY quantiteLongI contract AT high[Barindex-valeurBarLongOrder] STOP
    SET STOP PRICE low[Barindex-valeurBarLongOrder]

    else
    deposit = 3500
    maxquantitedeposit = floor(capital/deposit)
    quantiteLong = min(maxquantiteRiskTrade,maxquantitedeposit)
    BUY quantiteLong contract AT high[Barindex-valeurBarLongOrder] STOP
    SET STOP PRICE low[Barindex-valeurBarLongOrder]

    endif

Viewing 3 posts - 1 through 3 (of 3 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login