スルトノフ・システム・インディケーター - ページ 25

 
Maxim Kuznetsov:

トレーダーはExcelで仕事をする。まるで「リトマス紙」のようです。スプレッドシートを使いこなせないとしたら、一体どんなトレーダーなんだろう?予算やお金の計算をどうするのか?

また、プログラマーがExcelシートをMQLプログラムに変換することができなくても、練習する必要があります:-)

Yusufは自分の主張を通そうとしています(私が原理的に同意できない理由でも)。しかし、あなたはさらに悪いことをしています。基本的な助けの代わりに、不必要なことを学ぶことを彼に強いているのです。そして同時に、彼がプログラミングを始めず、数式をmqlに移さないことも、誰もが知っていることである。ただコケにして、数ヶ月、数年単位で奪っていくんですね。

フム、はい、私はExcelシートに直接書き込む方法を想像することはできません - それは自分自身で座っているともつれを解く - テーブルは非常に複雑に絡み合っている - ので、それを把握するために時間を費やす必要があり、仕事を評価することもTORによるとする必要があります。

また、これも私の経験ですが、Excelからアルゴリズムを書き直したとき、論理的な間違いが見つかりました。

それに、ファイルそのものを添付するのもおすすめです。

ですから、学習を強制的に不要にするというあなたの主張は、根拠がなく無根拠なものだと考えています。

もしスキルがあるのなら、離れた場所にいるその人の頭からTORをテレパシーで読み取って助けてあげたらどうでしょう。

 

パズルを解くのはもう飽きた。最初のページにスクリーンショットで解説をしたようにするhttps://www.mql5.com/ru/forum/305148. 情報を消化しやすくするために、計算は浅い話、少ない方がいい(あなたのことを理解するのがずっと楽になる)。助けて欲しいなら、巻物のテキストを圧縮してください。大きなテキストは誰も読まないし、ましてや理解することはできないでしょう。

Расчет коэффициентов
Расчет коэффициентов
  • 2019.02.28
  • www.mql5.com
Нужно погонать коэффициенты к 1-7 следующим образом: A1*k1+B1*k2=I1 A2*k1+B2*k2=I2 A3*k1+B3*k2+C3*k3=I3 A4*k1+B4*k2+C4*k3+D4*k4=I4 и так далее...
 

シフトしたシリーズの最初の値は以下の通りです。

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はどうなったのでしょうか?
 
Yousufkhodja Sultonov:

修正済み

計算された表全体のスクリーンショットを撮る。

 
forexman77:

計算された表全体のスクリーンショットを撮る。

できればExcelファイルのZIPを用意して、それについて質問してください。そうでないと、いつまでもこの状態が続くことになります。ユセフを拷問することになる。まあ、そんなことはできないんですけどね。
 
Yuriy Asaulenko:
エクセルファイルをzipで圧縮して質問した方が良いよ。そうでないと、いつまでもこの状態が続くことになります。ユセフを拷問することになる。まあ、そんなことはできないんですけどね。

ぜひ、スクリーンショットを投稿して、開発に貢献してください。明日、見てみます。

どんな答え方をすれば、挨拶と同じになるのか。明確な情報がなければ、結果は出ません。

 
forexman77:

計算された表全体のスクリーンショットを撮る。

プログラムは完全に修正されていますので、ご安心ください。

 
Yuriy Asaulenko:
ExcelファイルをZIPで圧縮して質問した方が良い。そうでないと、いつまでもこの状態が続くことになります。ユセフを拷問することになる。まあ、そんなことはできないんですけどね。

Yuriさんは、オンラインでもフォローされているのでしょうか?

 
Yousufkhodja Sultonov:

Yuriさんは、オンラインでもフォローされているのでしょうか?

そうですね、散発的にですが、やはり何でもないことで、何でもないところからの爆発はシステム自体の不安定さだと確信しています。
 
Yousufkhodja Sultonov:

そこで、ダミーのインジケーターをご紹介します。

このダミーは、例えば単純なMAインジケーターですが、性能的には最適とは言えないものの、学習上のストレスが少ないように、いくつかの簡略化をして、お客様のケースに合わせたものです。

インジケータを作成するには、関数本体に計算コードを記述するだけです。

void Soltonov(int pos) // основной расчет индикатора бара pos. В массиве X, размерностью 13 находятся значение цены 13 бар, начиная от позиции pos

現在、3行の形で周期13のMAの計算があります。

なぜデフォルトで13を取ったのか?なぜなら、現時点では13の価格値を使って計算しているとご自身でおっしゃっていたからです。

この13個の値は、配列X(X[0]〜X[12])に配置される

この13個の値の計算をこの関数本体で行い、その値をインジケータバッファSoltonovBuffer[pos]に書き込むだけです。インジケーター全体が自動的に形成されます。

//+------------------------------------------------------------------+
//|                                                     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_buffers 1
#property indicator_plots   1
//--- plot Soltonov
#property indicator_label1  "Soltonov"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrMagenta
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

//--- indicator buffers
double         SoltonovBuffer[]; // это буфер линии индикатора
double         X[];              // это вспомогательный массив для значений цены
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,SoltonovBuffer,INDICATOR_DATA);  
   ArrayResize(X,13);                      // задаем размер динамического массива X - 13
   ArraySetAsSeries(X,true);               // для удобства обучения устанавливаем индексацию массива как в таймсерии
   ArraySetAsSeries(SoltonovBuffer,true);  // для удобства обучения устанавливаем индексацию массива как в таймсерии
   ArrayInitialize(SoltonovBuffer,EMPTY_VALUE); // инициализируем буфер индикатора пустыми значениями

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &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);
     }
   else if(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 цен
  }
//+------------------------------------------------------------------+

MT5からF4キーを押してME(MetaEditor)を表示させます。ここでは、カスタムインディケータを作成します(Ctrl+N)。作成時に、例えば"Soltunov"などの名前を指定します(私のはデフォルトのものです)。コードが生成されたら、このコードをすべて私のダミーに置き換えてください。

そして、プログラミングをマスターすることから始めましょう。

MT5の設定で、ウィンドウ内の最大バーをあまり大きくないものにあらかじめ設定しておくことをお勧めします(5000もあれば十分です)。

MQL5言語をマスターするために、本を読む必要はありません。F1キーを押しながら、気になる機能や単語をクリックして、ヘルプを利用すればよいのです。また、ヘルプの検索機能もご利用ください。

は、アニメーションGIFをご覧ください(画像をクリックしてください)。


また、MEの内蔵デバッガを割り込みポイント設定ですぐに使いこなし、変数の変化を観察しながらプログラムをステップアップしていくことを強くお勧めします。

アニメーションGIFもご覧ください。


ユスフさん、頑張ってください。
もし、疑問があれば、経験則の方法が役に立たなければ、遠慮なく質問してください。

世界中があなたを助けると思います。

ファイル:
Soltonov.mq5  8 kb