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

 
Tretyakov Rostyslav #:

終了条件が発生した場合

//-------------------------------------------------------------------+  Команда на закрытие сетки ордеров
   if((CountTrade(0) > 1 && CalculiteProfit() >= 0 && OrderGroupCloseSignal()==0)||(CountTrade(1) > 1 && CalculiteProfit() >= 0 && OrderGroupCloseSignal()==1))
     {
      flag_close=1;
     }

この場合、これらのポジションに 必要な利益がどの価格になるかを計算、価格とポジションに応じてテイクプロフィットまたはストップロスを設定します。 また、買いポジションと売りポジションは異なる価格で決済されるので、これは同じ種類のポジションである場合にのみ適切です。

 
Andrey Sokolov #:

ここでの条件は CalculiteProfit() >= 0で、この場合、これらのポジションに 必要な利益はどの価格になるかを計算し、 そこにテイクプロフィットを設定することができます。

私ではない)

EVGENII SHELIPOVは、コンディションの著者 である。

 

ごあいさつヒントを教えてください。

mt5ロボットで、チャートに移動平均の ようなカーブをつける必要があるのですが。オブジェから造形するよりも「文化的」な方法はあるのでしょうか?

 
Andrey Sokolov #:

ごあいさつヒントを教えてください。

mt5ロボットで、チャートに移動平均の ようなカーブをつける必要があるのですが。オブジェから造形するよりも「文化的」な方法はあるのでしょうか?

はい - 表示する
 
Artyom Trishkin #:
はい - 自分で出力する

キーワードは "like "です。そこには、第三者の指標ではなく、自分自身のデータがあるのです。

 
Andrey Sokolov #:

ごあいさつヒントを教えてください。

mt5ロボットで、チャートに移動平均の ようなカーブをつける必要があるのですが。オブジェクトから描画するよりも、もっと「文化的」な表示方法はないのでしょうか?

CCanvasに値を描画する。

 
Andrey Sokolov #:

キーワードは "like "です。そこには、第三者の指標ではなく、自分自身のデータがあるのです。

インジケータを作成し、 #resourceとして 追加する。
 
Mihail Matkovskij,Tretyakov Rostyslav ありがとうございました。
 

こんにちは。ヒントを教えてください。取引端末には、そんなALERTという概念があります。つまり、価格の 尺度に載せてこの価格に到達するための 条件を設定するのです。しかし、それは使い捨てであることが判明しました。取引ロボットは一回限りではなく、現在の価格は固定されていない、すなわちロボットの状態は変化しない。

 
valentin104 取引端末には、そんなALERTという概念があります。つまり、価格の 尺度に載せてこの価格に到達するための 条件を設定するのです。しかし、それは使い捨てであることが判明しました。順番はアラートと同様ですが、再利用可能です。つまり、無効化されるまでは動作し続けます。

// использовать алерт
input bool alert = true;
// уровень срабатывания
input double trigLv = 0.0;
// отклонение от trigLv в пунктах
input int deviation = 30; 


// функция взята из https://www.mql5.com/ru/docs/basis/types/double
bool EqualDoubles(double d1,double d2,double epsilon)
  {
   if(epsilon<0) 
      epsilon=-epsilon;
//---
   if(d1-d2>epsilon) 
      return false;
   if(d1-d2<-epsilon) 
      return false;
//---
   return true;
  }

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
  return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[]
) {
  static bool triggered = false;
  static datetime time_ = 0;
  if (!alert)
    return rates_total;
  if (EqualDoubles(trigLv, close[0], deviation * SymbolInfoDouble(NULL, SYMBOL_POINT))) { // сравнение цены Close с trigLv
    if (time_ != time[rates_total - 1])
      time_ = time[rates_total - 1];
    else
      return rates_total;
    if (!triggered)
      Alert("Level ", NormalizeDouble(trigLv, (int)SymbolInfoInteger(NULL, SYMBOL_DIGITS)), " triggered!");
    triggered = true;
  }
  else
    triggered = false;
  
  return rates_total;
}

コードはMQL5用です。この機能は、MQL5と同じ機能を持つインジケータを想定しており、MQL5ではMQL5と同じ機能に基づいています。

ファイル:
Alert.mq5  5 kb