DEFPARAMCumulateOrders=False// Cumul des positions désactivé
oncebuybar=0
// Conditions pour ouvrir une position acheteuse
indicator1=BollingerDown[20](close)
c1=(close<=indicator1)
IFc1THEN
BUY1CONTRACTATMARKET
buybar=barindex
ENDIF
// Conditions pour fermer une position acheteuse
ifbuybar<>0andbarindex-buybar=1then
SELLATMARKET
endif
mais on dirait que les fermetures de position se font au hasard.
Je voudrais que la position ne dure qu’une seule journée en Daily (ici c’est le SP500 SPTRD) c’est à dire:
Achat à l’open dès que les conditions sont OK, puis sortie à l’open suivant dans tous les cas. Aucune conservation.
Ci-joint la capture d’écran du backtest. On voit que pour le 1er achat présent, la position est clôturé 5 bougies plus tard au lieu de la suivante.
La raison est que, sur les 4 bougies qui suivent l’achat, la condition c1 est vraie. Du coup, le code devrait exécuter l’instruction BUY, mais elle n’est pas exécutée à cause de l’instruction “DEFPARAMCumulateOrders=False”. Par contre, l’instruction “buybar =barindex” est bien exécutée, ce qui fait que la condition de sortie “barindex–buybar=1″ est fausse.
Si vous voulez un code propre et simple, vous pourriez faire ceci :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Définition des paramètres du code
DEFPARAMCumulateOrders=False// Cumul des positions désactivé
To help us continually offer you the best experience on ProRealCode, we use cookies. By clicking on "Continue" you are agreeing to our use of them. You can also check our "privacy policy" page for more information.Continue