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

 
Bek001:

別の言い方をすると過去10秒間の最高値を判断する方法は?

MT5では - CopyTicks()

MT4では、構造体MqlTickの 配列にティックを保存します。そこから最大/最小価格を割り出す。

 

どうすればいいか教えてください。通知機能を書いたら、カチカチ 音がするたびに通知が来るようになりました関数自体はint Startで記述しているだけです。M30のPATTERN状況です。

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

どうすればいいか教えてください。通知機能を書いたら、カチカチ 音がするたびに通知が来るようになりました関数自体は、int Startでシンプルに記述されています。

静的 int DayT=0;
 
Artyom Trishkin ありがとうございます。 面白いのが出てきましたね!今は全然静かです。
 
Rewerpool:
Artyom Trishkin ありがとうございます。 面白いのが出てきましたね!今は全然静かです。
モバイルからだとコードが読みにくい。他に何か問題があるのでしょう。
 
Rewerpool:

どうすればいいか教えてください。通知機能を書いたら、カチカチ 音がするたびに通知が来るようになりました関数自体はint Startで記述しているだけです。M30のPATTERN状況です。

int DayT=0;
datetime BarTime=TimeCurrent();
void NOTIFICATION()
{
   if(DayT!=Day())// Если новый день - нужно опросить
   {
      DayT=Day();
      if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
      if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
   }
   if (BarTime==Time[0]) // Если новый бар - нужно опросить
   {
      BarTime=Time[0];
      if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
      if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
   }
}

変数を宣言して、すぐに比較するのです。もちろん、いつも同じ結果になります。

 
Artyom Trishkin:
モバイルでコードを読むのは難しい。他に何か問題があるのでしょう。

こんな感じでよかったんじゃないかと思います。

datetime BarTime;
 

Konstantin Nikitin こんにちは!!!修正しました!!!デイリーシグナルをアップしましたまだ日中用をチェックする必要がある!

修正しましたこれです。

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

static int DayT=0;
datetime BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

Konstantin Nikitin こんにちは!!!修正しました!!!デイリーシグナルをアップしましたまだ日中用をチェックする必要がある!

修正しましたこれです。

static int DayT=0;
datetime BarTime;

グローバルに展開する関数が呼ばれるたびに新しいものが宣言されるので、常に0に等しい状態になります。

 
Konstantin Nikitin これらのパラメータを関数本体の外に持っていくことを提案しているのですか?それとも、最後のスクリーンショットに書いたように、そのままにしておくのでしょうか?