if(OrderSelect(Ticket, SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) // Если наш рыночный ордер не закрыт
{
if(flagAlert == true)
Alert("Наш рыночный ордер жив, Модифицируем его если нужно ", Text,Ticket,". Ждём ответ..");
ModifyTral(); // Модифицируем если нужно
}
if(OrderCloseTime()!=0) // Если наш рыночный ордер закрылся
{
OpnOr=false; // Флаг открытия рыночного ордера после его закрытия делаем ЛОЖЬ
Ticket=0; // Тикет ордера рыночного, он может быть только одинAlert("Наш рыночный ордер закрылся. Работа Советника продолжается ","Прибыль/убыток = ",OrderProfit(),
" Своп = ", OrderSwap(), " Комиссия = ", OrderCommission());
return;
}
}
else
{ Alert("OrderSelect() нашего рыночного ордера вернул ошибку - ",GetLastError()); return;}
}
フラグは、注文の種類の 数を制御するか、チケットがある場合は成行注文の終了時間を制御し、0に等しくない場合は、注文が終了し、注文開始フラグは偽となります。
プログラム的にはどうなんでしょうか?
チケットの会計処理をすること。
注文を開く際に、チケットを記憶させる必要があります。
正直なところ、何を求めているのか不明です。何が出力され、何が必要かをどう理解するか、数式で書く。
最後の4つのティックの間のミリ秒単位の時間が必要です。新しいティックが表示されたら、値を更新する。
このインディケータは、最後のティックの時間(GetTickCount())をバッファに書き込みます。
Expert Advisorは、インジケータから値を取得し、時差を計算します。
カウントされるようですが、Alertは画像のような値を表示します。
その理由がわからない。
直近の4ティック間の時間をミリ秒単位で知りたい。新しいティックが発生したときに値を更新します。
このインディケータは、最後のティックの時間(GetTickCount())をバッファに書き込んでいます。
Expert Advisorは、インジケータから値を取得し、時差を計算します。
カウントされるようですが、Alertは画像のような値を表示します。
その理由がわからない。
ドキュメントを読んでないから
GetTickCountの ヘルプに、整数カウンタのオーバーフローと書いてある
ドキュメントを読まないからです。
GetTickCountのリファレンスによると、整数のオーバーフローだそうです。
uintのことですか?なぜアラートで表示されるのですか?置いてませんよ。
uintのことですか?なぜアラートで表示されるのですか?そこには書いていない。
最初のAlerteでは、(オーバーフローを考慮せずに)間違った差分を計算して出力しています。
2番目のAlertでは、大きな整数値がコードで探されていますが、この断片には存在しません :-)
それが、コードにないんです。
すべてのインジケーターコード
EAコードのすべて。
それが、コードにないんです。
すべてのインジケーターコード
そのすべてを。
他に何が入っているか見てみましょう。
time.mq4 - 多分、アラートを送信します。
それが、コードにないんです。
すべてのインジケーターコード
EAコードのすべて。
インジケータでは、Alert構造で。下から5行目Alert(b)。
これはシステム起動からのミリ秒数 らしい)
クイックトレードボタンの状態を把握する方法は?
つまり、チャート上に存在するかしないかです。
関数や別の方法を提案してもらえますか?