どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 629

 
TarasBY:
どんな課題でも、さまざまな方法で解決することができます。発売6年目だが、マジックを変える必要がなかった(「緑の青春」時代も)。
いろいろあるんですよ。例えば、ポジション管理を他のEAに移管する必要がある場合などです。
 
tara:
いろいろあるんですよ。例えば、ポジション管理を他のアドバイザーに移管する必要がある場合などです。
まあ、相手のアドバイザーも自分のものなら、追加でどんな魔法使いを食わせてもいいんですけどね。
 
tara:
いろいろあるんですよ。例えば、ポジション管理を他のEAに移管する必要がある場合などです。
私はEAを分析用と取引用の2つのパートに分けています。分析的な部分はそれぞれのEAに固有のものですが、管理的な部分はどのEAでも同じです(もしかしたら、それぞれのEAですべての管理機能が関わっているわけではないのかもしれません)。また、EA間で注文を転送する必要がない。
[Удален]  

ヘルプを読み漁り、サイトを検索しましたが、MessageBox 関数の例は見つかりませんでした。アドバイスをお願いします。

1.MessageBoxで表示されるウィンドウの位置を変更することはできますか?

2.例えば、「OK」「Cancel」から「aha」「no way」にボタンの名前を変更することはできますか?

3.MB_DEFBUTTON フラグは、この関数で何をするのでしょうか。

 

おつかれさまでした(笑)。

ループ(forやwhileなど)して、その中にインジケータの値(または変数の価格)を取得するコードを入れたら、うまくいくでしょうか?

ループの中にある変数は、プロシージャがループしているので、新しいティックでその値を受け取るのでしょうか?

 
culler:

おつかれさまでした(笑)。

ループ(forやwhileなど)して、その中にインジケータの値(または変数の価格)を取得するコードを入れたら、うまくいくでしょうか?

ループしているため、ループ内にある変数には常に新しいtickで値が入るのでしょうか?

このようなループでは、例えばAsk価格(またはティックに付随する何か)を取得する前に、このアクションの前に RefreshRates() を置き、ループを開始したティックに付随する古いAsk値ではなく、現在のAsk値を要求するようにしましょう。ループ内でインジケータ値を要求すれば、現在値が正しく表示されるはずです。

100%確実なのは、ループで簡単なExpert Advisorを作り、Comment() でチャートに情報を表示すれば、ループ内の値が正しいかどうかすぐに分かります。
 
paladin80:

このようなループでは、例えばAsk価格(またはティックに付随する他の何か)を取得する前に、このアクションの前にRefreshRates()を置き、ループを開始したティックに付随する古いAsk値ではなく現在のAsk値を要求します。ループ内でインジケーターの値を要求すると、正しい電流値が得られるはずです。

100%確実なのは、ループで簡単なExpert Advisorを作り、Comment()でチャート上に情報を表示すれば、ループで得た値が正しいかどうかすぐに分かります。


ありがとうございます。
だから、うまくいくのです。これはいい。

ところで、この方法をループで使うのは、変態的に正しいのでしょうか?

このようなサイクルのために、MT4が完全にハングアップしてしまうことに気づきました。

 
culler:


ところで、このサイクルは正しいアプローチなのでしょうか、それとも少し変態的なアプローチなのでしょうか?

このサイクルのせいで、MT4が完全にハングアップしてしまうことに気がつきました。


そして、変態の愛好家もいる。ルーピングのことです。
 
皆さん、こんにちは。スプレッド0でEAをテスト する方法を教えてください。何かコードに規定が必要なのかもしれませんね。
 
culler:


ありがとうございます。
だから、うまくいくのです。それは素晴らしいことです。

ところで、このサイクルの考え方は正しいのでしょうか、それとも少しひねくれた考え方なのでしょうか?

ループでMT4が完全にフリーズしてしまうことに気づきました。


ヘルプより「各スクリプトと各エキスパートは、それぞれ独立したスレッドで動作 します。"

「ループしたスクリプトやExpert Advisorは、他のプログラムの作業を中断させることはできません。

すなわち、ルーピングを使用することができます。

これらの作業には、スクリプトとこのようなテンプレートを使っています。

void OnStart()
  {
   while(!IsStopped()) // пока скрипт не удалён с графика
     {
      bool is_new_tick=RefreshRates();
      // если true значит пришли новые котировки
      if(is_new_tick)
        {
         // код который необходимо выполнять при новых котировках
        }
      //остальной код
      Sleep(100);
     }
  }