コーディングの方法は? - ページ 22

 

クロスした時に int crossTime = Time[0] と書き、変数 crossTime を使って iBarShift関数で 何本目のバーが経過したかを常に確認できます。

 

Kalenzoさん、こんにちは。

Kalenzo:
クロスがあったときにint crossTime = Time[0]と書いておいて、変数crossTimeを使ってiBarShift関数で何本経過したかを確認するのはいつでもできます。

ベアバー」だけをカウントに含めるには、このコードはどのように書くのでしょうか?

I understand the ibarshift but this would include all bars since cross. 私のように "Bear Bars "をカウントするためにカウントシステムを使用する必要があり、これが私の問題があるところだと思います。

私はもともとこのコードで私のコードをテストしました....しかし、私のEAに実際に表示される上記のコードには変換されませんでした。

int start()

{

//----

double f=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,0);

double s=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,0);

double fp=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,1);

double sp=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,1);

static bool CrossedUP,CrossedDn;

static int Count=0;

if(f>s && fp<=sp)

{

CrossedUP=true;

CrossedDn=false;

Alert(Symbol()," Crossed UP");

Count=0;

}

else

if(f=sp)

{

CrossedUP=false;

CrossedDn=true;

Alert(Symbol()," Crossed Down");

Count=0;

}

if(NewBar()==true && f>s || f<s) Count++;

Comment("Crossed UP: ",CrossedUP," Crossed Down: ",CrossedDn," Bars since Cross: ",Count);

//----

return(0);

}

他に何かご意見がありましたらお願いします。

ありがとうございます。

SaxMan

 

ごめんねオムレツ。

これでもダメなんです

ありがとうございます。

サックスマン

omelette:
こんにちは、これを試してみてください。
bool LongClose()

{

if(MAFastC=MASlowP)

{

CrossedUp=false;

CrossedDn=true;

BarCount=0;

}

else

if(MAFastC>MASlowC && MAFastP<=MASlowP)

{

CrossedUp=true;

CrossedDn=false;

BarCount=0;

Alert("Crossed Down");

}

if(CrossedDn==true && NewBar()==true && Candle3mP=="Bear")

BarCount++;

if(BarCount>=2 && Candle3mC=="Bear")

{

Alert("Close Long Position");

return(true);

}

else return(false);
 

EAコードに時間制限を設ける

私のEAにタイムリミットを設定することができません。

コードラインは次のとおりです。

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)

ゼロを1にしたり、12にしたりしてみましたが、取引を停止させることができません。

バックテストを使って いるのですが、うまくいくかどうか確認するために。

 

試してみると...。

{

string expire_date = "2007.10.22";

datetime expirevar = StrToTime(expire_date);

if ( CurTime() >= expirevar )

{

アラート("Version Expired");

return(0);

// コード

return(0);

デイブ

 
islandrock:
私のEAに時間制限を設けることができません。

のコードラインは以下の通りです。

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)

ZEROを1や12に変えてみましたが、取引を停止させることができません。

バックテストをしているのですが、動作するかどうか確認するために。

エラーチャネルを確認してください。

一部の取引サーバーでは、保留中の注文の有効期限の適用が無効になっていることがあります。この場合、expiration パラメータに0以外の値が指定されると、エラー 147(ERR_TRADE_EXPIRATION_DENIED)が生成されます。

パラメータは'datetime'変数ですが、12がその変数宣言の中に入るとは思えません。

 
islandrock:
私のEAにタイムリミットを設定することができません。

のコードラインは以下の通りです。

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)

ZEROを1や12に変えてみましたが、取引を停止することができません。

バックテストをしているのですが、有効期限はそれで大丈夫ですか?

有効期限タイムアウトは MTで問題なく機能します。唯一の注意点は、一部のブローカーがこれを許可していないことです。 有効期限は日付と時刻の 形式である必要があります。

datetime ExpirationTime = StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0])+ "." + TimeDay(Time[0])+" "+23+":"+55); OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,"timetest",16384,ExpirationTime,Green);
 

を試してみました。

extern int TradeLifeHour=12;

extern int TradeLifeMin=00;

datetime expirationtime; (ここに何が入るのかわかりませんでした)

そしてstart()内で

expirationtime = CurTime()+TradeLifeHour*60*60+TradeLifeMin*60;

とし、0 の領域で expirationtime を使用します。

最後のコードですが、12時間後にトレードを終了するように設定する方法がわかりません。

 
xxDavidxSxx:
これを試してみてください....

{

文字列 expire_date = "2007.10.22";

datetime expirevar = StrToTime(expire_date);

if ( CurTime() >= expirevar )

{

アラート("Version Expired");

return(0);

// コード

return(0);

}

デイブ

あげたコードをそのまま使ってみました。日付を2006年に変えて、リアルマネーFXDD口座のBipolerの中の適当な場所に叩き込んだら、見事に動いた。

それとも単純すぎるのかな?どうでしょう?

Dave

 

??

このコードでは、私のEAが開いた各取引の有効期限を、開いた時点から12時間にすることはできません...