Effectuez un seul test - un seul passage. Pas d'optimisation, mais une seule passe. De cette façon, vous pouvez voir le journal à coup sûr.
Qu'est-ce que tu veux dire, visuel ? Eh bien, j'ai le journal. Je n'y vois rien de mal. Les paramètres sont tous passés. Même si ça a marché, le rendement est toujours de 20 000.
Qu'est-ce que tu veux dire, visuel ? Eh bien, j'ai le journal. Je ne vois rien de mal à cela. Les paramètres sont tous passés. Même si elle a été exécutée, la balance de sortie était de 20000 et l'est toujours.
Modifiez donc le code de manière à ce qu'il affiche desmessages d' erreur en cas d'erreur ou si l'opération commerciale ne peut être effectuée. Ou en général, le code est erroné et ne donne pas de signaux. Les miracles ne se produisent pas.
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) Недопустимый возвращаемый тип. Например, такая ошибка будет выдана для функций, импортированных из...
Modifiez donc le code de façon à ce qu'il donne desmessages d' erreur lorsque des erreurs se produisent ou si la transaction ne peut être exécutée. Ou si le code est défectueux et ne donne aucun signal. Il n'y a pas de miracles.
Ouais.
L'optimisation n'est donc pas incluse à Ontick. OnInit est en cours de traitement. Mais On-Tick n'est pas généré. Voici le problème.
J'ai intégré des points d'impression ( ) dans les entrées et les sorties, mais seul Init est écrit dans le journal.
P.S.
Je gère les erreurs. La force de l'habitude. J'écris des programmes depuis 1987.
Sans le code, seuls les télépathes peuvent aider - et maintenant, comme par hasard, tous les télépathes sont en vacances.
J'ai trouvé la raison. Pour une raison quelconque, les indicateurs ne sont pas recalculés dans Ontick (il ne donne pas le nombre de barres recalculées). Peut-être que je dois mettre à jour les citations.
J'ai néanmoins perdu mes remerciements. Je suis devenu plus intelligent. J'ai appris où les journaux sont écrits.
J'ai converti un indicateur simple de MQL4 -> MQL5, mais aucun signal sur les dernières barres. Veuillez m'aider à trouver la raison. Le code source et le résultat sont en pièce jointe. Je vais également coller ici la version convertie.
#property indicator_chart_window#property indicator_plots4#property indicator_buffers4#property indicator_color1 PaleVioletRed
#property indicator_color2 DeepSkyBlue
#property indicator_color3 Red
#property indicator_color4 LimeGreen
inputint dist2 = 21; // Distance#2inputint dist1 = 14; // Distance#1double b1[];
double b2[];
double b3[];
double b4[];
int handle_atr;
int min_rates_total;
double atr[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit() {
SetIndexBuffer(0,b1,INDICATOR_DATA);
SetIndexBuffer(1,b2,INDICATOR_DATA);
SetIndexBuffer(2,b3,INDICATOR_DATA);
SetIndexBuffer(3,b4,INDICATOR_DATA);
ArraySetAsSeries(b1,true);
ArraySetAsSeries(b2,true);
ArraySetAsSeries(b3,true);
ArraySetAsSeries(b4,true);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_ARROW);
PlotIndexSetInteger(3,PLOT_DRAW_TYPE,DRAW_ARROW);
PlotIndexSetInteger(2,PLOT_ARROW,159);
PlotIndexSetInteger(3,PLOT_ARROW,159);
ResetLastError();
handle_atr = iATR(NULL,PERIOD_CURRENT,50);
if(handle_atr==INVALID_HANDLE) {
Print(" *** ATR handle was unable to create. Error ",GetLastError());
returnINIT_FAILED;
}
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetString(0,PLOT_LABEL,"SuperSignals Upper");
PlotIndexSetString(1,PLOT_LABEL,"SuperSignals Lower");
PlotIndexSetString(2,PLOT_LABEL,"SuperSignals Sell");
PlotIndexSetString(3,PLOT_LABEL,"SuperSignals Buy");
returnINIT_SUCCEEDED;
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &High[],
constdouble &Low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[]) {
int counted_bars=prev_calculated;
int i,limit;
ArraySetAsSeries(Low,true);
ArraySetAsSeries(High,true);
if(counted_bars<0) return0;
if(counted_bars>0) counted_bars--;
limit=rates_total-counted_bars;
limit=MathMax(limit,dist1);
limit=MathMax(limit,dist2);
for (i = limit-1; i >= 0; i--) {
int hhb1 = ArrayMaximum(High,i-dist1/2,dist1);
int llb1 = ArrayMinimum(Low, i-dist1/2,dist1);
int hhb = ArrayMaximum(High,MathMax(0,i-dist2/2),dist2);
int llb = ArrayMinimum(Low, MathMax(0,i-dist2/2),dist2);
b1[i] = EMPTY_VALUE;
b2[i] = EMPTY_VALUE;
b3[i] = EMPTY_VALUE;
b4[i] = EMPTY_VALUE;
ArraySetAsSeries(atr,true);
int copied=CopyBuffer(handle_atr,0,0,limit,atr);
if (copied<=0) Print(" *** ATR failed to copy.");
double tr = atr[i];
b1[i] = High[hhb];
b2[i] = Low[llb];
if (i==hhb1) b3[i] = High[hhb1]+tr/2;
if (i==llb1) b4[i] = Low[llb1] -tr/2;
}
return rates_total;
}
//+------------------------------------------------------------------+
J'ai converti un indicateur simple de MQL4 -> MQL5, mais aucun signal sur les dernières barres. Veuillez m'aider à trouver la raison. Le code source et le résultat sont en pièce jointe. Je vais également coller ici la version convertie.
Le résultat.
Le coupable peut être quelque chose qui ne se fait pas logiquement entre les plateformes
Veuillez prêter attention aux différents paramètres d'entrée
MT4
ArrayMaximum
Ищет в одномерном числовом массиве максимальный элемент.
intArrayMaximum(
constvoid& array[], // массив для поискаint count=WHOLE_ARRAY, // количество проверяемыхint start=0// с какого индекса начинаем поиск
);
MT5
ArrayMaximum
Ищет максимальный элемент в первом измерении многомерного числового массива.
intArrayMaximum(
constvoid& array[], // массив для поискаint start=0, // с какого индекса начинаем поискint count=WHOLE_ARRAY// количество проверяемых
);
Le coupable pourrait être quelque chose qui n'est pas fait logiquement entre les plateformes.
Notez les différents paramètres d'entrée
MT4
MT5
Merci Vitaliy.
L'ordre des variables à cet endroit est correct. Je les ai intervertis pendant la conversion. Les fonctions iHighest / iLowest étaient également présentes dans MQL4.
C'est autre chose. Je me suis déjà creusé les méninges.
L'optimisation est effectuée par des AGENTS (dans votre cas, des AGENTS LOCAUX).
Pour afficher les journaux de l'agent local : cliquez avec le bouton droit de la souris sur l'onglet Journal et allez dans le dossier de l'agent.
C'est ça le truc, il n'y a pas d'erreurs. Tout est vérifié. Il y a peut-être un pare-feu ou autre.
C'est ça le truc, il n'y a pas d'erreurs. Tout compte. Il y a peut-être des pare-feu ou autre ?
Effectuez un seul test, un seul passage. Pas d'optimisation, juste un seul passage. Vous serez en mesure de voir le journal de cette façon.
Effectuez un seul test - un seul passage. Pas d'optimisation, mais une seule passe. De cette façon, vous pouvez voir le journal à coup sûr.
Qu'est-ce que tu veux dire, visuel ? Eh bien, j'ai le journal. Je n'y vois rien de mal. Les paramètres sont tous passés. Même si ça a marché, le rendement est toujours de 20 000.
Qu'est-ce que tu veux dire, visuel ? Eh bien, j'ai le journal. Je ne vois rien de mal à cela. Les paramètres sont tous passés. Même si elle a été exécutée, la balance de sortie était de 20000 et l'est toujours.
Modifiez donc le code de manière à ce qu'il affiche desmessages d' erreur en cas d'erreur ou si l'opération commerciale ne peut être effectuée. Ou en général, le code est erroné et ne donne pas de signaux. Les miracles ne se produisent pas.
Modifiez donc le code de façon à ce qu'il donne desmessages d' erreur lorsque des erreurs se produisent ou si la transaction ne peut être exécutée. Ou si le code est défectueux et ne donne aucun signal. Il n'y a pas de miracles.
Ouais.
L'optimisation n'est donc pas incluse à Ontick. OnInit est en cours de traitement. Mais On-Tick n'est pas généré. Voici le problème.
J'ai intégré des points d'impression ( ) dans les entrées et les sorties, mais seul Init est écrit dans le journal.
P.S.
Je gère les erreurs. La force de l'habitude. J'écris des programmes depuis 1987.
Ouais.
En général, l'optimisation n'est pas incluse dans Ontick. OnInit est traité. Mais On Tick n'est pas généré. Le problème.
J'ai intégré des points d'impression ( ) dans les entrées et les sorties, mais seul Init est écrit dans le journal.
P.S.
Je gère les erreurs. La force de l'habitude. J'écris des programmes depuis 1987.
Seuls les télépathes pourront aider sans le code - et maintenant tous les télépathes sont en vacances, c'est dommage.
Sans le code, seuls les télépathes peuvent aider - et maintenant, comme par hasard, tous les télépathes sont en vacances.
J'ai trouvé la raison. Pour une raison quelconque, les indicateurs ne sont pas recalculés dans Ontick (il ne donne pas le nombre de barres recalculées). Peut-être que je dois mettre à jour les citations.
J'ai néanmoins perdu mes remerciements. Je suis devenu plus intelligent. J'ai appris où les journaux sont écrits.
J'ai converti un indicateur simple de MQL4 -> MQL5, mais aucun signal sur les dernières barres. Veuillez m'aider à trouver la raison. Le code source et le résultat sont en pièce jointe. Je vais également coller ici la version convertie.
Le résultat.
J'ai converti un indicateur simple de MQL4 -> MQL5, mais aucun signal sur les dernières barres. Veuillez m'aider à trouver la raison. Le code source et le résultat sont en pièce jointe. Je vais également coller ici la version convertie.
Le résultat.
Le coupable peut être quelque chose qui ne se fait pas logiquement entre les plateformes
Veuillez prêter attention aux différents paramètres d'entrée
MT4
MT5
Le coupable pourrait être quelque chose qui n'est pas fait logiquement entre les plateformes.
Notez les différents paramètres d'entrée
MT4
MT5
Merci Vitaliy.
L'ordre des variables à cet endroit est correct. Je les ai intervertis pendant la conversion. Les fonctions iHighest / iLowest étaient également présentes dans MQL4.
C'est autre chose. Je me suis déjà creusé les méninges.