//+------------------------------------------------------------------+//| 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 цен
}
//+------------------------------------------------------------------+
トレーダーはExcelで仕事をする。まるで「リトマス紙」のようです。スプレッドシートを使いこなせないとしたら、一体どんなトレーダーなんだろう?予算やお金の計算をどうするのか?
また、プログラマーがExcelシートをMQLプログラムに変換することができなくても、練習する必要があります:-)
Yusufは自分の主張を通そうとしています(私が原理的に同意できない理由でも)。しかし、あなたはさらに悪いことをしています。基本的な助けの代わりに、不必要なことを学ぶことを彼に強いているのです。そして同時に、彼がプログラミングを始めず、数式をmqlに移さないことも、誰もが知っていることである。ただコケにして、数ヶ月、数年単位で奪っていくんですね。
フム、はい、私はExcelシートに直接書き込む方法を想像することはできません - それは自分自身で座っているともつれを解く - テーブルは非常に複雑に絡み合っている - ので、それを把握するために時間を費やす必要があり、仕事を評価することもTORによるとする必要があります。
また、これも私の経験ですが、Excelからアルゴリズムを書き直したとき、論理的な間違いが見つかりました。
それに、ファイルそのものを添付するのもおすすめです。
ですから、学習を強制的に不要にするというあなたの主張は、根拠がなく無根拠なものだと考えています。
もしスキルがあるのなら、離れた場所にいるその人の頭からTORをテレパシーで読み取って助けてあげたらどうでしょう。
パズルを解くのはもう飽きた。最初のページにスクリーンショットで解説をしたようにするhttps://www.mql5.com/ru/forum/305148. 情報を消化しやすくするために、計算は浅い話、少ない方がいい(あなたのことを理解するのがずっと楽になる)。助けて欲しいなら、巻物のテキストを圧縮してください。大きなテキストは誰も読まないし、ましてや理解することはできないでしょう。
シフトしたシリーズの最初の値は以下の通りです。
1.1376 1.1377 1.1375 1.1361 1.1358
をお持ちの方はご覧ください。
x1 x2 x3 x4 y
1.1376 1.1376 1.1377 1.1375 1.1361
x1とx2は同じ列なんですね。1.1358から 始まるCD5はどうなったのでしょうか?修正済み
計算された表全体のスクリーンショットを撮る。
計算された表全体のスクリーンショットを撮る。
エクセルファイルをzipで圧縮して質問した方が良いよ。そうでないと、いつまでもこの状態が続くことになります。ユセフを拷問することになる。まあ、そんなことはできないんですけどね。
ぜひ、スクリーンショットを投稿して、開発に貢献してください。明日、見てみます。
どんな答え方をすれば、挨拶と同じになるのか。明確な情報がなければ、結果は出ません。
計算された表全体のスクリーンショットを撮る。
プログラムは完全に修正されていますので、ご安心ください。
ExcelファイルをZIPで圧縮して質問した方が良い。そうでないと、いつまでもこの状態が続くことになります。ユセフを拷問することになる。まあ、そんなことはできないんですけどね。
Yuriさんは、オンラインでもフォローされているのでしょうか?
Yuriさんは、オンラインでもフォローされているのでしょうか?
そこで、ダミーのインジケーターをご紹介します。
このダミーは、例えば単純なMAインジケーターですが、性能的には最適とは言えないものの、学習上のストレスが少ないように、いくつかの簡略化をして、お客様のケースに合わせたものです。
インジケータを作成するには、関数本体に計算コードを記述するだけです。
現在、3行の形で周期13のMAの計算があります。
なぜデフォルトで13を取ったのか?なぜなら、現時点では13の価格値を使って計算しているとご自身でおっしゃっていたからです。
この13個の値は、配列X(X[0]〜X[12])に配置される
この13個の値の計算をこの関数本体で行い、その値をインジケータバッファSoltonovBuffer[pos]に書き込むだけです。インジケーター全体が自動的に形成されます。
MT5からF4キーを押してME(MetaEditor)を表示させます。ここでは、カスタムインディケータを作成します(Ctrl+N)。作成時に、例えば"Soltunov"などの名前を指定します(私のはデフォルトのものです)。コードが生成されたら、このコードをすべて私のダミーに置き換えてください。
そして、プログラミングをマスターすることから始めましょう。
MT5の設定で、ウィンドウ内の最大バーをあまり大きくないものにあらかじめ設定しておくことをお勧めします(5000もあれば十分です)。
MQL5言語をマスターするために、本を読む必要はありません。F1キーを押しながら、気になる機能や単語をクリックして、ヘルプを利用すればよいのです。また、ヘルプの検索機能もご利用ください。
は、アニメーションGIFをご覧ください(画像をクリックしてください)。
また、MEの内蔵デバッガを割り込みポイント設定ですぐに使いこなし、変数の変化を観察しながらプログラムをステップアップしていくことを強くお勧めします。
アニメーションGIFもご覧ください。
ユスフさん、頑張ってください。
もし、疑問があれば、経験則の方法が役に立たなければ、遠慮なく質問してください。
世界中があなたを助けると思います。