Je suis parti sur un plus bas historique (20 derniers périodes) = variable ll à modifier si besoin.
Il n’y a que les achats dans ce programme :
DEFPARAM CumulateOrders = true
q = 2 //quantité de lot de chaque position ouverte
ecart = 0.1 //ecart en pourcentage minimal entre mm20 et mm50
//indis
mm5 = average[5]
mm20 = average[20]
mm50 = average[50]
bolup = BollingerUp[20](close)
rrsi = rsi[14]
ll = lowest[20](low)[1]
//conditions
buyc1 = mm5>mm20 and mm20>mm50 and rrsi>=45 and mm20/mm50>=1+(ecart/100)
buyc2 = close<= mm5 and close<=mm20 and close>mm50
//trigger
if buyc1 and buyc2 and barindex-tradeindex(1)>2 then
buy q contracts at market
endif
//orders managmt
if longonmarket and countoflongshares<=q*3 then
if close > bolup and close<close[1] then
sell q/2 contract at market
endif
endif
//exit whole basket
if longonmarket and mm20<mm50 and low<ll then
sell at market
endif
Je vous est joint la photo afin d’éviter de mal m’exprimer et de vous induire en erreur. C’est la dernier plus bas de la derniere vague
Oups je n’avais pas vu votre code. Je le test dessuite. Meric
Ci joint la résultat sur un test de qq heures.
Avec le mien j’ai 7 achats et o avec le votre
Sur une autre devise, j’ai eu 1 achat perdant.
Je ne comprend pas…
Les stratégies sont différentes, logique que les résultats le soient également 🙂
Quel est instrument et le timeframe du test en question svp?
Ok mais quel est l’instrument du test que vous avez fait svp ? Il semble que ce soit une action car je vois 60.000 shares ?
Pour mémoire ou pour information, le trading automatique sur les graphiques en ticks n’est pas possible en réel.
Non cette stratégie est uniquement pour le forex.
Le test a été fait sur l’ AUD/JPY
L’écart en pourcentage entre les MM20 et MM50 est trop restrictif, en 300 ticks il faudrait le baisser (variable “ecart”) au début du code.
je vien de faire des tests mais les résultats sont négatifs.
Sinon comment ajouter à ma stratégie qui fonctionne : vendre que la moitié à chaque vente?
Je rajoute uniquement votre code ci-dessous? :
//orders managmt
if longonmarket and countoflongshares<=q*3 then
if close > bolup and close<close[1] then
sell q/2 contract at market
endif
endif
//exit whole basket
if longonmarket and mm20<mm50 and low<ll then
sell at market
endif
Votre stratégie initiale ne cumule pas les ordres pour mémoire. Désolé si elle n’est pas concluante.
Si je reprends votre premier code, voilà ce qu’il faut ajouter pour vendre la moitié d’une position si le prix se situe au dessus de la bollinger haute et uniquement si le close est au dessous du dernier.
// Définition des paramètres du code
DEFPARAM CumulateOrders = false // Cumul des positions désactivé
q = 2 //quantité de lot de chaque position ouverte
// Conditions pour ouvrir une position acheteuse
indicator1 = ExponentialAverage[5](close)
c1 = (close <= indicator1)
indicator2 = Average[20](close)
c2 = (close <= indicator2)
indicator3 = Average[20](close)
indicator4 = Average[50](close)
c3 = (indicator3 > indicator4)
IF c1 AND c2 AND c3 THEN
BUY q SHARES AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator5 = BollingerUp[20](close)
c4 = (close >= indicator5) and close<close[1]
IF c4 THEN
SELL q/2 shares AT MARKET
ENDIF
Pour information, la fermeture partielle des ordres n’est pas encore possible en trading réel sous ProOrder, mais c’est imminent.
Super !
J’ai retiré ça and close<close[1].
Avec mon code = 14 gagnantes soit 100%
Avec votre modif et qq petite modif : 22 gagnantes 100%
C’est super, mais la vente du 2ieme lot se fait à proximité de la 1ere vente, alors que les 2ièmes parties (de chaque achat) je veux les laisser courir jusqu’au retournement finalement (car je pyramide) , c’est à dire 3 bougies après le croisement à la baisse de la MM20 ET MM50. Comment l’ajouter?
Voici le résulat ( erreur de résultat sur mon post précent c’était en 150ticks)
Voici la photo en 300 ticks. C’est super.
Si l’on peut rajouter juste la vente à moitié de chaque position c’est parfait et je ne vous emebete plus.
Un grand merci 🙂
Il est logique qu’il y est 100% de positions gagnantes, car il n’y a aucun condition qui ferme les ordres en perte.
J’ai retiré ça and close
Merci de poster le code en l’état si je dois ajouter d’autres modifications 🙂
1 / Je l’ai enlevé car je passe à un seul achat et sans cette close je passe à 12 achats.
2 / Pour le pyramide, (vendre la moitié) je l’ai noté dans mon 1er post de base mais sur 3 positions.
Donc au plus simple pour vous, le code à ajouter serai de vendre la moitié sur les 3ieres positions ou la moitié à chaque position et la vendre finale de toutes les positions >> c’est à dire 3 bougies après le croisement à la baisse de la MM20 ET MM50.
Pour les positions perdantes, sur mon code à moi(pas le votre) j’ai == SET STOP pLOSS 13 et j’arrive à 100% aussi
Sur le votre, c’est vrai qu’il n’y a pas de condition que stop les pertes. ( je n’avais pas fait attention llol)
La condition des pertes: serait >> 3 bougie sous le croisement à la baisse des MM20 ET MM50
Voici le code:
// Définition des paramètres du code
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
q = 2
// Conditions pour ouvrir une position acheteuse
indicator1 = ExponentialAverage[5](close)
c1 = (close <= indicator1)
indicator2 = Average[20](close)
c2 = (close <= indicator2)
indicator3 = Average[20](close)
indicatormm30 = Average[30](close)
indicator4 = Average[50](close)
c3 = (indicator3[3] > indicator4[4])
ecart = indicatormm30/indicator4>0.04
IF c1 AND c2 AND c3 and ecart THEN
BUY q SHARES AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator5 = BollingerUp[20](close)
// je l'ai supprimé car je passe à un ordre d achat au lieu de 12 >>> c4 = (close >= indicator5)
c4 = (close >= indicator5)
IF c4 THEN
SELL q/2 shares AT MARKET
ENDIF