voidOnTick() { Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме { Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале //Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно // пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры") //что то не выходит } }
voidOnTick() { Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме { Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале //Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно // пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры") //что то не выходит } }
ヘルプのどこかに、「ソートは保証しない」と開発者が書いてありました。
チケットには必ず注文があります。後から注文したチケットは、先に注文したチケットより小さくなることはありません(開封 時)。
そして、保留中の注文の中から検索すると、順番に、0番の注文が最も古い注文で、OrdersTotal()-1番の注文が最も新しい注文(これもオープン時間による)となり、種類は考慮されない。
クローズドオーダーの履歴では、やはりターミナルウィンドウの履歴タブのソートに依存します。
調べてみたんです。MQL5のリファレンスにはありませんが、MQL4のOrderSelectの リファレンスにはありました。
"SELECT_BY_POS "パラメータを使用する場合、情報は取引サーバーから受信した 順番で返されます。受信したオーダーリストのソートは保証されません。"
実は、私が使っているリストでは、チケット番号でソートされているかどうかをシステム的にチェックしています。これまで、それがないケースはなかった。でも、参考文献も反論できない、論外です。それはそれでいいんだけど......。
調べてみたんです。MQL5のリファレンスにはありませんが、MQL4のOrderSelectの リファレンスにはありました。
"SELECT_BY_POS "パラメータを使用する場合、情報は取引サーバーから受信した 順番で返されます。受信したオーダーリストのソートは保証されません。"
実は、私が使っているリストでは、チケット番号でソートされているかどうかをシステム的にチェックしています。これまで、それがないケースはなかった。でも、参考文献も反論できない、論外です。それはそれでいいんだけど......。
仕分けをしないとはどういうことですか?チケットでソートする - 必ず順番があり、ドキュメントと矛盾することはありません、チケットでソートするのではなく、チケット番号でソートすることが書かれています、これらは異なるものです。
このコードを実行し、ログを読んでください。
void OnTick()
{
//--
if(flag)
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
Print(i," = ",OrderOpenTime());
}
}
flag=false;
}
//-
}
もう一つの問題は、私が遭遇したことです判断しないでください、私は2-3週間語学を勉強してきました、もしかしたら私が馬鹿なだけかもしれません
Expert Advisorのタスクは、口座の自由証拠金が一定の値を追加した場合、4時間ごとに電子メールでトレーダーに通知することです。
メッセージの件名には、ブローカー名と取引ペアを、本文には「危険!」と書いてください。ドローダウンが限界を超えている。必要な措置を講じる」。
コンパイラが不調で、英語が苦手で、何がエラーなのかわからない!
double Sag;
void OnTick()
{
Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака
if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
{
Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит
}
}
追記:一般的にはこの種の問題にはもっと簡単な解決法があるのかもしれませんが、今のところこの方法しか見当たりません)
もう一つの問題は、私が遭遇したことです判断しないでください、私は2-3週間語学を勉強してきました、もしかしたら私が馬鹿なだけかもしれません
Expert Advisorのタスクは、口座の自由証拠金が一定の値を追加した場合、4時間ごとに電子メールでトレーダーに通知することです。
メッセージの件名には、ブローカー名と取引ペアを、本文には「危険!」と書いてください。ドローダウンが限界を超えている。必要な措置を講じること」。
コンパイラが誤動作している、英語が苦手で何がエラーなのか理解できない!
double Sag;
void OnTick()
{
Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака
if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
{
Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит
}
}
追記:一般的にはこのような問題にはもっとシンプルな解があるのかもしれませんが、今のところこの方法しかないと思っています)
何だかよく分からない。
コンパイラーエラーとは
prıvet.podjalujte pozwala why on demo schete ne mogu otkrıt zdelkı