int start() { if(TimeCurrent()<LastTime+Pause)return(0)。
...
bool cl() {if(OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType(); double l=OrderLots(); int tik=OrderTicket();Alert("tik=", tik); } if (t==OP_BUY) OrderClose(tik,l,Bid,3,Red); if (t==OP_SELL) OrderClose(tik,l,Ask,3,Green); LastTime=TimeCurrent()。 }
if ((OrdersTotal()==0) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,(Bid-30*Point),0,"__",555,0,Red )。
if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Point),0,"__",444,0,Green);}; }.
if (OrdersTotal()==1) {オーダーセレクト(0,SELECT_BY_POS;) typ=OrderType()。 tik=OrderTicket()です。 l=OrderLots()です。 if (typ==OP_BUY && os1<0) if (オーダークローズ(tik,l,ビッド,3,レッド))LastTime=Time[0]です。 if (typ==OP_SELL && os1>0) if (オーダークローズ(tik,l,アスク,3,グリーン))LastTime=Time[0]です。 }
アドバイスいただいたとおりにしてみました。
datetime LastTime;
datetime Pause=3600;
int start()
{
if(TimeCurrent()<LastTime+Pause)return(0)。
...
bool cl() {if(OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType();
double l=OrderLots();
int tik=OrderTicket();Alert("tik=", tik);
}
if (t==OP_BUY) OrderClose(tik,l,Bid,3,Red);
if (t==OP_SELL) OrderClose(tik,l,Ask,3,Green);
LastTime=TimeCurrent()。
}
しかし、Strategy Testerでは、条件に従って注文は開くが、時間には反応しない。
また、「保留注文の存在時間」パラメータには反応しない、つまり、削除すべき時間になっても削除されない。
そういうものなのでしょうか?
注文が終了してからの経過時間をテスターに考慮させるにはどうしたらよいでしょうか。
第二に、いくつかの不明瞭な関数でグローバル変数に値を割り当てることは非常に良いことではありません、2つの方法があります、いずれかの参照または関数がブール型の値を返す場合はグローバル変数に値を割り当てることによって、もちろん、あまりにもそれが警告されている場合用の変数、しかし、これはあなたのビジネスです....と言っても所詮は口先だけですが)))この関数がいつ呼び出されるのか、また、呼び出されるのかどうか、コードからはよくわかりません。ログファイルで結果を確認するようにしてください。関数をすべて削除し、変数をあるべき形で宣言しましたが、結果は同じです。テストモードでは、時間に反応せず、同じバーに余分な注文を入れてしまいます。
何が必要なのか?
double q0=0; double q1=0; double q2=0; double q3=0; datetime LastTime; datetime Pause=3600; int typ, tik; double l;
int start()
{
datetime t=Hour();
if (t==8) {q0=0; q1=0; q2=0; q3=0;}.
if (t>=9) {
int i0=0;
while (q0==0) { q0=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,0,i0); i0++; }.
int i1=0;
while (q1==0) { q1=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,1,i1); i1++; } } { q1=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,1,i1)
int i2=0;
while (q2==0) { q2=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,2,i2); i2++; } { q2=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,2,i2)
int i3=0;
while (q3==0) { q3=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,3,i3); i3++; } } { q3=iCustom(NULL,0, "MorningFlat_V3",0,15,8,45,161.8,Turquoise,Red,Gold, Silver,3,i3)
Comment("g0=",q0, "\n", "g1=",q1, "\n", "g2=",q2, "\n", "g3=",q3 ); } 。
double os0=iOsMA(NULL,0,5,26,9,4,0);
double os1=iOsMA(NULL,0,5,26,9,4,1) となります。
// ここから参照
if(TimeCurrent()<(LastTime+Pause))return(0); if (
OrdersTotal()==0) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0.0.1,Ask,3,(Bid-30*Point),0,"__",555,0,Red );
if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Point),0,"__",444,0,Green);}; }.
if (OrdersTotal()==1) {OrderSelect(0,SELECT_BY_POS);
typ=OrderType();
tik=OrderTicket();
l=OrderLots();
if (typ==OP_BUY && os1<0) { LastTime=TimeCurrent(); OrderClose(tik,l,Bid,3,Red);} {OrderSelect=OrderLots();{OrderTime(O),Bid,3,Red} {OrderTime(O),Bid(O),Bid(O)} {LastTime=TimeCurrent()
if (typ==OP_SELL && os1>0) { LastTime=TimeCurrent();OrderClose(tik,l,Ask,3,Green);}.
}
return(0);
}.
//+------------------------------------------------------------------+
こんにちは。
専門家の方々への質問
デモ口座でExpert Advisorが動作している場合、引用符が表示され、価格が変更されますが、Expert Advisorはある時間から取引を停止し、ログにエラーが生成されます。
2009/12/30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.価格なし
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:08 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:12 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.価格なし
2009.12.30 16:46:13 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- エラーコードはありません。価格なし
ペア - USDCAD
2009.12.30 16:46:06に開始し、次の日に停止しました。
2009.12.30 17:29:58 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 128.トランザクションの待ち時間が終了した
43分という時間は重要ですが、さらに悪いことに、エクセルパートのアルゴリズムを台無しにしてしまいます。
さらに興味深いのは、OP_BUYSTOP注文を出そうとしたときに表示されるエラーです :-0 (保留中の注文にどんな相場があるのでしょうか?)
136 価格がない=見積もりが外れる。
画面上で常に変化しているのに、なぜ価格がないのですか?
この問題は、尊敬するgoldtraderによってここhttps://www.mql5.com/ru/forum/10590 3/page2、公式に解決されていません(この問題が、平たく言えば議論したくない一種のTABUでないことを祈ります)。
なぜそうなるのか」「このようなエラーを防ぐ、あるいは対処する方法」を教えてほしい。
人前で話したくないTABOOでないことを祈ります)。 ご回答をよろしくお願いします。
こんにちは。
専門家に質問 -
デモ口座のExpert Advisorは、引用符が渡され、価格が変更されますが、Expert Advisorは、いくつかの時間のために取引を停止している、エラーがログに生成されます。
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.BUYSTOP_tsina_vol.No prices
2009.12.30 16:46:06 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:07 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:08 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:09 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:10 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:11 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:12 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.No prices
2009.12.30 16:46:13 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 136.価格なし
Pair - USDCAD
2009.12.30 16:46:06に発生したエラーは、以下の日付で停止しました。
2009.12.30 17:29:58 --- Fynktsia put_BUYSTOP_tsina_vhdn_par: Pomulka vunuknyla pru vukonanni koda OrderSend() -- Error code = 128.トランザクションの待ち時間が終了した
43分というのはかなりの時間であり、しかもExpert Advisorのアルゴリズムを台無しにしていることに同意していただけるはずです。
さらに興味深いのは、OP_BUYSTOP注文を送信しようとしたときに表示されるエラーです :-0 (保留中の注文にどのような相場があり得るのか)
136 価格がない=見積もりが外れる。
画面上では常に変化しているのに、なぜ価格がないのですか?
この問題は、尊敬するgoldtraderによってここhttps://www.mql5.com/ru/forum/10590 3/page2、公式に解決されていません(平たく言えば、議論したくない一種のTABU問題でないことを祈ります)
。
このようなエラーが発生する「理由」と「防止策・対処法」を教えてほしい。
プラットフォームリビジョンとは何ですか?
異なるデータストリームについては、何度も議論されています。自動売買の場合は、フローが終了しています。らしい。
136 価格がない=見積もりが外れる。
これは、ニュースが出る前によく起こることです。事前に発注して、なるべく価格の後ろに引っ張らない限り、どうしようもない。43分は長すぎる。
以下は、すべての関数を削除し、必要に応じて変数を宣言したフルコードですが、結果は同じです - テストモードでは、時間に反応せず、同じバーで余分な注文を行います。
質問は、寄り付き 後の間合いについてだった。クローズ後に一時停止があります。
-
1本の棒にいくつもの開口部があります。オープン後はバーの時間を記憶し、オープン前にはバーの時間が前回のオープンの時間と等しくないことを確認する必要があります。この時間を記憶するために、GlobalVariableを使用するのがよいでしょう。
-
while (q0==0 &&i<Bars)を追加するのが良いだろう。
-
LastTime=TimeCurrent(); - 注文が本当にクローズしたかどうかをチェックした後にこれを行うのがよいでしょう: if(OrderClose(...))LastTime=TimeCurrent();
質問は、閉店 後の間際のことだった。閉店後、一旦休止となります。
-
同じバーで複数の開口部がある。開店後はバータイムを覚えておく必要があり、開店前にバータイムが前回の開店時間と同じでないことを確認する必要があります。この時間を記憶するために、GlobalVariableを使用するのがよいでしょう。
-
while (q0==0 &&i<Bars)を追加するのが良いだろう。
-
LastTime=TimeCurrent(); - 注文が本当にクローズしたかどうかをチェックした後にこれを行うのがよいでしょう: if(OrderClose(...))LastTime=TimeCurrent();
チュートリアルによると、GV変数はdouble型しか持てないそうです。
注文が終了しているかどうかを確認しましたが、まだ失敗し、エラーが表示されます。
if(Time[0]<(LastTime+Pause))return(0)。
if ((OrdersTotal()==0) { if (Bid>q0 && t>=9 && t<=20 && os1>0) OrderSend(Symbol(),OP_BUY,0.1,Ask,3,(Bid-30*Point),0,"__",555,0,Red )。
if (Ask<q1 && t>=9 && t<=20 && os1<0) OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Ask+30*Point),0,"__",444,0,Green);}; }.
if (OrdersTotal()==1) {オーダーセレクト(0,SELECT_BY_POS;)
typ=OrderType()。
tik=OrderTicket()です。
l=OrderLots()です。
if (typ==OP_BUY && os1<0) if (オーダークローズ(tik,l,ビッド,3,レッド))LastTime=Time[0]です。
if (typ==OP_SELL && os1>0) if (オーダークローズ(tik,l,アスク,3,グリーン))LastTime=Time[0]です。
}
次の注文の受付を前の注文から1時間遅らせるというタスクがうまく実装された例やリンクを教えてください。
教科書によると、GV変数はdouble型しか持てないそうですが、では、秒数はどのように入れるのでしょうか?
皆さん、明けましておめでとうございます。
1つのインジケーターで作業していましたが、すべて順調でした。その後、タイムフレームを切り替えるとターミナルがフリーズするようになり、Windowsを再インストールしましたが、まだフリーズしています。なぜ(((((((((( ;゚Д゚))))))))))))))
インジケーターランプは捨てたほうがいいかもしれませんね。ファーザー・クリスマスに聞くのもいい。大晦日です。