[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 387

 
splxgf >>:

Michey25


когда я отвечал код был несколько другим;)

хотя есть некоторые вопросы, результат опен(0) сильно зависит от текущего тайфрейма. непонятно откуда берутся cn и какого они типа.

Сделать Alert(Open[0],cn1,Open[0]<cn1,a,(a-cn1)<0.0008) религия не позволяет?

До кучи вместо i=1 лучше юзать break, это сделает выход из цикла сразу, а не будет прогонять все команды до конца.

int i=0;
   double a, b;
   while ( i==0)
   {
     a=MarketInfo("USDCAD", MODE_ASK);
     b=MarketInfo("USDCAD", MODE_BID); 
     if((Open[0]< cn1)&&(( a- cn1)<0.0008))
      {
       OrderSend("USDCAD",OP_BUY,1, a,1, SL, cn2);
       i=1;
       }
     if((Open[0]> cn11)&&(( cn11- b)<0.0008))
      {
       OrderSend("USDCAD",OP_SELL,1, b,1, SL1, cn21);
       i=1;
      }  
   }

CN、SL、CN2...すべてダブルで入力パラメータになっており、EAをチャートに貼り付けるときに入力しています。Alertと何の関係があるのですか?

 
Rita >>:

В чем тут может быть причина, пож. подскажите ?

for(k = 0; k< iBars( Symbol_1,Period()); k++)

すべてのバーに対してループを実行し、さらに最初の呼び出しですべてのバーが考慮されるようなループを埋め込んでいます。二乗したバーの数で周期を求めますが、このような単純なタスクでは少し冗長です。
 
Michey25 >>:

cn, sl, cn2... все типа double и являются входными параметрами, я их ввожу когда прикрепляю советник к графику. И причем здесь Alert?


アラートで変数の値や条件の結果を表示し、それぞれの前にifを追加して結果を確認することができます。これはプログラムのデバッグによく使われる方法で、推測して検索する必要がないようにするためです。

 

ありがとうございます。つまり、start()関数の最初に、端末に制御を 戻す関数の呼び出しを定義した条件マネージャを作り、新しいティックを受信したときに、このマネージャが再び動作するようにしなければならないのでしょうか。まあ...プログラムのロジックを完全に作り直さなければならないので......。


では、テストが失敗するのは、テスターが新しいティックを待つためにハングアップしてしまうからですか?リアルタイムに動作するのか?あの...履歴でテストできることが重要なのです。考えてみます。ありがとうございます。

 
Jahspear >>:

Спасибо. То есть надо сделать в начале функции start() некий диспетчер условий, которые определяют вызов соответствующих ситуации функций, каждая из которые возвращают управление терминалу и дальше по получению нового тика этот диспетчер снова отрабатывает? Мдаа... придется полностью переделывать логику программы...


То есть тест не проходит, потому что тестер зависает в ожидании нового тика? А в реалтайме работать будет? Гм... все-таки возможностьоттестировать на истории это важно. Буду думать. Спасибо.

Expert Advisor は別スレッドで実行され、好きなだけ考えることができ、RefreshRates により現在の相場にアクセスできる。

 
ntmmm >>:

Добрый день!

Подскажите пожалуйчта, как написать простой индикатор, который бы выделял определенный бар (должно задаваться в опциях), например в 12.30 вертикальной линией и подписать дни недели на графике (скажем где-то над хаем каждого дня)?

Спасибо!

take https://www.mql5.com/ru/articles/1382 and file it away

 
splxgf >>:

В реалтайме работать должно, эксперт выполняется отдельным потоком и может думать сколько ему взблагорассудится, а RefreshRates позволяет получать доступ к актуальным котировкам.

ありがとうございます。現在、ループがないようにプログラムのロジックを作り直しているところです。もうひとつ、はっきりしない疑問があります。

Sleep(100);


秒単位で何分なんでしょうか?

また、ループだけでなく、どこでも使えるのでしょうか?

つまり、ある条件が満たされたとき、すぐに反応するのではなく、一定時間待って再度確認し、実行するということです。

そして、テスターが吊るされないか?

 

ntmmm писал(а) >>

...特定のバー(オプションで設定する必要があります)、例えば12.30に垂直線でハイライトし、チャート上の曜日(各曜日のハイの上のどこかに言う)を符号化する簡単なインジケータを書く方法を教えていただけませんでしょうか?

iTime インジケータセット

 
Jahspear >>:

Это сколько по времени в секундах?

И может ли использоваться не только в циклах, а в любом месте?

Чтобы при выполнении условия не сразу реагировать, а подождать заданное время и снова проверить, а потом уже выполнять.

И не повесит ли это тестер?

1. 0.1(ゼロポイント・ワンテン)

2.どこにでもある

3.一人ではぶら下がれないが、その気になれば...:)

 
alsu >>:

ありがとうございました。