記事"EAのリモートコントロールの方法"についてのディスカッション

 

新しい記事 EAのリモートコントロールの方法 はパブリッシュされました:

トレーディングロボットの主な利点は、リモートの VPS サーバー上で24時間動作できることです。 しかし、時にはサーバーに直接アクセスすることができず、タスクに介入する必要があります。 EAをリモートで管理することは可能でしょうか。 この記事では、外部コマンドを使用してEAを制御するオプションの1つを提案します。

金融相場でのトレードの様々な自動化システムは、今日では一般的になっています。 EAの主な利点は、完全なアルゴリズムの実行と1日24時間の稼働であると考えられています。 仮想ホスティングは、24時間自律的にEAを使用することができます。

残念ながら、すべてのEAが同じように動作するわけではありません。 あるケースでは、トレーダーは手動で有効または無効にする必要があります。 これは、ユーザーがターミナルに直接アクセスできる場合に簡単です。 しかし、ターミナルに迅速にアクセスできない場合はどうでしょうか。 このような場合には、EAの操作をリモートで制御できるとよいでしょう。 ターミナル内のEAリモートコントロールの可能な方法を考えてみましょう。


作者: Dmitriy Gizlyk

 

記事をありがとう。Expert Advisorの状態を変更するライブラリへのリンクに感謝します。テンプレートによる作業は、実に独創的なソリューションだ。

しかし、正直なところ、タイトルを見たとき、クライアント・サーバーか ソケットの話かと思いました......。

複数の口座を持っていると、あちこちに未決注文を置くのに疲れてしまいます。

フォーラムのどこかに、電報でやりとりするためのライブラリがありました。そこにはもっと多くの可能性があり、すべてのコマンドはボットにあらかじめ用意されたボタンを押すことで設定できます。

 
Sergey Likho:

記事をありがとう。Expert Advisorの状態を変更するライブラリへのリンクに感謝します。テンプレートによる作業は、実に独創的なソリューションだ。

しかし、正直なところ、タイトルを見て、クライアント・サーバーかソケットの話かと思ったのですが......。

複数の口座を持っていると、あちこちに未決注文を置くのが面倒になります。

フォーラムのどこかに、電報でやりとりするためのライブラリがありました。そこにはもっと多くの可能性があり、すべてのコマンドはボットにあらかじめ用意されたボタンを押すことで設定できる。

私の知る限り、電報による管理に関する記事を作成する計画があり、著者も任命されている。おそらく、新しい記事はあなたにとってより役に立つだろう。

 
このトリックを使えば、オリジナルのソースコードを変更せずに済む。
#define private public
  #include <fxsaber\Expert.mqh> //https://www.mql5.com/ja/code/19003
#undef private

#define  STRING_END "\r\n"
#define  EXPERT_BEGIN ("<expert>" + STRING_END)
#define  EXPERT_END ("</expert>" + STRING_END)
#define  EXPERT_NAME "name="


したがって、エキスパート・アドバイザーを有効/無効にするには、テンプレート・ファイルを書き換えて、expertmodeフラグを必要な値に変更し、隠しオブジェクトを削除するだけでよい。

私はこのフラグについて知らなかっただけでなく、オブジェクトの微妙な操作について考えていませんでした!


このコード

      string temp=EXPERT::TemplateToString(i_chart,true);
      if(temp==NULL)
        {
         i_chart=ChartNext(i_chart);
         continue;
        }
//---
      temp=EXPERT::StringBetween(temp,EXPERT_BEGIN,EXPERT_END);
      if(temp==NULL)
        {
         i_chart=ChartNext(i_chart);
         continue;
        }

は、EAだけでなくスクリプトもキャッチしてしまう。そのため、次のようにした方がよいだろう。

      if(!EXPERT::Is(i_chart))
        {
         i_chart=ChartNext(i_chart);
         continue;
        }
      
      
      string temp=EXPERT::TemplateToString(i_chart,true);

この場合、テンプレートは必要な場所にのみ保存される。


ZY 最後に生成されたテンプレートをいつでも見られるように、あえてFileDeleteを作らなかったんだ。

 
fxsaber:
このようなテクニックを使えば、元のソースを変えないことができる

興味深いテクニックだ。このような方法はこれまで考えたことがなかった。ありがとう。

 
fxsaber:

このコード


は、EAだけでなくスクリプトもキャッチしてしまう。そのため、次のようにした方がよいだろう。

この場合、テンプレートは必要な場所にのみ保存される。

コードの中で、TemplateToStringは意図的にフラグtrueで呼び出されている。もしかしたら忘れているかもしれませんが、trueフラグの関数本体では、Isメソッドを呼び出すことによって、チャート上にExpert Advisorが存在するかどうかをチェックしています。

 static string TemplateToString( const long Chart_ID = 0, const bool CheckExpert = false )
  {
    short Data[];

    return(((!CheckExpert || EXPERT::Is(Chart_ID)) && ::ChartSaveTemplate((ulong)Chart_ID, PATH + FILENAME) && (::FileLoad(FILENAME, Data) > 0)) ?
           ::ShortArrayToString(Data) : NULL);
  }

そのため、どちらのコードも同じように動作するはずです。



Dmitry.

 
Dmitriy Gizlyk:

このコードでは、TemplateToString を意図的に true フラグで呼び出しています。もしかしたら忘れているかもしれないが、チャート上にExpert Advisorが存在するかどうかは、関数本体の Isメソッドをtrueフラグ付きで呼び出すことでチェックされる。

確かに、忘れていました。

総じて、ライブラリとコメントをありがとうございました。

理解していただき、大幅に追加していただいてうれしいです。確かに、ご指摘のニュアンスを考慮して修正しても問題ないでしょう。

 
確かに、記憶するためのプログラミングなどは良いし、記事も面白い。
しかし、一つ疑問がある。端末は自宅のPCで動かしていて、携帯からTimWeaver経由で作業するほど怠惰なのは私だけだろうか?それとも誰もそのような機会を聞いたことがないのでしょうか?
私にはプラス面しか見当たりません:
-専用IPが不要
-このプログラムのクロスプラットフォーム性(Windows、Mac、Android、iOS用)
-無料
-自宅でPCに向かっているような作業の利便性。
-テンプレートの束やコードの山は必要ない。
モバイル端末で 常にすべてを見ることができ、何か修正する必要があれば、アプリケーションを開いて、Expert Advisorをオフにしたり、別のExpert Advisorを起動したり、あるいは設定で何かを修正するだけでも、必要なものを修正することができます。PCの電源を完全に切ったり、再起動したりすることさえも......。
 
sic20101:
端末は自宅のPCで動かしていて、TimWeaverを経由して携帯電話から作業するほど怠惰なのは私だけでしょうか?それとも誰もこの可能性を聞いたことがないのでしょうか?

Expert AdvisorのあるVPS(または自宅のPC)が技術的な理由でしばらくの間オフラインになることがあります。いつオンラインに戻るかは不明ですが、例えば取引は控える必要があります。この場合、提案されたリモートコントロールは、あなたのバリアントよりも多くのことを可能にします。


MetaQuotesからVPSもあります。そこだけそのようなものです。

 
fxsaber:
インターネットがない - 取引がない、口座管理が携帯電話やタブレットから見えることにおそらくお気づきではないでしょう。インターネットが使えない場合、私たちはただ手ですべての取引を終了し、インターネットが表示されるのを待つか、PC上でさらなるアクションを行うために家にいるかのどちらかです。
年以上使っている私の方法を分析すると、ネットワークへのアクセスが唯一のボトルネックになっている。そして、この問題は、サービスTimWeaverが最初の年ではなく、動作するように、プロバイダの選択にのみあり、また、このような機能を持っている、彼らは確かにすぐに死ぬことはありません....
 
sic20101:
インターネットがない - 取引がない、口座管理が携帯電話やタブレットから見えることにおそらくお気づきではないでしょう。インターネットが停止している場合、我々はちょうど手ですべての取引を終了し、その後、インターネットが表示されるのを待つか、PC上でさらなるアクションのために家にいる。

インターネットに接続されていないコンピューター上の端末では、遠く離れた場所にいることになります。自分の口座にはアクセスできますが、Expert Advisorのある端末にはアクセスできません。Expert Advisorが取引サーバーに接続されている場合(インターネットが機能している場合)、Expert Advisorが取引しないようにするにはどうすればよいですか?