double sSup=Sup-(Udal*Point); // Sup - это уровень поддержки, Udal - расстояние от него
zapS=0;
for(int iS=0; iS<=OrdersTotal(); iS++) // перебор открытых ордеров
{
if(OrderSelect(iS,SELECT_BY_POS,MODE_TRADES)==true) // выбор рыночного ордера
{
if(OrderSymbol()!=Symb) continue; // только нужный инструментif(OrderType()>1) continue; // только рыночные
sPO=OrderOpenPrice(); // его цена
sellTip=OrderType(); // его типif(sPO==sSup && sellTip==1) zapS=1; // если цена открытого ордера совпадает с sSup и уровень является Sell, то поднять флаг
}
}
こんにちは。
また、実際の口座では、取引注文を実行する際に多くの間違いがあります。例えば、今日。
2013.01.10 13:46:09 '15082': Buy 0.15 EURUSD at 1.30844 sl: 1.30758 tp: 0.00000
2013.01.10 13:46:10 '15082': リクエストがサーバーに受け入れられました。
2013.01.10 13:46:10 '15082': requote 1.30843 / 1.30858 for open buy 0.15 EURUSD at 1.30844 sl: 1.30758 tp: 0.00000
2013.01.10 13:46:11 '15082': instant order buy 0.15 EURUSD at 1.30869 sl: 1.30785 tp: 0.00000
2013.01.10 13:46:11 '15082': リクエストがサーバーに受け入れられました。
2013.01.10 13:46:11 '15082': リクエスト処理中
2013.01.10 13:46:13 '15082': 注文が開始されました : #12941470 buy 0.15 EURUSD at 1.30869 sl: 1.30785 tp: 0.00000
つまり、シグナルからポジションをオープンするまでに4秒かかっているのです。 そして、私が思うに、これは限界ではありません。
この遅れの原因は、15ポイント差で注文がリクオートされたからです。
どう戦えばいいんだ? 15pipsなんてどうでもいいんだ。成行で注文を出したいのですが、1秒間の価格変動は関係ないのですか?結果、1. 30858で 開くべきところを、1.30869で 高く開いてしまったのです。 この問題は、シグナルでオープンできず、修正開始を待っている場合、Expert Advisorの収益性/損失にとって致命的となる可能性があります。
ありがとうございます。
証券会社を変えることを強くお勧めします。この証券会社の名前を個人的なメッセージとして送ってもらえますか?
ファックオフ」の大きさは「スリッページ」と呼ばれる注文パラメーターで設定される。あなたの場合は0だったので、見積もりが1ptずれると再見積もりになってしまいます。
そこに1ptがないかのように...作らないでください。
ヘロイン
証券会社のことはよくわからないし、Finamと契約していて、モデムで取引しているので、自分の注文がどの証券会社に行くのかわからない......。自分の注文がどこの証券会社に行くのか......その辺はまだよくわからないんです。
自分のスプレッドがどうなっているのか、全く分からない。euでスプレッドが変動しているので、可能性は低いですが15pips以下になる可能性があります。30pipsくらいを考えています。
注文を確定する条件が整った途端、端末がフリーズしてメッセージが表示された
2013.01.10 14:47:45 TradeContext: Pingエラー
2013.01.10 14:48:50 '15082': Pingに失敗しました。
再ログインを何度か試みた後、注文は締め切られました :)
一般的に言えば、トレーディングは楽しいし、自動化されているので、常にエラーを修正しなければなりません :)
皆さん、こんにちは。
皆さん、以下のコードで問題を解決する方法をアドバイスしてください。
問題はif(sPO==sup && sellTip==1) zapS=1; という行にある(正確には sPO==sup という断片にある).次の問題:例えば、sPO=1,3100 と sSup=1,3100 の場合、フラグはまだ 0 になります(値 1,3100 はPrint によって両方の値で出力されます)。どこを間違えているのか?zapSが1にならないのはなぜですか?皆さん、こんにちは。
皆さん、以下のコードで問題を解決する方法をアドバイスしてください。
問題はif(sPO==sup && sellTip==1) zapS=1; という行にある(正確には sPO==sup という断片にある).次の問題:例えば、sPO=1,3100 と sSup=1,3100 の場合、フラグはまだ 0 になります(値 1,3100 は Print によって両方の値で印刷されます)。どこを間違えているのか?zapSが1にならないのはなぜですか?https://www.mql5.com/ru/articles/1561
https://www.mql5.com/ru/articles/1561
皆さん、こんにちは。
皆さん、以下のコードで問題を解決する方法をアドバイスしてください。
問題はif(sPO==sup && sellTip==1) zapS=1; という行にある(正確には sPO==sup という断片にある).次の問題:例えば、sPO=1,3100 と sSup=1,3100 の場合、フラグはまだ 0 になります(値 1,3100 は Print によって両方の値で印刷されます)。どこを間違えているのか?zapSが1にならないのはなぜですか?こんにちは、私は複数のEAが同時に動作し、1つの注文だけが開き、それらの残りの部分は信号を無視し、何が間違っているのか助言してください理解できません。注文 - マジシャンの注文数を 決定する関数
total=OrdersTotal()。
if(total >=-1 && total ==Orders(symbol,operation,magic))。
こんにちは、私は複数のEAが同時に動作し、1つの注文だけが開き、それらの残りの部分は信号を無視し、何が間違っているのか助言してください理解できません。注文 - マジシャンの注文数を決定する関数
total=OrdersTotal()。
if(total >=-1 && total ==Orders(symbol,operation,magic))。
この異常な状態は何なんだ!:)
この演算子をロシア語で書いていただければ、文字列を修正するようにします。
私は、DBLHCとDBHLCという よく知られたプライスアクションのパターンを使う ことを思いつきました。
その形成条件:
DBLHC(ブルセットアップ)- 同じ安値と高い終値を持つバー。
同じ安値を持つ2本(3本以上の場合もある)の連続したバーで、最後の1本の終値が前の1本の終値の最大値より高くなること。隣接するバーの安値の差は3ピップスを超えてはならない。セットアップを構成するバーの数が多ければ多いほど、強い信号を発生させることができます。
DBHLC (弱気セットアップ)- 高値と終値が等しいバー。
同じ最大値を持つ2本(3本以上)の連続したバーで、最後のバーの終値が前のバーの最小値より低い場合。隣接するバーの最大値の差は3ポイント以内でなければならない。セットアップを構成するバーの数が多ければ多いほど、強い信号を発生させることができます。
例えば、DBLHC (Bullish Setup)
現在のバーのオープンプライスは、前のバーの最小値に近いはず です。書きやすいんです。しかし、我々が関心を持つのは、同じ最小値、あるいはほとんど同じ最小値を持つバーが複数ある場合、例えば、5である。そんなとき、私たちはどのように仕事をすればいいのでしょうか。前のバーだけでなく、ヒストリーの前のバーも考慮するように、この条件を指定するにはどうしたらよいでしょうか。
過去から現在までのバーをループさせればいいのでしょうね。
そして、次のバーの最小値が前のバーの最小値と同じであれば、さらにそれを比較する...という条件を何らかの形で設定する必要があります。どのように実装するのか?
ここでヒントです。
NormalizeDouble(Low[i]-Low[i+1],Digits)<=3*Point --- 隣接するバー間の差分です。条件を満たさない場合 → Return(False); (偽を返す)
ループを抜けた後にReturn(False)
違う方法でやればいいんです。
NormalizeDouble(Low[i]-Low[i+1],Digits)<=3*Point の条件が真であれば、隣接するバーのカウンタ(最初は0に等しい)を1だけ増やします。
が偽の場合、隣接するバーカウンターの値を返す。
関数が返す数値が大きければ大きいほど、集合は強くなる。ゼロが返された場合 - セットアップが存在しない。