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

 

こんにちは!オフトピックな質問かもしれませんが、掲示板でアドバイスしていただけませんか?私は初めてです。

状況は次のとおりです。私のEAを書き、販売に出したのですが、3ヶ月後、私のEAが他のサイトで違法に販売されていることがわかりました(すでに3つのサイトを見つけました)。

正確には、私のEAだけでなく、Mql5のサイトにはほとんどすべてのEAが売りに出されているのですが。

もしかしたら、Mql5プログラマーが この問題を解決しているかどうかという情報があるかもしれません。

ありがとうございます。

 
Nerd Trader #:

ええ、それは困りますね。いいんですか?

これはSleep(100)と同等ではないのですか?結局、ブレークが実行されるまで、プログラムはループでぶら下がることになります。

同等です。

そして、そこでOOPに行き着くのですが、各ボタンはボタンクラスのインスタンスで、それぞれがボタンを押すハンドラを持ち、独自のタイマーで遅延時間をトラッキングします。

あるいは、プログラム全体のタイマーで各ボタンの状態を追跡する - OOPでない場合

 
Mikhail Voropaev Mql5プログラマーが この問題を解決しているかどうかという情報があるかもしれません。

ありがとうございます。

そのようなサイトのURLを私の個人的なメッセージで送ってください。

 
Artyom Trishkin #:

同等です。

そして、そこでOOPに行き着くわけですが、各ボタンはボタンクラスのインスタンスで、それぞれ独自のボタンハンドラを持ち、独自のタイマーで 遅延時間を追跡します。

あるいは、OOPでない場合は、プログラムのタイマーで各ボタンの状態を追跡すること。

OOPについては理解できたが、セルフタイマーについてはよくわからない。どういうことですか?タイマーのスタートと遅延の考慮が違う?しかし、時間のカウントは1回だけです。それとも他に不明な点があるのでしょうか?

 
Valeriy Yastremskiy #:

OOPはクリアしているが、カスタムタイマーはクリアしていない。どういうことですか?タイマーのスタートと遅延の考慮が違う?しかし、時間のカウントは1回だけです。それとも他に不明な点があるのでしょうか?

私の鈍感さ・・・。

確かに「独自のタイマー」ではなく、タイマーの中で動作する独自のハンドラです。

 
Artyom Trishkin #:

そのようなサイトのURLをそれぞれメールで教えてください。

後日、お渡しすることも可能です。全部保存しています。中には、すでにオフになっているものもありますが。
市場をコピーするものが多いので.割安で。
 
Valeriy Yastremskiy #:

OOPはクリアしているが、カスタムタイマーはクリアしていない。どういうことですか?タイマーのスタートと遅延の考慮が違う?しかし、時間のカウントは1回だけです。それとも他に不明な点があるのでしょうか?

このテーマで記事を書いたことがある。

 
Sergey Gridnev #:
という記事を書いたことがあります。

ありがとうございます、アプリケーションのローカライズが上手です)

 
MakarFX #:
と、「ms」がグローバル化された場合
OnTimerはメインスレッドと並行してイベントを処理するようで、ボタンアニメーションにはそれが必要なのですが、この方法では良くならないようです。
GetMicrosecondCount()-msは、ボタンを押さずに100000以上の差を出すことができます。を追加することで制限を設けることが可能です。
&& GetMicrosecondCount()-ms<120000で1回条件が成立しますが、押さずに単独でも 成立します。

P.S. "ms = 0 "もゼロには意味がありません。


 
Nerd Trader #:
OnTimerはメインスレッドと並行してイベントを処理するようで、ボタンアニメーションにはこれが必要なのですが、この方法ではよくなりません。
GetMicrosecondCount()-msは、ボタンを押さずに100000以上の差を出すことができます。を増やすことでフレームを設定することが可能です。
&& GetMicrosecondCount()-ms<120000で1回条件が成立しますが、押さずに単独でも 成立します。

P.S. "ms = 0 "もゼロには意味がありません。


または

//+------------------------------------------------------------------+
void OnTimer()
  {
   if(ms!=0&&GetMicrosecondCount()-ms>100000)
     {
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
      ms=0;
     }
  }
//+------------------------------------------------------------------+