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

 
mila.com:

ありがとうございます、これで いいのでしょうか?

label =ObjectGetInteger(0,nm,OBJPROP_COLOR,0);

if(label==Lime) BUY_ = true;

いや、そうやって色データをint型として 取得するのです。

コメントに印刷されているものを見てみてください。

Comment( ColorToString((color)ObjectGetInteger(0,"NaneOBJ",OBJPROP_COLOR,0), true) );

変換について読む

 
Vitaly Muzichenko:

変換について読む

ありがとうございます 条件自体は合っているのでしょうか?
 
mila.com:
ありがとうございます 条件自体は合っているのでしょうか?
string label = ColorToString((color)ObjectGetInteger(0,"MP140269",OBJPROP_COLOR,0), true);
if(label==Lime) BUY_ = true;

if(label==Red) BUY_ = false;
たぶん、ないと思います。データが文字列 型の場合は、引用符で囲んで、"clrLime "と文字単位で完全な色合わせを記述する必要があります。
 
Vitaly Muzichenko:
たぶん、ないと思います。データが文字列 型の場合は、引用符で囲んで、"clrLime "と文字単位で完全な色合わせを記述する必要があります。
ありがとうございます、うまくいきました )
 
Vitaly Muzichenko:
たぶん、ないと思います。データが文字列 型の場合は、引用符で囲み、"clrLime "のように文字単位での完全なカラーマッチングを記述する必要があります。
いいえ、引用符で囲む必要はありません - これらは定数です。すなわち、次のようにする。 if(label==clrLime) {}。
 
Artyom Trishkin:
いいえ、引用符で囲む必要はありません - これらは定数です。すなわち、次のようにする。 if(label==clrLime) {}。

ありがとうございます、うまくいきました。

ストキャスティクスの指標レベルを正しく取得する方法を、高い時間軸から教えていただけないでしょうか。

      int bar_sto2_0=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i));
      int bar_sto2_1=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i+1));
      double sto1_0=iStochastic(Symbol(),TimeFrame1,kperiod1,dperiod1,slowing1,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,i);
      double sto1_1=iStochastic(Symbol(),TimeFrame1,kperiod1,dperiod1,slowing1,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,i+1);
      double sto2_0=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_0);
      double sto2_1=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_1);
      
      if(sto2_0>55)
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      

高いタイムフレームに設定した場合は、すべてが正しく、インジケータのラインが 55より上にあるときに矢印が設定されます。

下位のチャートに切り替えると、カオスに。

 
mila.com:

ありがとうございます、うまくいきました。

ハイタイムフレームからストキャスティックインジケーターのレベルを正しく取得する方法を教えていただけないでしょうか。

      int bar_sto2_0=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i));
      int bar_sto2_1=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i+1));
      double sto1_0=iStochastic(Symbol(),TimeFrame1,kperiod1,dperiod1,slowing1,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,i);
      double sto1_1=iStochastic(Symbol(),TimeFrame1,kperiod1,dperiod1,slowing1,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,i+1);
      double sto2_0=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_0);
      double sto2_1=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_1);
      
      if(sto2_0>55)
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      

高いタイムフレームに設定した場合は、すべてが正しく、インジケータのラインが 55より上にあるときに矢印が設定されます。

下位のチャートに切り替えると、カオスになる。

指標のサイクルについて話している場合、高いタイムフレームのどのバーが、低い価格帯のサイクルインデックスによって示されるバーに対応するかを知るために、バーの時間 iを 取得する必要があります。そして、この時刻をもとに、この時刻に対応するハイフレームのバーを特定する。例:H4の1小節は、H1の4小節に対応する。したがって、H1から4つのサイクルインデックスiの値がH4の同じバーを指し示すことになる。

変数(の名前)から、どのバーから値を取得しているのかがわかりません。だから、理論以外のことは言えないんです。

 
Artyom Trishkin:

インジケータのサイクルについて話している場合、上位タイムフレームのどのバーが下位tfのサイクルインデックスで示されるバーに対応するかを知るためには、バーiの 時間を 取得する必要があります。そして、この時刻をもとに、この時刻に対応するハイフレームのバーを特定する。例:H4の1小節は、H1の4小節に対応する。これに対応して、H1タイムフレームのサイクルインデックスiの4つの値は、H4タイムフレーム上の同じバーを指すことになります。

変数名から、どのバーから値を取得しているのかがわかりません。そのため、理論以外のことはなかなか言えません。

インジケーターはM1にセットされています。

上向き矢印の主な条件は、M5の指標線が 55円台の上にあることです。

この条件を満たさない場合、たとえM5の55レベルを下回るラインであっても、矢印が配置されます。

 

1本目の高値が3本目の安値より高ければ...」という条件をロボットにどう書き込むか。

トリガーは "OnTick() "ではないはずです。

しかし、0本のバーが1本になるたびに

 
trader781:

1本目の高値が3本目の安値より高ければ...」という条件をロボットにどう書き込むか。

トリガーは "OnTick() "ではないはずです。

しかし、0本のバーが1本になるたびに

こんなことができる

//+------------------------------------------------------------------+
//|                                                       test03.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link      "https://www.mql5.com/ru/users/sergey1294"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CNevBar
  {
private:
   datetime          curbar;
   datetime          lastbar;
public:
                     CNevBar();
                    ~CNevBar();
   bool              new_bar(string symbol,ENUM_TIMEFRAMES period);
  };
//+------------------------------------------------------------------+
void CNevBar::CNevBar()
  {

  }
//+------------------------------------------------------------------+
void CNevBar::~CNevBar(void)
  {

  }
//+------------------------------------------------------------------+
bool CNevBar:: new_bar(string symbol,ENUM_TIMEFRAMES period)
  {
   curbar=(datetime) SeriesInfoInteger(symbol,period,SERIES_LASTBAR_DATE);
   if(lastbar==0)lastbar=(datetime)SeriesInfoInteger(symbol,period,SERIES_LASTBAR_DATE);
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return(true);
     }
   return(false);
  }

CNevBar newbar;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(newbar.new_bar(_Symbol,PERIOD_CURRENT))
     {
      if(High[1]>Low[3])
        {

        }
     }

  }
//+------------------------------------------------------------------+

...