[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 10

 
volshebnik:
J'ai eu beau essayer Code Base, rien n'a été rentable (je n'en suis pas encore au bout). Sinon, j'aurais déjà parié sur lui pour de bon. Dans l'optimisation - bon, dans le test - mauvais. Juste cette recherche de toutes les MAs en optimisation, comme il me semble, donnera la meilleure variante de ma stratégie alors qu'il y a MA (5), MA(12), MA(18), MA(23) et MA(28). Mais il ne s'agit peut-être pas des meilleures MA. Et, au lieu de traiter chacune d'entre elles (ainsi que leurs intersections), ne serait-il pas plus simple de faire tourner un algorithme génétique en optimisation pour sélectionner les meilleures MAs ? C'est donc la question que j'ai posée dans mon précédent message.

Je pense que la logique de la solution est boiteuse là. Formulez correctement le problème (vous pouvez le faire sans votre code), abstrayez-le un peu et écrivez clairement les conditions du problème...
 
Roman.:

La logique de la solution est boiteuse là, à mon avis. Formulez correctement le problème (vous pouvez le faire sans votre code), abstrayez-en un peu et écrivez clairement les conditions du problème...
Le problème : On attend la rupture de la MA, puis la première fractale. Le dépassement de la première fractale est un signal pour le trade. Mais avec des périodes MA différentes, les fractales peuvent se trouver à des endroits différents (par le temps) car, selon la période et le type de lissage, certains МАs "cassent" plus tôt et d'autres plus tard et, en conséquence, les signaux pour un trade sont différents. Je veux donc essayer tous les МА pour trouver celui qui donne le meilleur (plus rentable) signal (s'il est correct du tout, je ne peux pas encore l'affirmer). Je veux rechercher et parcourir chaque MA de 50 périodes, et avec 4 options - eksponentielle, lissée, etc. - très, très longtemps. Si nous transférons la période МА, TP et SL à une variable externe dans l'optimisation, nous verrons immédiatement ce qui est mieux. Mais je ne peux pas optimiser au-delà de МА période = 7 pour une raison quelconque. Je cherche donc de l'aide.
 
volshebnik:
La tâche : on attend la rupture de la MA, puis la première fractale. La pénétration de la première fractale est un signal pour la transaction. Mais avec des périodes différentes de MAs, les fractales peuvent se trouver à des endroits différents (dans le temps) car, selon la période et le type de lissage, certaines MAs "cassent" plus tôt, d'autres - plus tard et, par conséquent, les signaux pour le trade - différents. Je veux donc essayer tous les МА pour trouver celui qui donne le meilleur (plus rentable) signal (s'il est correct du tout, je ne peux pas encore l'affirmer). Je veux rechercher et parcourir chaque MA de 50 périodes, et avec 4 options - eksponentielle, lissée, etc. - très, très longtemps. Si nous transférons la période МА, TP et SL à une variable externe dans l'optimisation, nous verrons immédiatement ce qui est mieux. Mais je ne peux pas optimiser au-delà de la période МА = 7 pour une raison quelconque. Je cherche donc de l'aide.


Solution :

Je donnerai pour acheter (vendre - par analogie) :

1. fracture MA - obtenir les valeurs MA sur les barres 3, 2 et 1 - comparer. Si les valeurs MA sur les barres 3>2 et 2<1, c'est un break.

2. ensuite - fractale - pénétration - un signal pour conclure un marché

   
   double fractal_l;
   double fractal_h;
     
   fractal_h = iFractals(Symbol(),PERIOD, MODE_UPPER, 3);
   if(fractal_h!=0)  upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3); 
   
   fractal_l = iFractals(Symbol(), PERIOD, MODE_LOWER, 3);
   if(fractal_l!=0)  dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3); 

   if (Ask > upfractal) {открытие ордеров при пробитии последнего (свежайшего) фрактала }


En ce qui concerne l'énumération des MA - placez-la dans des variables externes (optimisables) :

Period_MA (vous pouvez définir de 2 à 240 par incréments de 2), MODE - (méthode de calcul МА - plage de changements de 0 à 3 étape 1), PRICE_TYPE -(constante de prix - plage de changements de 0 à 6 étape 1), J'ai entendu dire que lorsque l'on travaille dans la journée la MA doit être calculée en utilisant les valeurs moyennes (le prix de clôture n'est pas important), lorsque l'on travaille sur les bougies quotidiennes la MA doit être calculée par les prix de clôture du jour.

PÉRIODE - vous le modifiez manuellement à chaque optimisation ultérieure - 1,5,15,30,60,240...

Appuyez sur F1 sur l'iMA - relisez attentivement tout ce qui s'y trouve.

Bien, et bien sûr TP et stop loss optimisés comme d'habitude.

 double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
 double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
 double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
P.S. N'oubliez pas d'écrire une information sur les résultats du test... :-)))
 
Roman, merci beaucoup ! Je vais le comparer avec mon EA. Je ne manquerai pas de vous faire part des résultats des tests. Votre travail ne sera pas perdu. Votre offre précédente de martingale est dans ma file d'attente de recherche, si je suis proche du graal;)) je vous le ferai savoir également.
 
volshebnik:
Roman, merci beaucoup ! Je vais le comparer avec mon EA. Je ne manquerai pas de vous faire part des résultats des tests. Votre travail ne sera pas perdu. Votre offre précédente de martingale est dans ma file d'attente de recherche, si je suis proche du graal ;)) je vous le ferai savoir également.

Sens, nous attendons...
 
Je me demande comment la fonction OrderModify() fonctionnera si le paramètre "prix" est défini différemment de ce qu'il était ? Par exemple, il y avait OrderPrice=1.3200, et dans la fonction OrderModify, fixons-le à 1.3300. Qui sait ? (moi-même dans la pratique et dans le testeur n'ai pas eu à vérifier, désolé)
 
ikatsko:
Je me demande comment la fonction OrderModify() fonctionnera si le paramètre "prix" est défini différemment de ce qu'il était ? Par exemple, il y avait OrderPrice=1.3200, et dans la fonction OrderModify, fixons-le à 1.3300. Qui sait ? (Je ne l'ai pas vérifié moi-même dans la pratique et dans le testeur de stratégie, désolé).

modifier le prix ouvert d'un ordre en attente si le type d'ordre le permet
 
abolk:

Si le type d'ordre le permet, il modifiera le prix d'ouverture de l'ordre en cours.

Que voulez-vous dire par "si le type de commande le permet" ? Un ordre ouvert peut être de type ACHAT ou VENTE.

Supposons que l'ordre modifie le prix, mais où dépenserait-il la différence ? En plus ou en moins ? C'est vrai ? Et il y aura la propagation, aussi ? Cela signifie-t-il que nous avons fermé l'ancien ordre (spread) et ouvert un nouvel ordre ?

 
ikatsko:

Que voulez-vous dire par "si le type de commande le permet" ? Un ordre ouvert peut être de type ACHAT ou VENTE.

Supposons que l'ordre modifie le prix, mais où dépenserait-il la différence ? En plus ou en moins ? C'est vrai ? Et il y aura la propagation, aussi ? Cela signifie-t-il que nous avons fermé l'ancien ordre (spread) et ouvert un nouvel ordre ?

La fonction ne pourra modifier que le prix auquel l'ordre en attente est fixé. Si vous essayez de modifier le prix ouvert de l'ordre au marché, cette fonction renverra une erreur, quelque chose comme "Paramètre de fonction non valide". Vous pouvez trouver plus de détails dans l'aide de cette fonction - je suis trop paresseux pour vous donner des liens car j'ai trop sommeil... :)
 
artmedia70:
Cette fonction ne pourra modifier que le prix d'ouverture de l'ordre en attente. Si vous essayez de modifier le prix ouvert de l'ordre au marché, cette fonction renverra une erreur, quelque chose comme "Paramètre de fonction non valide". Veuillez voir plus de détails dans l'aide de cette fonction - je suis trop paresseux pour vous donner des liens car j'ai trop sommeil... :)

Oui, merci de votre attention ! J'étais trop paresseux pour regarder et j'ai écrit une question. Désolé. MAIS j'ai cherché et j'ai trouvé (sans expérimenter). prix - nouveau prix pour un ordre en attente ou prix d'ouverture pour un ordre au marché. Bonne nuit !