mql5 - 最後の取引から一定時間後の垂直線

 

皆さん、こんにちは。

MQL5で次のアイデアを実装する方法を、どなたか教えてください(私自身はMetatraderに精通したばかりで、まだコードを書いていません)。

コードアルゴリズム。
1) 最終取引の終了時刻と取引結果を判定します。

2) 最終取引終了後、その日のトータル結果を判定します。

3)インジケーターの設定により、直近の取引終了時点から未来の一定間隔で縦線が引かれます。
設定です。
- 最後のトレードの結果がマイナスで、その日の結果がマイナスなら、24時間(1日)先の未来に縦線が引かれます。
- 最後のトレードの結果がマイナスで、その日の結果がプラスの場合、2時間先の未来に縦線を引きます。
- 最後のトレードの結果がプラスであれば、1時間先の未来に縦線が引かれます。

4) 新規に取引を開始しても線はチャート上に残りますが、上記のアルゴリズムに従って新規取引を決済すると線が移動します。


陽転は、注文がトリガーされたか、ポジションが手動で決済されたかは関係ありません。すなわち、バランスでプラス。
マイナスとは、取引の結果、マイナスまたはゼロになることです。

P.S>

私にとってのこのコードの本質は、トレード後の休憩に慣れることと、熱くなり過ぎないことです。失敗した案件をすぐに取り返そうとすることが、私の損失の原因であることに気づかされました。将来的には、インジケータに条件やフィルタを追加して、判断のアルゴリズムを複雑にしたいので、正確にはプログラムのバリエーションが必要です。

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

 

一例として

void moveVLine(string obj_name, datetime obj_time)
{
   int         tm       = PeriodSeconds(PERIOD_D1);
   datetime    next_day = obj_time + tm;
   MqlDateTime tm_str;
   
   TimeToStruct(next_day,tm_str);
   if(tm_str.day_of_week == 6)
   {
      tm *= 3;
      next_day = obj_time + tm;
   }
   ObjectMove(0,obj_name,0,next_day,0);
   
   return;
}
 
Сергей Таболин:

一例として

セルゲイさん、ありがとうございます
あなたの例を実行したら、どうなるか教えてあげるわ
 
Сергей Таболин:

一例として

サンプルはコンパイルできません :(
私が理解したところでは、コードは断片的であり、いくつかの必須コンポーネント(#propertyなど)を追加する必要があるのでは?
 

同じようなインジケーターで、ある時間に縦線を 引くだけのものを見つけたので、それをベースに、あらかじめ決められた静止時間の代わりに必要なアルゴリズムを追加して使ってみようと思っています。
https://www.mql5.com/ru/code/18449

Vertical line
Vertical line
  • www.mql5.com
Индикатор рисует, а затем перемещает нарисованную вертикальную линию (OBJ_VLINE) на заданное время (часы и минуты). Входные параметры: Из параметра "Use only Hours and minutes" используются только часы и минуты.  Вертикальная линии рисуется для текущего дня. Если начинается новый день, то нарисованная линия переносится на этот новый день на...
 
バカの一つ覚え。
ある時刻にバー上に線を引くソース(上のコード)があります。入力パラメータから時間を削除し、取引履歴から時間値を取得するだけです。ドキュメントTrading functionsを見ると、Historyグループにある関数のどこかに真実があるのでは...と思ってしまいます。今のところ何も見当たりません :(
履歴から最後の取引のデータを取得する方法(ポジションをクローズして 取引結果を確定する時間)をどなたか教えてください。
 
renatmt5:
サンプルはコンパイルできません :(
私が理解したところでは、コードは断片的であり、いくつかの必須コンポーネント(#propertyなど)を追加する必要があるのでは?

縦線 伝達関数 です。特定の条件を満たした場合に、メインコードから呼び出される必要があります。さらに、線そのものがすでにあることが条件です。

 
Сергей Таболин:

縦線 伝達関数 です。特定の条件を満たした場合に、メインコードから呼び出される必要があります。

OK、いつもありがとうございます
 
renatmt5:

みなさん、こんにちは。

MQL5で次のアイデアを実装する方法を、どなたか教えてください(私自身はMetatraderに精通したばかりで、まだコードを書いていません)。

アルゴリズムコード:
1) 最終取引終了時刻と取引結果を判定する。

2) 最後の取引終了後、その日の合計結果を判定します。

3)インジケーターの設定により、直近の取引終了時刻から未来の一定時間内に縦線が引かれます。
設定:
- 最後の取引の結果がマイナスで、その日の結果がマイナスの場合、24時間(24時間)先の距離に縦線が引かれます。
- 最後のトレードの結果がマイナスで、その日の結果がプラスの場合、2時間先の未来に縦線を引きます。
- 最後の取引の結果が陽性の場合、1時間先の未来に縦線が引かれます。

4) 新規に取引を開始しても線はチャート上に残りますが、上記のアルゴリズムに従って新規取引を終了すると、新規取引は既に最後の決済取引となったため、線が移動します。


注文がトリガーされたか、ポジションが手動でクローズされたかにかかわらず、プラスになります。すなわち、バランスでプラス。
マイナスとは、取引の結果、マイナスまたはゼロになることです。

P.S>。

私の場合、このコードの本質は次のようなものです - 取引の後に一時停止を行うために使用するようになるとホット連勝を破ることはありません。失敗した案件をすぐに取り返そうとすることが、損失の原因であることに気づかされました。将来的には、インジケータに条件やフィルタを追加して、判断のアルゴリズムを複雑にしたいので、正確にはプログラムのバリエーションが必要です。

ありがとうございました!皆さんも頑張ってください

だから、インジケーターと呼ぼう。

そこで、このように設定します。ここでは、1分間に1回、取引履歴を取り寄せると定義しておきましょう。そうすると、あと2つのパラメータが必要になります。

  • 最後の取引を考慮するのは現在のシンボル(インディケータが動作しているシンボル)だけですか、それともすべてですか?
  • とマグフィックナンバーアカウンティング(1つだけ、またはすべてを考慮する)?


あなたからの回答が必要です。昼までにはまたこのスレッドに登場するようにします。

 
Vladimir Karputov:

インジケーターはインジケーターです。

つまり、こんな感じです。1分に1回、取引履歴を取り寄せると定義しておこう。そうすると、あと2つのパラメータが必要になります。

  • 最後の取引を考慮するのは現在のシンボル(インディケータが動作しているシンボル)だけですか、それともすべてですか?
  • とマグフィックナンバーアカウンティング(1つだけ、またはすべてを考慮する)?


あなたからの回答が必要です。昼までにはまたこのスレッドに登場するようにします。

ウラジミールさん、私の質問にお付き合いいただき、ありがとうございます。最初はできるだけシンプルに、長期的には止めるのではなく、自分で改良していくことを期待しているので :)
- 現在のシンボルに対してのみ
- マグフィックナンバーについて - よくわからない。IDのようなもの?正直なところ、私にとってはどうでもいいことなんです。最後のクローズドトランザクションのデータだけが必要です

 

ラスト・トレード」という言葉を明確にしたい。

現在の日中の最後の取引か?それとも直近のN日間?

理由: