int start() { if(OrdersTotal()!=0) return; //1つの取引のみフォローする。
//---- if (Bid - iOpen(NULL,0,0)<=Delta*Point) //The price fell by less or = Delta pips //Null-tech instrument, 0-tech.chart, 0-tracking text bar { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Buy",MagicNumber,11111,Green);
{
if(OrdersTotal() !=0) return;
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //価格がDeltaポイント以上下落した
......
if(OrdersTotal ()!=0) return;
他の人の注文(他のシンボルやマジックを使う)はどうするのですか?テスターではうまくいきますが、このEA以外にアカウントに何か入っている場合、正しい方法は以下のようになります。
この関数は、指定された(渡された)マジシャンと現在のシンボルによって開かれた位置がない場合、false を返します。
彼がどれだけ混乱するか想像してみてください。だから、彼がより理解しやすいように書きました。
2件ともキャッチアップ、ありがとうございました。
私の条件ではディールはトリガーされません
Delta=30
Expert Advisor でポジションを pips で +-30オープン したいことを意味しています。でも、上下に5~10pipsで開くので、よくわからない...。
もしかしたら、他に簡単な解決策があるかもしれませんね。
ある関数を見つけました
Distance=30 // 現在価格から保留注文 価格までの 距離
保留注文に限らず実装できるのでしょうか?
アイデアは同じです:現在のバー、そのオープン価格を追跡し、5分間のバーの間に、その価格は、その5分間のバーのオープン市場から、例えば30ピップ増加または減少する場合、その時だけ位置を開く....。
私のストラテジーは、保留中の注文では動作しません......
そして、あなたは自分のコード全体をここに掲載することになります。そして、デルタがうまくいかない理由もご覧ください...。
以下は、コードの全体像です......。
確かにそうですね。デルタ...動作しない
どうやら、ここでは、デルタの符号(極性)で購入時に理解する必要があると販売時に、上記のコードで "のために"、例えば、値を買って(iOpen(NULL、0、0)-すべての時間を求めることは負になります。そして、バー(iOpen(NULL,0,0)-Ask>=Delta...)のオープン価格でトレードが開始されます。
この方法でやってみたら(買ってみたら)-。
{
if(OrdersTotal()!=0) return; //1つの取引のみフォローする。
//----
if (Bid - iOpen(NULL,0,0)<=Delta*Point) //The price fell by less or = Delta pips
//Null-tech instrument, 0-tech.chart, 0-tracking text bar
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Buy",MagicNumber,11111,Green);
} }.
if (Ask - iOpen(NULL,0,0)>=Delta*Point) //価格がそれ以上または= Deltaポイント上昇
{
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green);
} } } { OP_Sell,Lots,Bid,3,Bid+StopLoss,Delta*Point,Sold",MagicNumber,22222,Green)
//----
return(0);
}.