if(Maximum>0 && Flag) {
signal = Maximum - Bid;
if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL
Opn_S = true;
tickett= Opn_S;
t=Time[0];
if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.
}
}
if(tickett>=0)
{
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
{
if (Time[0]>t)
{
Cls_S=true;
tickett=-1;
}
}
}
売りが効かなくなる。
動作はするがループする。
#define magic 123456789
StartHour=14;
StartMinute=1;// Время 08:01
StopHour=16;
StopMinute=30; // Время 23:58
StartTime=StartHour*60+StartMinute;
StopTime=StopHour*60+StopMinute;
staticint tickett=-1;
staticdouble Maximum=-1;
staticdatetime t;
if(StopTime<=StartTime) {Print("ERROR: Неправильные времена"); return(0);}
CurrentMinutesFromDayStart=Hour()*60+Minute();// Текущее время в минутах от начала дняdatetime td=iTime(Symbol(),PERIOD_D1,0);// Время открытия дневного бара в секундах от 01.01.1970if(CurrentMinutesFromDayStart<StartTime) {Maximum=-1;Flag=true;}// Если StartTime еще не настало, то после StopTime нужно пересчитать Maximum и можно открывать ордерif(CurrentMinutesFromDayStart>StopTime && Maximum<0) {// если максимум ещё не посчитанdatetime ts=td+StartTime*60;// начало временного диапазона в секундах от 01.01.1970
start= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
ts=td+StopTime*60;// конец временного диапазона в секундах от 01.01.1970
count= iBarShift(Symbol(),PERIOD_M1,ts,false);// смещение бара, которому принадлежит ts
count=start-count;// Сколко баров длится временной интервал
Maximum=iHigh(Symbol(),PERIOD_M1,iHighest(Symbol(),PERIOD_M1,MODE_HIGH,count,start));//Находим максимум на заданном временном интервале
}
if(Maximum>0 && Flag) {
signal = Maximum - Bid;
if (signal > 0.005 ) { // к примеру если ниже максимума на 12 пунктов, в этом случае откроем SELL
Opn_S = true;
tickett= Opn_S;
if(tickett>=0) Flag=false;// Ордер открылся, сегодня больше не открываем.
}
}
if(tickett>=0)
{
double stop = iHigh(Symbol(),Period(),0) - iHigh(Symbol(),Period(),1);
if (stop > 0.0012)
{
Cls_S=true;
tickett=-1;
}
}
注文時にデフォルトのコメントを設定する方法があれば教えてください。
どのような「注文」なのでしょうか?何のために?どこに、なぜコメントが必要なのでしょうか?
単純な点では何かある、頭が痛い。注文を検索する機能があります。
t - すべてのオーダーのカウンタ.
p - 保留注文のカウンタです。
私は最初からそう呼んでいます。
実際に開いてみると、注文がないときでもこのように表示されます(注文がないときでも、あるかのように印刷される...)。
なぜ、そんなことが可能なのか?
注文の種類も5つ以上になる可能性があると考えたことはありますか?具体的には6つ。これは、取引によらない預金の変更です。
ほらね...。
注文の種類も5つ以上になる可能性があると考えたことはありますか?具体的には6つ。これは、取引によらない預金の変更です。
いや、それは初めて聞きました。どこにそんなことが書いてあるんだ?
預金=タイプ6
うーん、オーダータイプ=入金!?それは何ですか?
ほらね...。
注文の種類も5つ以上になる可能性があると考えたことはありますか?具体的には6つ。これは、取引によらない預金の変更です。
そしてなぜ6なのかというと、Expert Advisorでは注文の サイズや数を独立して設定することができるからです。
うーん、オーダータイプ=入金!?これは何でしょう?
すべての出金と入金はこの番号の下にある
また、なぜ6なのかというと、注文のサイズや数をEAに書き込むことができるからです。 。
何の話ですか?注文 数の話ではなく、注文の種類の話です。つまり、タイプ6の注文は、預託金の非取引の修正である。
いや、それは初めて聞きました。どこにそんなことが書いてあるんだ?
これは文書化されていないデータです。
すべての出金と入金は、この番号の下で行われます。
そして、この数字が注文統計の収集にどのように影響するのでしょうか?
文書化されていないデータです。
すごいですねぇ。一番面白いのは、奇しくもそれを知っている人がいることです。誰がどう考えても、そうだろう。
何の話ですか?注文数ではなく、注文の種類が重要なのです。つまり、タイプ6の注文は、非取引の預託金変更である。
デモでフクロウがテストされた場合、この順番はどう説明されるのでしょうか?つまり、デモで最初に渡された残高が、その......求められるONEになるのでしょうか?そして、実際のところ......これは引き出し、預けたものですよね?
ターミナルが別のEAの最適化で忙しいので、私自身はテストしていませんが、これでうまくいくはずです。
こんにちは。
チュートリアルのテンプレートにあなたのコードを貼り付けてみました。ポジションを1つだけ開かなければならないのですが、テンプレートにはポジションが1つしかありません。
チケット変数は、テンプレートがすでに持っているため別の名前を持ち、それを静的にしたため、撤退の基準は、次の日にポジションが残っている場合、そこからデータを受け取ることになります。
すべて順調なのですが、ループする問題が出てきました。例えば、Strategy Testerでは、Expert AdvisorはTake Profitまたはclose sellで ポジションを終了しますが、エントリーの基準はまだ有効なので、Expert Advisorは常にポジションを オープン、クローズして いることがわかります。
この問題は、以前は静的な datetime 変数 t を追加することで解決していましたが、現在は
売りが効かなくなる。
動作はするがループする。
何が問題なのでしょうか?思いつく限りのことをやってみましたが、mql 、あまり得意ではありません。
Expert Advisorを添付していますが、すべてのテキストを配置することはできません。