Les traders travaillent avec Excel. C'est comme un "papier de tournesol". S'il ne connaît pas les feuilles de calcul, quel genre de trader est-il ? Comment calcule-t-il les budgets et l'argent ?
Et si le programmeur n'est pas capable de traduire une feuille Excel en un programme MQL, il doit quand même s'entraîner :-)
Yusuf essaie de faire valoir ses arguments (même avec le raisonnement dont je suis en désaccord de principe), mais vous faites une chose encore pire - au lieu d'une aide de base, vous le forcez à apprendre des choses inutiles. Et en même temps, tout le monde sait parfaitement qu'il ne se mettra pas à programmer et ne transférera pas ses formules vers mql. Vous vous moquez et vous prenez des mois, voire des années, à une personne.
Hm, oui, je ne peux pas imaginer comment écrire directement dans une feuille excel - c'est assis par moi-même et démêler l'écheveau - les tableaux sont très étroitement entrelacés - donc il faudra passer du temps pour le comprendre, et pour évaluer le travail devrait également selon le RPT.
De plus, toujours d'après mon expérience, lorsque j'ai réécrit l'algorithme à partir d'Excel, j'ai trouvé des erreurs logiques, car j'ai en plus réfléchi à ce que j'écrivais - c'est souvent pratique de fantasmer dans Excel.
Et d'ailleurs, je recommande de joindre le fichier lui-même.
Je considère donc que vos arguments sur le fait de forcer l'apprentissage inutile sont sans fondement et non fondés.
Si vous en avez les compétences, pourquoi ne pas décrocher et aider la personne en lisant par télépathie le RPT dans sa tête à distance ?
Je suis fatigué de résoudre des énigmes. Faites comme si j'avais fait une capture d'écran sur la première page avec des explications https://www.mql5.com/ru/forum/305148. Pour rendre l'information plus digeste, faites le calcul sur une histoire peu profonde, le moins possible (il sera beaucoup plus facile de vous comprendre). Si vous voulez de l'aide, compressez vos rouleaux de texte, personne ne lira un gros texte, et encore moins ne le comprendra.
Faites une capture d'écran de l'ensemble du tableau calculé.
De préférence un zip du fichier Excel et posez des questions à son sujet. Sinon, cela va durer éternellement. Vous allez finir par torturer Yusuf. Eh bien, il ne peut pas faire ça.
Yuriy Asaulenko: Vous feriez mieux de zipper le fichier excel et de poser des questions à son sujet. Sinon, cela va durer éternellement. Vous allez finir par torturer Yusuf. Eh bien, il ne peut pas faire ça.
Bien convaincu, postez vous-même une capture d'écran, contribuez au développement. Je jetterai un coup d'oeil demain.
Le type de réponse que vous obtiendrez sera le même que celui d'une salutation. Si vous n'avez pas d'informations claires, vous n'obtiendrez aucun résultat.
Yuriy Asaulenko: Il est préférable de zipper le fichier Excel et de poser des questions à son sujet. Sinon, cela va durer éternellement. Vous allez finir par torturer Yusuf. Eh bien, il ne peut pas faire ça.
Oui, sporadiquement, mais je reste convaincu qu'il s'agit d'un mannequin, et que les explosions de rien du tout sont l'instabilité du système lui-même.
Ce mannequin est un simple indicateur MA par exemple, mais il est adapté à votre cas avec quelques simplifications qui ne sont pas optimales en termes de performance, mais moins stressantes pour l'apprentissage.
Pour écrire votre indicateur, il suffit d'écrire le code de calcul dans le corps de la fonction.
void Soltonov(int pos) // основной расчет индикатора бара pos. В массиве X, размерностью 13 находятся значение цены 13 бар, начиная от позиции pos
en ce moment il y a un calcul de MA avec la période 13 sous la forme de 3 lignes.
Pourquoi ai-je pris le 13 par défaut ? Parce que vous avez dit vous-même que vous utilisez 13 valeurs de prix pour le calcul en ce moment.
Ces 13 valeurs sont situées dans un tableau X (X[0] à X[12])
Il suffit d'effectuer le calcul de ces 13 valeurs dans le corps de cette fonction et d'écrire la valeur dans le tampon indicateur SoltonovBuffer[pos]. L'ensemble de l'indicateur sera formé automatiquement.
//+------------------------------------------------------------------+//| Soltunov.mq5 |//| Copyright 2018, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2018, MetaQuotes Software Corp."#property link"https://www.mql5.com/ru/users/yosuf"#property version"1.00"#property indicator_chart_window#property indicator_buffers1#property indicator_plots1//--- plot Soltonov#property indicator_label1"Soltonov"#property indicator_type1DRAW_LINE#property indicator_color1clrMagenta#property indicator_style1STYLE_SOLID#property indicator_width11//--- indicator buffersdouble SoltonovBuffer[]; // это буфер линии индикатораdouble X[]; // это вспомогательный массив для значений цены//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingSetIndexBuffer(0,SoltonovBuffer,INDICATOR_DATA);
ArrayResize(X,13); // задаем размер динамического массива X - 13ArraySetAsSeries(X,true); // для удобства обучения устанавливаем индексацию массива как в таймсерииArraySetAsSeries(SoltonovBuffer,true); // для удобства обучения устанавливаем индексацию массива как в таймсерииArrayInitialize(SoltonovBuffer,EMPTY_VALUE); // инициализируем буфер индикатора пустыми значениями//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constint begin,
constdouble &price[])
{
int N=rates_total-prev_calculated;
if(N>1 && rates_total>12) // если осуществляем первый вход или была задержка больше времени одного бара, выполняем инициализацию всех баров
{
for(int i=rates_total-1; i>11; i--)
{
ArrayCopy(X,price,0,i-12,13);
Soltonov(rates_total-1-i);
}
ArrayCopy(X,price,0,rates_total-13,13);
return(rates_total);
}
elseif(N==1) ArrayCopy(X,price,0,rates_total-13,13); // если новый барelse X[0]=price[rates_total-1]; // если новый тик без образования нового бара
Soltonov(0);
return(rates_total);
}
//+------------------------------------------------------------------+// Писать код в этой функции!//+------------------------------------------------------------------+void Soltonov(int pos) // основной расчет индикатора бара pos. В массиве X, размерностью 13 находятся значение цены 13 бар, начиная от позиции pos// X[0]- значение цены бара с номером pos// X[1]- значение цены бара с номером pos+1// ....// X[12]- значение цены бара с номером pos+12
{
double Sum=0; // создаем переменную для подсчета суммы баровfor(int i=0;i<13;i++) Sum = Sum+X[i]; // суммируем 13 баров
SoltonovBuffer[pos]=Sum/13; // помещаем в значение индикаторного буфера среднее арифметическое 13 цен
}
//+------------------------------------------------------------------+
Depuis MT5, appuyez sur F4 et accédez à ME (MetaEditor). Ici vous créez un indicateur personnalisé (Ctrl+N), spécifiez un nom pendant la création, par exemple"Soltunov" (le mien est celui par défaut). Quand le code est généré, remplacez tout ce code par le mien.
Et commencez à maîtriser la programmation.
Je vous conseille de paramétrer la barre maximale de la fenêtre dans les paramètres de MT5 pour qu'elle ne soit pas très grande (5000 est suffisant).
Vous n'avez pas besoin de lire de livres pour maîtriser le langage MQL5. Il suffit d'utiliser l'aide en appuyant sur la touche F1, en cliquant d'abord sur la fonction ou le mot qui vous intéresse. Utilisez également la fonction de recherche de l'aide.
voir le gif animé (cliquez sur l'image) :
Je recommande aussi vivement de maîtriser immédiatement le débogueur intégré de ME avec des paramètres de points d'interruption pour avancer dans le programme avec la possibilité d'observer les changements de variables.
Voir aussi le gif animé.
Bonne chance, Yusuf ! Si vous avez des questions, si la méthode des règles empiriques ne vous aide pas, n'hésitez pas à demander.
Les traders travaillent avec Excel. C'est comme un "papier de tournesol". S'il ne connaît pas les feuilles de calcul, quel genre de trader est-il ? Comment calcule-t-il les budgets et l'argent ?
Et si le programmeur n'est pas capable de traduire une feuille Excel en un programme MQL, il doit quand même s'entraîner :-)
Yusuf essaie de faire valoir ses arguments (même avec le raisonnement dont je suis en désaccord de principe), mais vous faites une chose encore pire - au lieu d'une aide de base, vous le forcez à apprendre des choses inutiles. Et en même temps, tout le monde sait parfaitement qu'il ne se mettra pas à programmer et ne transférera pas ses formules vers mql. Vous vous moquez et vous prenez des mois, voire des années, à une personne.
Hm, oui, je ne peux pas imaginer comment écrire directement dans une feuille excel - c'est assis par moi-même et démêler l'écheveau - les tableaux sont très étroitement entrelacés - donc il faudra passer du temps pour le comprendre, et pour évaluer le travail devrait également selon le RPT.
De plus, toujours d'après mon expérience, lorsque j'ai réécrit l'algorithme à partir d'Excel, j'ai trouvé des erreurs logiques, car j'ai en plus réfléchi à ce que j'écrivais - c'est souvent pratique de fantasmer dans Excel.
Et d'ailleurs, je recommande de joindre le fichier lui-même.
Je considère donc que vos arguments sur le fait de forcer l'apprentissage inutile sont sans fondement et non fondés.
Si vous en avez les compétences, pourquoi ne pas décrocher et aider la personne en lisant par télépathie le RPT dans sa tête à distance ?
Je suis fatigué de résoudre des énigmes. Faites comme si j'avais fait une capture d'écran sur la première page avec des explications https://www.mql5.com/ru/forum/305148. Pour rendre l'information plus digeste, faites le calcul sur une histoire peu profonde, le moins possible (il sera beaucoup plus facile de vous comprendre). Si vous voulez de l'aide, compressez vos rouleaux de texte, personne ne lira un gros texte, et encore moins ne le comprendra.
Les premières valeurs de la série décalée sont les suivantes :
1.1376 1.1377 1.1375 1.1361 1.1358
comme vous l'avez :
x1 x2 x3 x4 y
1.1376 1.1376 1.1377 1.1375 1.1361
Donc x1 et x2 sont la même ligne ? Qu'est-il arrivé au CD5, qui commence à1,1358 ?Corrigé
Faites une capture d'écran de l'ensemble du tableau calculé.
Faites une capture d'écran de l'ensemble du tableau calculé.
Vous feriez mieux de zipper le fichier excel et de poser des questions à son sujet. Sinon, cela va durer éternellement. Vous allez finir par torturer Yusuf. Eh bien, il ne peut pas faire ça.
Bien convaincu, postez vous-même une capture d'écran, contribuez au développement. Je jetterai un coup d'oeil demain.
Le type de réponse que vous obtiendrez sera le même que celui d'une salutation. Si vous n'avez pas d'informations claires, vous n'obtiendrez aucun résultat.
Faites une capture d'écran de l'ensemble du tableau calculé.
Ne vous inquiétez pas, le programme est maintenant entièrement corrigé.
Il est préférable de zipper le fichier Excel et de poser des questions à son sujet. Sinon, cela va durer éternellement. Vous allez finir par torturer Yusuf. Eh bien, il ne peut pas faire ça.
Yuri, vous suivez aussi en ligne ?
Yuri, vous suivez aussi en ligne ?
Voici donc l'indicateur fictif.
Ce mannequin est un simple indicateur MA par exemple, mais il est adapté à votre cas avec quelques simplifications qui ne sont pas optimales en termes de performance, mais moins stressantes pour l'apprentissage.
Pour écrire votre indicateur, il suffit d'écrire le code de calcul dans le corps de la fonction.
en ce moment il y a un calcul de MA avec la période 13 sous la forme de 3 lignes.
Pourquoi ai-je pris le 13 par défaut ? Parce que vous avez dit vous-même que vous utilisez 13 valeurs de prix pour le calcul en ce moment.
Ces 13 valeurs sont situées dans un tableau X (X[0] à X[12])
Il suffit d'effectuer le calcul de ces 13 valeurs dans le corps de cette fonction et d'écrire la valeur dans le tampon indicateur SoltonovBuffer[pos]. L'ensemble de l'indicateur sera formé automatiquement.
Depuis MT5, appuyez sur F4 et accédez à ME (MetaEditor). Ici vous créez un indicateur personnalisé (Ctrl+N), spécifiez un nom pendant la création, par exemple"Soltunov" (le mien est celui par défaut). Quand le code est généré, remplacez tout ce code par le mien.
Et commencez à maîtriser la programmation.
Je vous conseille de paramétrer la barre maximale de la fenêtre dans les paramètres de MT5 pour qu'elle ne soit pas très grande (5000 est suffisant).
Vous n'avez pas besoin de lire de livres pour maîtriser le langage MQL5. Il suffit d'utiliser l'aide en appuyant sur la touche F1, en cliquant d'abord sur la fonction ou le mot qui vous intéresse. Utilisez également la fonction de recherche de l'aide.
voir le gif animé (cliquez sur l'image) :
Je recommande aussi vivement de maîtriser immédiatement le débogueur intégré de ME avec des paramètres de points d'interruption pour avancer dans le programme avec la possibilité d'observer les changements de variables.
Voir aussi le gif animé.
Bonne chance, Yusuf !
Si vous avez des questions, si la méthode des règles empiriques ne vous aide pas, n'hésitez pas à demander.
Je pense que le monde entier va vous aider.