[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 130
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
mais il y a un autre code dans l'EA :
Mais il y a un autre code dans l'EA :
mettez par exemple Print("close by CloseMarket ", j) ; dans cette fonction et quelque chose de similaire dans la précédente que vous avez postée . exécutez-la et regardez dans les logs pour voir laquelle de ces impressions apparaît afin d'analyser celle qui se déclenche. ensuite, enregistrez de la même manière les valeurs des variables vérifiées dans les conditions d'exécution de la fermeture et trouvez les raisons de leur déclenchement...
Et qu'est-ce qui vous empêche de placer l'EA sur la fenêtre exacte où vous voulez dessiner ?
Mon EA fonctionne mieux sur M1, car il est meilleur sur M1 et ouvre 1 trade sur l'ouverture de la barre M5, il recharge également si les conditions le permettent. J'utilise également des indicateurs sur la M5 et d'autres TF. Et il est préférable de tester sur M1 à l'ouverture de la barre, alors que sur d'autres TFs avec tous les ticks, les tests sont mauvais.
Je ne dessine pas, je vois juste les résultats des calculs effectués par l'EA et affichés dans somments pour m'assurer que tout est en ordre. Merci de votre attention et de votre aide !
Mon EA fonctionne mieux sur M1, car il trafique mieux sur M1 et ouvre une transaction sur l'ouverture de la barre M5, il recharge également si les conditions le permettent. Et j'utilise des indicateurs sur le M5 et d'autres TF. Et il est préférable de tester sur M1 à l'ouverture de la barre, alors que sur d'autres TFs avec tous les ticks, les tests sont mauvais.
Je ne dessine pas, je vois juste les résultats des calculs effectués par l'EA et affichés dans somments pour m'assurer que tout est en ordre. Merci de votre attention et de votre aide !
Sur M1 et M5, les ticks proviennent de la même source, et vous pouvez utiliser n'importe quel cadre temporel de n'importe quel graphique, il suffit de remplacer Close[] par iClose, etc. Pour mieux le tester, il faut faire de meilleurs fichiers fxt à partir de ticks, voici un exemple, mais en général google, il y a beaucoup d'informations sur ce sujet.
La pratique a montré qu'il est préférable d'ouvrir sur Op et de tester aussi mieux que sur ticks. Je n'aime pas du tout les tiques. Quand la dépo le permettra, je passerai peut-être à un TF plus élevé, qui donnera de meilleurs résultats en un jour. Je ne quitte pas les marchés pour la nuit pour bien dormir. Merci encore !
Print("Close by CloseMarket ", j) ; dans cette fonction et quelque chose de similaire dans la précédente que vous avez postée. Exécutez-la et regardez dans le journal les résultats de ces imprimantes pour analyser celle qui se déclenche. Ensuite, enregistrez de la même manière les valeurs des variables vérifiées dans les conditions de fermeture et trouvez les raisons de leur déclenchement....
La pratique a montré qu'il vaut mieux ouvrir sur Orep et tester mieux, aussi, que sur les tiques. Et je n'aime pas du tout les tiques. Quand la dépo le permettra, je passerai peut-être à une TF plus élevée, ce qui donnera de meilleurs résultats en un jour. Je ne quitte pas les marchés pour la nuit pour bien dormir. Merci encore !
Cher Monsieur le Programmateur ! Je n'arrive pas à tracer une ligne horizontale par la valeur numérique maximale de la fenêtre de l'indicateur MACD.
Code
#propriété indicator_separate_window
#property indicator_buffers 3
#propriété indicator_color1 Lime
#property indicator_color2 Red
//--- tampons
double ExtMapBuffer1[] ;
double ExtMapBuffer2[] ;
double topBuffer[] ;
bool initFinished=false ; // ajouter une variable qui se souviendra de l'état de l'initialisation.
// false - l'initialisation n'a pas encore eu lieu.
// vrai - a été initialisé
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
SetIndexStyle(0,DRAW_LINE) ;
SetIndexBuffer(0,ExtMapBuffer1) ;
SetIndexStyle(1,DRAW_LINE) ;
SetIndexBuffer(1,ExtMapBuffer2) ;
SetIndexStyle(2,DRAW_NONE) ;
SetIndexBuffer(2,topBuffer) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction personnalisée de désinitialisation de l'indicateur |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),
limite ;
si(barres comptées>0)
barres comptées.. ;
limit=Bars-counted_bars ;
//----
for(int i=0;i<limit;i++)
{
ExtMapBuffer1[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i) ;
ExtMapBuffer2[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i) ;
si(initFinished==false)
{
IndicatorShortName("MACD_max-min") ;
int win_idx=WindowFind("MACD_max-min") ;
// trouver le numéro de notre sous-fenêtre d'indicateur
si(win_idx<0)
{
// si le numéro de la sous-fenêtre est -1, il y a une erreur
Print("Fenêtre non trouvée") ;
retour(0) ;
}
double top=WindowPriceMax(win_idx) ;
//Trouver la valeur maximale de l'échelle verticale de la sous-fenêtre spécifiée du graphique actuel.
ObjectCreate("max",OBJ_HLINE,win_idx,0,top) ;
// dessiner une ligne horizontale dans une sous-fenêtre de notre indicateur
ObjectSet("max",OBJPROP_COLOR,Yellow) ;
ObjectSet("max",OBJPROP_WIDTH,0) ;
WindowRedraw() ;
// redessiner la fenêtre pour voir la ligne
initFinished=true ;
// le dessin est terminé
}
topBuffer[i]=top ;
}
//----
retour(0) ;
}
//+------------------------------------------------------------------+
On dirait que dans la ligne
double top=WindowPriceMax(win_idx) ;
La variable supérieure ne reçoit pas de valeur et dans le fichier
ObjectCreate("max",OBJ_HLINE,win_idx,0,top) ;
à la place de celle-ci (c'est-à-dire à la place de la variable top), j'obtiens automatiquement 0 (zéro). J'obtiens donc une ligne zéro dans la fenêtre requise et dans la couleur requise. topBuffer[] est également vide. Si dans cette ligne à la place de la variable top mettre une valeur numérique, la ligne prend cette valeur fixe.Quelque part j'ai une erreur clinique.Aidez à comprendre ! Merci d'avance.
IndicatorShortName devrait être déplacé vers init()