[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 25

 
プログラマーの皆様へ。初心者の私にはアルゴリズムを書くのは難しいです、編集はできますので、よろしくお願いします。 とてもとてもありがたいです!!!!
このようなシンプルな EA、必要です。

条件1が 満たされている場合
-売りの注文を確認する
-売り注文が開いているかどうかを確認し、それを閉じる。
売りの注文が開かれているかどうかを確認し、開かれている場合は、それを閉じます。
-買い注文を開始する

条件2を 満たした場合も同様です。
-買い注文があるかどうか確認する。
-もしあれば、それらを閉じる
買いの注文があるかどうかを確認し、あれば決済する。
-売り注文を出す
+ エラー解析(メインではないが、可能性はある)
以上、現在の通貨ペアについてでした。

int start()                       
  {
   double M_0, M_1,               // Значение MAIN на 0 и 1 барах
          S_0, S_1;               // Значение SIGNAL на 0 и 1барах
//--------------------------------------------------------------------
                                  // Обращение к функции техн.индикат.
   M_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  0);// 0 бар
   M_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,  1);// 1 бар
   S_0 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);// 0 бар
   S_1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------------
                                  
   if( M_1 < S_1 && M_0 >= S_0 )  // УСЛОВИЕ 1: Зеленая пересекает красную снизу
     
   if( M_1 > S_1 && M_0 <= S_0 )  // УСЛОВИЕ 2: Зеленая пересекает красную сверху
     
//--------------------------------------------------------------------
   return;                            // Выход из start()
  }
 
こんにちは!関数内で複数のグローバル変数に 値を割り当てることが可能かどうか、またその場合、これらの変数はどこで宣言すべきなのか、教えていただけませんか?
 
ideasforlife:
プログラマーの皆様へ。初心者の私にはアルゴリズムを書くのは難しいです、編集はできますので、よろしくお願いします。 とてもとてもありがたいです!!!!
このようなシンプルな EA、必要です。

条件1が 満たされている場合
-売りの注文を確認する
-売り注文が開いているかどうかを確認し、それを閉じる。
売りの注文が開かれているかどうかを確認し、開かれている場合は、それを閉じます。
-買い注文を開始する

条件2を 満たした場合も同様です。
-買い注文があるかどうか確認する。
-もしあれば、それらを閉じる
買いの注文があるかどうかを確認し、あれば決済する。
-売り注文を出す
+ エラー解析(メインではないが、可能性はある)
以上、現在の通貨ペアについてでした。

CodeBaseにはストキャスティクスに関するExpert Advisorが多数 存在します。表示とやり直し
 
ideasforlife:
プログラマーの皆様へ。初心者の私にはアルゴリズムを書くのは難しいです、編集はできますので、よろしくお願いします。 とてもとてもありがたいです!!!!
このようなシンプルな EA、必要です。

条件1が 満たされている場合
-売りの注文を確認する
-売り注文が開いているかどうかを確認し、それを閉じる。
売りの注文が開かれているかどうかを確認し、開かれている場合は、それを閉じます。
-買い注文を開始する

条件2を 満たした場合も同様です。
-買い注文があるかどうか確認する。
-もしあれば、それらを閉じる
買いの注文があるかどうかを確認し、あれば決済する。
-売り注文を出す
+ エラー解析(メインではないが、可能性はある)
現在の通貨ペアは以上です。

そして、さらに簡単なのは、教科書に載っている例、https://book.mql4.com/ru/samples/expert

教科書を隅から隅まで読むのは、そんなに大変なことですか?

 
ideasforlife:
プログラマーの皆様へ。初心者の私にはアルゴリズムを書くのは難しいです、編集はできますので、よろしくお願いします。 とてもとてもありがたいです!!!!
このようなシンプルな EA、必要です。

条件1が 満たされている場合
-売りの注文を確認する
-売り注文が開いているかどうかを確認し、それを閉じる。
売りの注文が開かれているかどうかを確認し、開かれている場合は、それを閉じます。
-買い注文を開始する

条件2を 満たした場合も同様です。
-買い注文があるかどうか確認する。
-もしあれば、それらを閉じる
買いの注文があるかどうかを確認し、あれば決済する。
-売り注文を出す
+ エラー解析(メインではないが、可能性はある)
以上、現在の通貨ペアについてでした。


すぐに使える解決策 - 教科書版では、こちら MACDのすべてを取り上げる -ここと それ...:-Р

P.S. 変数名までほとんど同じです。チュートリアルには、説明とその他が書かれています。:-Р

 
Roman.:


すぐに使える解決策 - 教科書版では、こちら MACDのすべてを取り上げる -ここと それ...:-Р

P.S. 変数名まで実質的に同じなんですね。教科書を読む - 説明も何もかもがある。:-Р

私が先よ!:-P :-P
 
Code:

フォーラムの皆様、こんにちは。

もちろん、新参者からの質問もあります。私は今まで何のプログラムも開発したことがないので、質問は非常に原始的かもしれませんが、mql4を学ぼうとしています。でも、自分ではなかなかできないんです。

ある加工をして棒グラフの代わりに線を引いて出来高を表示することを「ごちゃごちゃ」やってみることにしたんです。コードは次のような意味を持つはずです。前のバーと同じ方向にある2本目のバー(両方とも上)から始めて、2本目のバーからボリュームを描きます。その結果、インジケータウィンドウに折れ線が表示され、確かに2本目のバーから上に描かれているのですが、なぜかすべてのケースでそうなっていません。線が途切れるのは、その描画の他の条件がまったく定義されていないからで、それは未来のものです。しかし、ここで自分は、なぜ2本目のバーごとに上向きに線が引かれないのか、理解することができません。よろしくお願いします。

以下はそのコードです。その他、コードの誤りについてご意見があれば、幸いです。


この指標の意味は何ですか?なぜ全く必要ないのか?


なぜ、そのようなキャラクター設定が必要なのでしょうか。

ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;

あるいはそうなのだが、すでにバレている。

ExtVolumesBuffer[i]=Volume[i]+(Volume[i]+Volume[i+1])/(2-(Close[i]-Open[i+1])*1000);

???


そして、コードの不手際について。あなたのセリフ

double dVolume=Volume[i];
double vback1=Volume[i+1];

         {
         double vteor12=(dVolume+vback1)/2;
            if (Close[i+1]>Open[i+1] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+1])*1000; else UP12=0;
            if (UP12!=0) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12=0;
            if (Close[i+1]>Open[i+1])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]<0) ExtVolumesBuffer[i]=0;
              }

に相当する。

double dVolume=Volume[i];
double vback1=Volume[i+1];

double vteor12=(dVolume+vback1)/2;
if (Close[i+1]>Open[i+1] && Close[i]>Open[i])
{
   double UP12=(Close[i]-Open[i+1])*1000;
   double vrealUP12=(dVolume+vback1)/(Close[i]-Open[i+1])*1000;
   ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
   if (ExtVolumesBuffer[i]<0)
      ExtVolumesBuffer[i]=0;
}
else
{
   UP12=0;
   vrealUP12=0;
}

最適化されたコードを見て、なぜこれほど多くの変数を導入したのだろうと考える。また、なぜ「そうでなければ」ゼロになるのでしょうか?

インジケーターの考え方がわかれば、お役に立てると思います。

 
MaxZ:

この指標に何の意味があるのでしょうか?なぜ必要なのですか?


なぜ、そのような特性が必要なのか。

それとも、すでに公開されているのか?

???


そして、コードの不手際について。あなたのセリフ

が相当します。

最適化されたコードを見て、「そもそも、なんでこんなに変数が入力されているんだろう?また、なぜ「そうでなければ」ゼロになるのでしょうか?

インジケーターの考え方がわかれば、お役に立てるかもしれませんね。


ご回答ありがとうございました。

まさにその特性は、インジケーターの考えそのものです。また、MQLに関する演習も用意しました。ある課題を考え、それをある言語で実装することは、それほど難しいことではないと直感的に理解しました。座ってやってみる。

つまり、2つの一方向のボリュームのある固定された理論上のレベルと実際のレベルを比較するというのが特徴の本質なんです。つまり、2つのボリュームの合計と実際の「開閉」間隔の比率が、指定した理論値よりも高ければ、計算した理論値と実際の結果の差という形で、実際の2番目のボリュームに「ボーナス」を追加するのである。もし、実際のレベルが理論値より低ければ、同じ差を2本目のバーのボリュームから引きます。わかりやすく説明できるかな?

念のため申し上げておきますが、この特性を明らかにする際、おそらく急いでいたのか、括弧の付け方を間違えていますね。

それに、あなたが私と同等だと考えている文字列は、ゼロで割る ことにつながるようです。これからチェックします。

 

みなさん、こんにちは。

このブランチのエキスパート達(特にRoman)の貴重な助力のおかげで、簡単なExpert Advisorを作ることができ、テスターで+を表示することができました。質問:実際の取引に使用できるかどうか、どのように判断するのですか?何か基準はあるのでしょうか?

 
MaxZ:
私が先よ!:-P :-P

全然道が違うじゃないか...。正しい取引基準には全く関係なく、STO-HAS-TO-KEの問題だ・・・。:-Р