ヘルプファインターンEA - ページ 2

 
delcor wrote>>

このEAを動かすとどうなるのか、一歩一歩示すようなEAプログラムのテストシステムはないのですか?

テスト用のステップFTNはありません。プログラムのチェックや様々な部分の値を表示するためにプリントを使います。

 

Lots Optimisationのコードが気に入っています。

 
ronaldosim:

ロット最適化のコードが気に入ったので、損失が大きくなるにつれてロット数を増やすように調整した。

見せてください

またはEAをお送りください。

 
delcor:

表示する

またはあなたのEAを送信してください

エラーになります

関数"CalculateCurrentOrders" は参照されていないので、Exp-file から削除されます。
 
delcor wrote>>

エラーが表示されます。

関数 "CalculateCurrentOrders" は参照されていませんので、Expファイルから削除されます。

このエラーは無視してください。これは、あなたが使っていないCalculateCurrentOrdersという関数があるから、それを削除するか、leveaするか、どちらかだと言っているだけです。

 
delcor wrote>>

表示する

またはあなたのEAを私に送ってください

関数LotOptimizationの下で、コードを次のように変更してください。

Lot=lot*MulltiplyingFactor*losses(ロット*マルチプライングファクター*損失

ここで、MulitplyFactor = 2 or 3 or 4 etc, DecreaseFactorに似ていて、損失が大きくなるにつれてロットサイズを小さくしていくようなものです。

とはいえ、損失が大きくなるにつれてロットサイズを大きくするのはEAにとって危険ですので、注意して使ってください。

 
ronaldosim:

関数LotOptimizationの下で、コードを以下のように変更します。

Lot=lot*MulltiplyingFactor*losses (ロット*損失)

ここで、MulitplyFactor = 2 or 3 or 4 etc., DecreaseFactorと同様、損失が大きくなるにつれてロットサイズを小さくしていくものである。

とはいえ、損失が大きくなるにつれてロットサイズを大きくしていくのはEAにとって危険なので、注意して使ってください。

というような意味でしょうか?

//+------------------------------------------------------------------+
//| 最適なロットサイズを計算する
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots*Multiplying*losses.Lots=Lots*Multiplying*Losses;
int orders=HistoryTotal(); // ヒストリーの注文数
int losses=0; // ブレークのない損失注文の数
//ロットサイズを選択
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- 損切り注文数を計算する。
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; } { If(OrderSymbol()!
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0)break。
if(OrderProfit()<0)損失++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1)。

//---- ロットサイズを返す
if(lot<0.1)lot=0.1。
return(lot)。
}
 
delcor wrote>>

こんな感じでしょうか?

//+------------------------------------------------------------------+
//| 最適なロットサイズを計算する
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots*Multiplying*losses;
int orders=HistoryTotal(); // ヒストリーの注文数
int losses=0; // ブレークのない損失注文の数
//ロットサイズを選択
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- 損切り注文数を計算する。
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; } { If(OrderSymbol()!
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0)break。
if(OrderProfit()<0)損失++;
}
if(losses>1) lot=NormalizeDouble(Lots*Multiplying*losses;,1);}.
//---- ロットサイズを返す
if(lot<0.1) lot=0.1;
return(lot)。
}

の後に書いてください。

 
ronaldosim:

いいえ、if(loss>1)の後に記述してください。

it gives me an error

'Multiplying' - variable not defined C:\Program Files Indie InterbankFX Trader 4

Where do I defined it

 
delcor:

it gives me an error

'Multiplying' - variable not defined C:\Program Files Interbank FX Trader 4╱experts ◇ jbtest4.mq4 (57, 44)

where do I defined it



OK I have int multiplying=2;