je compte bien m’informer auprès de mon Broker sur la taille des lots. En attendant, il me faut tester ce robot sur compte démo avant de passer au réel.
Que penses-tu Nicolas de mon idée d’indicateur développé à partir de ce robot ?
Je pense que ce sera utile pour ceux qui me lisent.
Je n’ai pas eu le temps de regarder, quelques images peut-être?
J’ai effectué quelques améliorations dans les points d’entrée de mon robot.
J’ai limité le money management à 500 contrats à l’achat et à la vente. (variable: MaxOrders)
J’obtiens un résultat très honorable (voir image ci-dessous)
ci-dessous l’indicateur qui vous donne les points d’entrée du robot.
ci-dessous le robot optimisé.
Il ne reste plus qu’à reproduire cela sur compte démo avant de se lancer en réel.
Tu devrais te renseigner sur la taille maximum de lots sur cette paire forex chez ton courtier. Ensuite, suivant la liquidité présente et la “qualité” du marché, le courtier pourrait te slipper si les lots sont trop importants.
En réel, on peut subdiviser les ordres pour outrepasser cette limite, mais on ne peut jamais vraiment savoir à l’avance quelle sera la réponse du serveur du courtier bien sûr.
Merci Nicolas ! je vais me renseigner pour la taille des lots max sur l’eurusd.
Quand à subdiviser les ordres, il me faut utiliser “share” à la place de “lot”, mais ensuite je ne vois pas comment faire ?
Tu peux utiliser SHARES, LOTS ou même CONTRACTS, ce sera pareil pour le serveur ProOrder.
Pour diviser tes ordres en plusieurs, tu peux faire une boucle que tu incrémenterai jusqu’à avoir assez d’ordres au marché, comme ceci (exemple):
Ta martingale (ou autre système de money management), te calcule que tu devrais passer 100 lots et que la taille de lot maximum pour ton courtier est de 10 lots, alors tu dois passer 10 ordres de 10 lots:
if buycondition then
for a = 1 to 10 do
buy 10 lots at market
next
endif
Bien sûr, il faudrait créer des variables qui calculerai le nombre d’itération qu’aurait besoin ta boucle ainsi que la taille de lot à passer pour chaque ordre, je t’en laisse le soin 🙂
merci Nicolas! je vais essayer çà.
J’ai un problème avec la subdivision qui ne fonctionne pas du tout en backtest, ci-dessous un élément du programme à subdiviser:
// Conditions for Entry of Long Positions
if TDSL=8 then
L=(low<low[3] and low<low[2]) or (low[1]<low[2] and low[1]<low[3])
if L AND c1 AND OPENTIME<=LimitEntryTime then
if OrderSize >= Subdivision then
for a = 1 to Subdivision do
BUY Max(1,OrderSize/Subdivision) lot at market
next
elsif OrderSize < Subdivision then
BUY OrderSize lot at market
endif
endif
endif
Merci Nicolas par avance, si tu pouvais m’aider.
J’ai trouvé, çà marche parfaitement. Il manquait de modifier la ligne ci-dessous:
DEFPARAM CumulateOrders = True
Encore un grand merci !!! c’est super
J’ai simplifié ma formule, mais j’ai encore un bug: il me passe certains lots trop importants, sur l’image ci-dessous il passe 1 lot à 121.
// Conditions for Entry of Long Positions
if TDSL=8 then
L=(low<low[3] and low<low[2]) or (low[1]<low[2] and low[1]<low[3])
if L AND c1 AND OPENTIME<=LimitEntryTime then
for a = 1 to Subdivision do
BUY Max(1,OrderSize/Subdivision) lot at market
next
endif
endif
Difficile de t’aider sans savoir ce qu’est “OrderSize” et “Subdivision”..
Si le résultat de cette division est aussi important c’est forcément que soit :
_ OrderSize est très important
ou que
_ Subdivision est très petit
je m’en sors pas entre l’imbrication de la subdivision et la réintégration des gains par le money management. ci-dessous le programme complet.
J’ai finalement choisi d’augmenter progressivement la subdivision en fonction de la variable n du money management, soit le capital + les gains.
Mais j’ai toujours certains lots qui sont excessifs sans raison. ci-dessous le programme complet.
Est-ce que cette taille de lot excessive est celle du dernier ordre de ta boucle de passage des trades ?
in this year the stategy seems to be unprofittable…Gertrade..are you still using it?