[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 120

 

Il y a quelques jours, j'ai téléchargé l'EA "e-MoveSLTPbyMouse" (merci Granit) et l'ai essayé sur la plateforme de trading Broco, il fonctionne bien. Aujourd'hui, j'ai décidé de l'utiliser avec IBFX et j'ai constaté qu'il ne fonctionnait pas. Une sorte de ligne supplémentaire est apparue, qui a "rebondi" sur le prix, puis le marché a réussi à dépasser la ligne de stop loss et j'ai dû fermer manuellement la position avec une petite perte. Des idées à ce sujet ? Que puis-je faire pour que mon Expert Advisor fonctionne avec IBFX ? Ou peut-être y a-t-il quelque chose de similaire dans l'arsenal de quelqu'un ?

Une dernière question. J'ai un EA qui ouvre des positions avec des lignes horizontales mais malheureusement il n'ouvre que 3-4 pips du prix fixé. Par exemple, j'ai mis une ligne à VENDRE à 1.4018 avec 1 pip pour la casser (EUR) et la position s'est ouverte à 1.4015, c'est-à-dire qu'elle a glissé de 2 pips. Sur le GBP, il a dépassé de 3 pips. Peut-être que quelqu'un a une EA similaire, mais elle fonctionnerait correctement. Je vous en serais très reconnaissant.

Je poste cette EA, peut-être que quelqu'un en aura besoin.

Dossiers :
 

Messieurs les experts, je voudrais utiliser dans mon Expert Advisor un indicateur de glissement sur un graphique.

Si j'attache l'indicateur de glissement au graphique manuellement, le paramètre Apply to peut être écrit comme les données de l'indicateur précédent, mais comment dois-je le faire dans mon EA ?

Je pense qu'il serait logique d'appliquer la fonction OnArray , mais je ne sais pas où prendre le tableau avec les données du premier МА.

Par exemple, j'ai besoin de ce qui suit : si le premier МА (21) est supérieur au deuxième MA (21) (construit sur le premier MA) alors...................

Et une autre question : si mon conseiller expert a l'appel de fonction suivant : iMA(0,0,250,0,1,0,0), alors à chaque tick il prendra ces 250 barres de fermeture, les additionnera et divisera par 250 ? Or, il n'en est rien. Et si j'utilise une barre coulissante de plus, le prix va baisser... Veuillez clarifier.



 
mukata писал(а) >>

Messieurs les experts, je voudrais utiliser dans mon Expert Advisor un indicateur de glissement sur un graphique.

Si j'attache l'indicateur de glissement au graphique manuellement, le paramètre Apply to peut être écrit comme les données de l'indicateur précédent, mais comment dois-je le faire dans mon EA ?

Je pense que la fonction iMAOnArray a du sens, mais je ne sais pas où prendre le tableau avec les données de la première MA, s'il vous plaît, éclairez-moi ou fournissez-moi un lien vers une telle construction, ou la construction elle-même, si elle existe.

Par exemple, j'ai besoin de ce qui suit : si le premier МА (21) est supérieur au deuxième MA (21) (construit sur le premier MA) alors...................

Et une autre question : si mon conseiller expert a l'appel de fonction suivant : iMA(0,0,250,0,1,0,0), alors à chaque tick il prendra ces 250 barres de fermeture, les additionnera et divisera par 250 ? Or, il n'en est rien. Et si j'utilise une barre coulissante de plus, le prix va baisser... Veuillez expliquer.

La façon la plus simple de fabriquer un indicateur.

 
Vinin >> :

La chose la plus simple à faire est de créer un indicateur.

Créons un indicateur, où allons-nous chercher le tableau de données ? Donnez-moi un indice sur la construction, le manuel ne l'a pas...

Et la deuxième question ?

 
mukata писал(а) >>

Prenons un indicateur, où allons-nous chercher le tableau de données ? S'il vous plaît, donnez-moi un indice sur la construction, le manuel ne l'a pas...

Et la deuxième question ?

Sur la deuxième question. Tout dépend de la mise en œuvre. Vous pouvez calculer vous-même l'assistant en optimisant le code. Vous pouvez calculer uniquement l'ouverture de la barre. Il existe de nombreuses variantes.

Mais la meilleure option est d'utiliser l'indicateur. Dans lequel tous les calculs sont effectués, et le conseiller expert les lit (valeurs calculées).

Voici un exemple d'indicateur

J'ai changé l'indicateur

Dossiers :
 
Vinin >> :

Sur la deuxième question. Tout dépend de la mise en œuvre. Vous pouvez faire votre propre calcul en optimisant le code. Vous ne pouvez calculer que par ouverture du bar. Il existe de nombreuses variantes.

Mais la meilleure option est d'utiliser l'indicateur. Dans lequel tous les calculs sont effectués, et le Conseiller Expert les lit (les valeurs calculées).

1) "Vous pouvez calculer vous-même l'outil en optimisant le code" - Je ne comprends pas cette ligne. Je comprends : à chaque tick le start est appelé, et s'il y a appel de la fonction iMA(0,0,250,0,1,0,0), alors à chaque fois il va additionner et diviser ces 250 barres. Et si nous créons l'indicateur correctement, il ne comptera que la dernière barre, et le dernier paramètre de décalage sera lu depuis le tableau. N'est-ce pas ?

2) Où obtenez-vous le tableau pour créer la deuxième MA ?

 
mukata >> :

2) Où puis-je obtenir un tableau pour calculer la deuxième MA ?


C'est ça ! J'oubliais, l'indicateur crée un tableau de valeurs MA...

Merci beaucoup.

 
mukata писал(а) >>

1) "Vous pouvez calculer vous-même la machine en optimisant le code" - Je ne comprends pas cette phrase. Je comprends : à chaque tick le start est appelé, et s'il y a un appel de la fonction iMA(0,0,250,0,1,0,0), elle ajoutera et divisera ces 250 barres à chaque fois. Et si nous créons l'indicateur correctement, il ne comptera que la dernière barre, et le dernier paramètre de décalage sera lu depuis le tableau. N'est-ce pas ?

2) Où peut-on obtenir un tableau pour créer la deuxième MA ?

1. Tout dépend de la mise en œuvre. Il existe des méthodes de calcul optimales. iMa() utilise son propre algorithme de calcul. CodeBase les a. Ainsi, lorsque vous l'utilisez, le mécanisme de calcul fonctionne, ce qui vous est caché. Vous n'obtenez que le résultat. Et le calcul sera effectué à chaque tick.

2. J'ai créé cet indicateur spécialement pour vous aider à comprendre les tableaux.

 
Vinin >> :

1. Tout dépend de la mise en œuvre. Il existe des méthodes de calcul optimales. iMa() utilise son propre algorithme de calcul. CodeBase les a. Ainsi, lorsque vous l'utilisez, le mécanisme de calcul fonctionne, ce qui vous est caché. Vous n'obtenez que le résultat. Et le calcul sera effectué à chaque tick.

2. J'ai créé cet indicateur spécialement pour vous aider à comprendre les tableaux.

Merci beaucoup pour l'indicateur, j'ai regardé la fonction de démarrage, tout est devenu clair tout de suite.

A propos de la première question :

Par exemple, dans mon Expert Advisor (pas MA, mais aussi une fonction intégrée) :

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
){
//и обе линии ниже 90
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<90&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)<90
){
//и выше 50
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>50&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)>50
)
fl=1;return(fl);//продать
}
}

Est-ce qu'il va le compter sur chaque ligne ?

Ou bien il faut écrire un indicateur et prendre les valeurs de ses tableaux et les comparer, ou autre chose. Pour le faire fonctionner plus rapidement.

 
mukata писал(а) >>

Merci beaucoup pour l'indicateur, j'ai regardé la fonction de démarrage, tout est devenu clair tout de suite.

A propos de la première question :

Dans mon EA par exemple (pas MA, mais c'est aussi une fonction intégrée) :

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
)

Est-ce qu'il va le compter sur chaque ligne ?

Ou dois-je écrire un indicateur, prendre les valeurs de ses tableaux et les comparer, ou autre chose. Pour que ça marche plus vite.

Tout d'abord, il est préférable de calculer les valeurs de la stochastique et de la ligne de signal. Et ensuite les comparer. Je n'aime tout simplement pas ce style. Il en résulte une sorte de cécité. Et il est plus facile de faire une erreur.

If() dans la variante méta-citations fait le calcul complet de l'expression logique. Il serait souhaitable de le rendre aussi simple que possible. C'est juste que if() est l'une des opérations les plus lentes.

Il existe également une notion de "bavardage" sur la barre de zéro. Il peut arriver que le signal soit répété plus d'une fois sur une même barre. Et il peut même ne pas se verrouiller. C'était un faux signal. C'est pourquoi nous essayons de prendre des valeurs à partir des barres formées. Mais dans ce cas, nous devons utiliser les prix d'ouverture. Mais il peut y avoir d'autres variantes.