初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1125

 
BillionerClub:

マウスの位置を時間的に変換したいのですが、投げずに変換するにはどうしたらよいですか?

少なくとも何かしらのイベントは必要です。マウスを動かしても大丈夫でしょうか?
 
Alexey Viktorov:
まあ、何かしらのイベントはあるはずです。マウスの移動が有効かも?

いや、座標を読み取って、キャンドル中に変換するだけです。

 
Alexey Viktorov:
少なくとも、何かイベントがあるはずです。マウスを動かすとうまくいくかも?

そうですね......ありがとうございます。もちろん、人は最初にマウスを動かしてからホットキーを押しますが。

 
カスタムイベントの関数をスクリプトで使用することは不可能であることが判明した。あとはインジケーターを動かして、それを使ってスクリプトを実行する。原理的には、ドラッグ&ドロップではなく、ホットキーを使えば、どんな違いがあるのでしょう。
 
BillionerClub:
面白いことに、カスタムイベント関数はスクリプトで使用できないことが判明しました。あとは、インジケーターを動かして、その中でスクリプトを走らせる。原則的に、ドラッグ&ドロップではなく、ホットキーを使用した場合、どのような違いがあるのでしょうか。

OnChartEventは スクリプトでは動作しないことをもっと具体的にドキュメントに書くべきだったかもしれませんが、そのような行がドキュメントにあります。

この関数はExpert Advisorやインジケータで呼び出す ことができ、void型と4つのパラメータを持つ必要があります。

また、カスタムイベントは関係ありません。

 
BillionerClub:

どのように変換するには、マウスの位置は、時間で、しかし、投げずに?

句読点を使わずに書く人もいれば、ポツポツと書く人も...。質問しているのだから、誰でも知っているはずだと......。

学校には行っていたのですか?大変でしたか?ここが簡単になると思っているのか?学校に戻った方がいいのでは?

 
Alexey Viktorov:

さて、ここからが本題です。

計算式の代わりに数字を入れるだけで、 ...

そうすると、ゼロが返ってくる。この関数は、インジケータA_D 1の値をバッファに格納し、スクリプトからインジケータを呼び出し、値をプリンタに出力します。

  Lot= iCustom(NULL,0,"A_D1",0,1);
  Print("Lot ",DoubleToStr(Lot,2));

という文字列を持つインジケータ内の関数を使用した場合

RiskMony = floor(FreeMargin*risk/100);

を実行すると、0.07 という数字が表示されます。

RiskMony =1.5;//

0.00と表示されます。

 

ご協力、ご批判ありがとうございます、皆様ごきげんよう。CHARTEVENT_CLICK 経由でスクリプト全体を関数としてインジケーターに追加してみました。時間帯の利便性、スピード、すべてがうまくいった。


#include <Keys.mqh>
CKeys ckeys;

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- нажатие кнопки на клавиатуре 
   if(id==CHARTEVENT_CLICK)
     {

      if(ckeys.KeyCtrlState())
        {
        Запустить();        
        }

     }

  }



 
macleta:

そうすると、ゼロが返ってくる。この関数は、インジケータ"A_D1 " で、私はバッファにその値を入れて、私はスクリプトからインジケータを呼び出し、プリンタに値を出力する

という文字列を持つインジケータ内の関数を使用した場合

を実行すると、0.07 という数字が表示されます。

と表示されれば、0.00と表示されます。

Intは 2進数の丸め、切り捨てに行くようで、他のデータ型との互換性がなく、損はない。

 
macleta:

そうすると、ゼロが返ってくる。この関数は、インジケータ"A_D1 " で、私はバッファにその値を入れて、私はスクリプトからインジケータを呼び出し、プリンタに値を出力する

という文字列を持つインジケータ内の関数を使用した場合

を実行すると、0.07 という数字が表示されます。

0.00と表示されます。

1.5ではなく、15や20ではどうでしょうか?長すぎるTPでほとんど利益を上げないようにしたいのかも?
理由: