voidOnStart()
{
while(!IsStopped()) // пока скрипт не удалён с графика
{
bool is_new_tick=RefreshRates();
// если true значит пришли новые котировкиif(is_new_tick)
{
// код который необходимо выполнять при новых котировках
}
//остальной кодSleep(100);
}
}
どんな課題でも、さまざまな方法で解決することができます。発売6年目だが、マジックを変える必要がなかった(「緑の青春」時代も)。
いろいろあるんですよ。例えば、ポジション管理を他のアドバイザーに移管する必要がある場合などです。
いろいろあるんですよ。例えば、ポジション管理を他のEAに移管する必要がある場合などです。
ヘルプを読み漁り、サイトを検索しましたが、MessageBox 関数の例は見つかりませんでした。アドバイスをお願いします。
1.MessageBoxで表示されるウィンドウの位置を変更することはできますか?
2.例えば、「OK」「Cancel」から「aha」「no way」にボタンの名前を変更することはできますか?
3.MB_DEFBUTTON フラグは、この関数で何をするのでしょうか。
おつかれさまでした(笑)。
ループ(forやwhileなど)して、その中にインジケータの値(または変数の価格)を取得するコードを入れたら、うまくいくでしょうか?
ループの中にある変数は、プロシージャがループしているので、新しいティックでその値を受け取るのでしょうか?
おつかれさまでした(笑)。
ループ(forやwhileなど)して、その中にインジケータの値(または変数の価格)を取得するコードを入れたら、うまくいくでしょうか?
ループしているため、ループ内にある変数には常に新しいtickで値が入るのでしょうか?
このようなループでは、例えばAsk価格(またはティックに付随する何か)を取得する前に、このアクションの前に RefreshRates() を置き、ループを開始したティックに付随する古いAsk値ではなく、現在のAsk値を要求するようにしましょう。ループ内でインジケータ値を要求すれば、現在値が正しく表示されるはずです。
100%確実なのは、ループで簡単なExpert Advisorを作り、Comment() でチャートに情報を表示すれば、ループ内の値が正しいかどうかすぐに分かります。このようなループでは、例えばAsk価格(またはティックに付随する他の何か)を取得する前に、このアクションの前にRefreshRates()を置き、ループを開始したティックに付随する古いAsk値ではなく現在のAsk値を要求します。ループ内でインジケーターの値を要求すると、正しい電流値が得られるはずです。
100%確実なのは、ループで簡単なExpert Advisorを作り、Comment()でチャート上に情報を表示すれば、ループで得た値が正しいかどうかすぐに分かります。ありがとうございます。
だから、うまくいくのです。これはいい。
ところで、この方法をループで使うのは、変態的に正しいのでしょうか?
このようなサイクルのために、MT4が完全にハングアップしてしまうことに気づきました。
ところで、このサイクルは正しいアプローチなのでしょうか、それとも少し変態的なアプローチなのでしょうか?
このサイクルのせいで、MT4が完全にハングアップしてしまうことに気がつきました。
そして、変態の愛好家もいる。ルーピングのことです。
ありがとうございます。
だから、うまくいくのです。それは素晴らしいことです。
ところで、このサイクルの考え方は正しいのでしょうか、それとも少しひねくれた考え方なのでしょうか?
ループでMT4が完全にフリーズしてしまうことに気づきました。
ヘルプより「各スクリプトと各エキスパートは、それぞれ独立したスレッドで動作 します。"
「ループしたスクリプトやExpert Advisorは、他のプログラムの作業を中断させることはできません。
すなわち、ルーピングを使用することができます。
これらの作業には、スクリプトとこのようなテンプレートを使っています。