externbool UseHourTrade = True,
UseHourTrade2 = True;
externint FromHourTrade = 0,
FromHourTrade2 = 0,
ToHourTrade = 23,
FromHourTrade2 = 23;
int start(){
if (UseHourTrade){
if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {
Comment("Time for trade has not come else!");
return(0);
}
if (UseHourTrade2){
if (!(Hour()>=FromHourTrade && Hour()<=FromHourTrade2)) {
Comment("Time for trade has not come else!");
return(0);
}
}
紳士プログラマー諸君。どうかご協力をお願いします。
入力変数から
extern bool UseHourTrade = True;
extern int FromHourTrade = 0;
extern int ToHourTrade = 23;
int start(){
if (UseHourTrade){
if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)){
Comment("トレードの時間はまだ来ていません!");
return(0);
}.
}
UseHourTrade2、FromHourTrade2、ToHourTrade2といった変数で、トレードを行うべき2つ目の時間帯を追加したい。
スタート機能に何を追加すればいいのか、教えてください。今までいろいろなことを試してきましたが、うまくいきません。
事前にお礼を申し上げたい。私にはどうすることもできません。
そんなところでしょうか。
SZYコード挿入 ボタン「SRC」の使い勝手が悪い、見づらい。
難問はこれだ。
コードの一番最後にあるインジケータは、オブジェクトを作成し、別のインジケータのフラグとして機能します。
オブジェクトを作成した後、インジケータを5秒間スリープさせ、その後オブジェクトを削除して60秒間スリープさせ、その後最後の再試行に入り、新しいティックで初めからやり直す必要があるのですが、どうすればよいでしょうか?
こんなことに挑戦しています
時間切れに なりそうなところまでハングアップする。
何かコツがあるのでしょうか?
ロジックは次のとおりです。両方のインジケータがオブジェクトの名前を知っていて、さらに1つのオブジェクト
最初のものは、オブジェクトを作成し、それがそこにある間は何もしません。
2番目は、オブジェクトを読み、その処理を行い、さらにオブジェクトを設定します。
最初のオブジェクトは、メインオブジェクトを見ることなく、何もせずに去り、すぐに2番目のオブジェクト(追加オブジェクト)を見つけ、オブジェクトの作成時間(作成時に2番目のコンポーネントによってそこに入力されています)を読み、必要な休止時間(60秒)をカウントダウンし、すべてのオブジェクトを削除します - あなたは作業を続けることができます....
インジケータでは動作しません。このようなやり方をする理由がわからない。どうやら、常に動いているインジケーターは、催眠術のようなものなのでしょう :)
なぜなら、インジケータはインターフェイスの流れの中で動作しているので、スリープさせることはできません。もし、「スローダウン」させることができれば、その瞬間、ターミナルのどのボタン(例えば、「新規注文」、「注文を閉じる」など)も押すことはできないからです。
もうひとつ、この話題で微妙なのは、テスターのことです。実際のターミナルでは、複数のスレッドがあり、1つのインターフェーススレッドはExpert Advisors用に別々に作成されています(そのため、影響を受けることなく速度を落とすことができます)。
そのため、テストモード ではSleep()関数がこのような特殊な方法で動作するのです。テスターのフローをスリープさせると、Expert Advisorやインジケーター、ティック生成はもちろん、すべてが動かなくなる。そのため、もし私があなたの考えを正しく理解していれば、デモ上でのみテストが可能です。 もし、インターフェイスの流れを遅くしたい場合は、以下の関数を使用することができます。
希望するポーズをカウントダウン(60秒)
よく読んでください、すべて説明しました、グラフオブジェクトを使う必要はまったくありません、グローバルでできます・・・。
理由は、インジケータはインターフェイスの流れの中で動作するため、スリープさせることができないからです...。
ほらね...。ということです。
すごいな、ロックって。1つの指標に収まらない、寝かせられない...。グローバル変数 でやってみる。
よく読んでください、すべて説明しました、グラフオブジェクトを使う必要はまったくありません、グローバルでできます・・・。
...グローバル変数で動作するようにしてみる。
Rustamのヒントは正しいと思います。スレッドフリーズは最後の手段で、極端な話、MQLだけでなく、すべてのプログラミング言語において言えることですからね。