MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1513

 
frank2020:

私はプログラミングの初心者で、あまり得意ではありませんが、それをやり直して、ダウンロードできるようにしてくれませんか?

これがダウンロードです。
 
MakarFX:
ダウンロードして ください。
ご回答ありがとうございます。ダウンロードしましたが、何も変わりません。 チャンネルは、短いセグメントではなく、グラフの全履歴にしたかったのですが?
 
frank2020:
ご返信ありがとうございます。
MQL5がわからない
 
Igor Makanu:

リマインドしたい場合は、OnChartEvent()でカスタムイベントを 投げる方が便利だと思います。

という感じで、ターミナル内のどのチャート間のイベントも

 
Ctrl+N
 

こんにちは。2つのMAをクロスした後のAccelerator Oscillatorの バンドの計算をどのようにコード化するのかがわかりません。2番目のバンドを閉じた後(MAをクロスした後)3番目のバンドに垂直線を入れる必要があります。おそらく、参考書を勉強するために送られてくるのだろうと理解しています。でも、もしかしたら解決策くらいは提案してくれるかもしれませんね。ご協力をお願いします。

void OnTick()
  {
      //обновлять данные всех индикаторов раз в период
   if(Update_Time != iTime(NULL,0,0))
     {
      Update_Time = iTime(NULL,0,0); //перезаписываем значение переменной для хранения времени текущей свечи

      //импорт данных индикатора Moving Averages.
      double FastMA_1 = iMA(NULL,0,FastMA,0,FastMA_method,PRICE_CLOSE,1);
      double FastMA_2 = iMA(NULL,0,FastMA,0,FastMA_method,PRICE_CLOSE,2);
      double SlowMA_1 = iMA(NULL,0,SlowMA,0,SlowMA_method,PRICE_CLOSE,1);
      double SlowMA_2 = iMA(NULL,0,SlowMA,0,SlowMA_method,PRICE_CLOSE,2);
      double   ac     = iAC(NULL,0,1);
      
         //---FastMA_1 выше SlowMA_1, т.е. произошло пересечение снизу вверх
                 
      if(FastMA_1 > SlowMA_1 && FastMA_2 <= SlowMA_2)
        {

//---Не пойму как сделать подсчет полос в iAC после пересечения МА...         
         if((ac[2]>0.0) && (ac[1]>ac[2]))
           {
             VLineCreate(0,"VLine",0,0,clrRed,STYLE_SOLID,1,false,true,true,0); 
           }
        }
     }
  }

視覚的に表現するために、チャートのスクリーンショットを添付しました。

ファイル:
 
DYM:

こんにちは。2つのMAをクロスした後のAccelerator Oscillatorの バンドの計算をどのようにコード化するのかがわかりません。2番目のバンドを閉じた後(MAをクロスした後)3番目のバンドに垂直線を入れる必要があります。おそらく、参考書を勉強するために送られてくるのだろうと理解しています。でも、もしかしたら解決策くらいは提案してくれるかもしれませんね。ご協力をお願いします。

視覚的に表現するために、チャートのスクリーンショットを添付しました。

double   ac1     = iAC(NULL,0,1);

double   ac2     = iAC(NULL,0,2);
 
DYM:

こんにちは。2つのMAをクロスした後のAccelerator Oscillatorの バンドの計算をどのようにコード化するのかがわかりません。2番目のバンドを閉じた後(MAをクロスした後)3番目のバンドに垂直線を入れる必要があります。おそらく、参考書を勉強するために送られてくるのだろうと理解しています。でも、もしかしたら解決策くらいは提案してくれるかもしれませんね。ご協力をお願いします。

視覚的に表現するために、チャートのスクリーンショットを添付しました。

MAクロスを1,2小節ではなく、3,4小節で確認する。また、クロスオーバーの場合は、1本と2本のバーのAO値を確認します。

 

ありがとうございました。大変だったけど、整理できたと思う。こんな感じです。

void OnTick()
  {


      //импорт данных индикатора Moving Averages.
      double FastMA_1 = iMA(NULL,0,FastMA,0,0,PRICE_CLOSE,1);
      double FastMA_2 = iMA(NULL,0,FastMA,0,0,PRICE_CLOSE,2);
      double SlowMA_1 = iMA(NULL,0,SlowMA,0,0,PRICE_CLOSE,1);
      double SlowMA_2 = iMA(NULL,0,SlowMA,0,0,PRICE_CLOSE,2);
      double   ac     = iAC(NULL,0,0);
      double   ac1     = iAC(NULL,0,1);
      double   ac2     = iAC(NULL,0,2);
      
      
      
         //---Быстрая скользящая средняя (меньше периода) на первой свече выше медленной, т.е. произошло пересечение снизу вверх
      if(FastMA_1 > SlowMA_1 && FastMA_2 <= SlowMA_2)
        {
         
         if((ac>0.0) && (ac>ac1) && (ac1>ac2))
           {
             VLineCreate(0,"VLine",0,0,clrLimeGreen,STYLE_SOLID,1,false,true,true,0);
           }
        }
        
        //---Быстрая скользящая средняя (меньше периода) на первой свече ниже медленной, т.е. произошло пересечение cверху вниз
      if(FastMA_1 < SlowMA_1 && FastMA_2 >= SlowMA_2)
        {
         
         if((ac<0.0) && (ac<ac1) && (ac1<ac2))
           {
             VLineCreate(0,"VLine",0,0,clrOrangeRed,STYLE_SOLID,1,false,true,true,0);
           }
        }
  }

スクリーンショットを撮りました。

ファイル:
 
DYM:

ありがとうございました。大変だったけど、整理できたと思う。これです。

スクリーンショットを撮りました。

エラー 4200 待ち