コーディングのヘルプ - ページ 422

 
Mastercash:
私は、use moneymanagementをfalseに設定しましたが、Lotsパラメータについては、Lotsではなく、open ordersの数についてです。私は、eaが任意の時間に5つ以上の注文を開くことを望んでいません。そのため、入力パラメータでNumberofTradesパラメータを5に設定しましたが、それはまだ私をあえて、5以上の注文を取って、それによって私のマネーマネジメントの脅威となります

マスターキャッシュ

これは、それをテストした結果です。

ご覧のように、同じシンボル、同じマジックナンバーで同時に5つ以上の注文を出すことはありません。

ファイル:
5_test.gif  87 kb
 

OK, I can see... I just don't want it to take more than 5 order for different symbols... e.g, lets say there are trading signal from 10 symbols within last 20 minutes... The ea should take only first 5 trading signal, then when any of those five order close, he can take one more, making sure the current running orders across various symbol does not exceed 5.But it keep on exceed 5, no matter... Sometimes it takes 5 same order from the same symbol that also are wrong....私は、このソフトが、違うシンボルの5つ以上のシグナルを取らないようにしたいと思うのですが...

mladen:
マスターキャッシュ

これはテストした結果です。

見ての通り、同じシンボル、同じマジックナンバーで同時に5つ以上の注文を出すことはありません。
 
Mastercash:
OK, I can see... I just don't want it to take more than 5 order for different symbols... e.g. lets say there are trading signal from 10 symbols within the last 20 minutes... the ea should take only first 5 trading signal, then when any of those five order close, he can take one more, making sure the current running orders across various symbol does not exceed 5.but it keep on exceed 5, no matter...Sometimes it takes 5 same order from the same symbol which is also wrong...(同じシンボルに対して、5つの注文を出すのは間違いですが、そのシグナルが5つを超えないようにするためです。

もし、全てのシンボルで最大5つの注文を出したいなら、144行目(if( OrderSymbol() != Symbol() ) continue;)を削除してください。そして、すべてのシンボルのインスタンスのマジックナンバーを同じにしてください(そうすれば、すべてのシンボルでそのEAによってのみ開かれた注文を数えることができます)。

 

こんにちは、Mladenです。

私は、高いTFに設定すると更新されない素敵なインディを持っています。

編集しない場合、チャート上で見ることができるように、それは止まったままです。この問題を解決するのを助けていただけませんか?

私は指標とスクリーンショットを追加します。

ファイル:
 
wolfsch:
こんにちは、Mladen

私は、高いTFに設定するとリフレッシュされない素敵なインディを持っています。

編集しない場合、チャート上で見ることができるように、それは止まったままです。その問題を解決するために助けていただけませんか?

インジケータとスクリーンショットを追加します。

ウォルフシュ

これはビジュアルバックテストでのみ起こりうることで、(少なくとも7-8ヶ月間メタトレーダーが修正しなかったエラーであり、インジケータのエラーではなくメタトレーダーのエラーです)ビジュアルバックテストでは すべてのマルチタイムフレームインジケータに起こります。

通常の使用では問題なく動作します(念のため今テストしてみましたが、通常のチャートではすべて想定通りに動作しました)。

 

ありがとうございます、これに取り組んでお返事します。

mladen:
もし全てのシンボルで最大5つの注文を出したいなら、144行目(if( OrderSymbol() != Symbol() ) continue;) を削除してください。そして、すべてのシンボルのインスタンスのマジックナンバーを同じにしてください(そうすれば、すべてのシンボルでそのEAによってのみ開かれた注文を数えることができます)。
 
mladen:
TFI

バッファ3は正しいものです(「トレンド」バッファで、値1が上昇スロープ、値-1が下降スロープです)。あなたはシフト1と2を使用しているため、1番目のクローズドバーをテストしています。

コードの購入部分はOKです。

以下の部分が抜けています。

if(trendc!=trendp)が抜けています。

不具合の原因と思われる部品アリから

Mladenさん、こんにちは。

ご親切にありがとうございます。ご指摘の通り、コードを変更しました。

ピップ計算も問題なく、スムーズに取引できています。

しかし、現在ではショートトレードを開くことができなくなりました(ストラテジーである可能性もあります;-)。

ロングポジションを閉じるだけです。

もう一度アドバイスをお願いします。

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

//+-----------------------------------------------------+

//| BUY |

//+-----------------------------------------------------+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_BUY && OP_BUY<maxlongtrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==1 && (CCIFilter<80)) // code for buy

OpenBuy();

return(0);

}

openedOrders++;

}

//+----------------------------------------------------+

//| SELL |

//+----------------------------------------------------+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL && OP_SELL<maxshorttrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==-1 && (CCIFilter>80)) // code for sell

OpenSell();

return(0);

}

openedOrders++;

}

}

詳細は添付のスクリーンショットをご覧ください。

よろしくお願いします。

よろしくお願いします。

TFI

ファイル:
backtest.jpg  163 kb
 
tfi_markets:
Mladenさん、こんにちは。

ありがとうございます。ご指摘の通り、コードを変更したところ

スムーズに取引でき、ピップ計算もうまくいっています。

しかし、今はもうショートトレードを開くことができません(ストラテジーかもしれません;-)。

ロングポジションを閉じるだけです。

もう一度アドバイスをお願いします。

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

//+-----------------------------------------------------+

//| BUY |

//+-----------------------------------------------------+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_BUY && OP_BUY<maxlongtrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==1 && (CCIFilter<80)) // code for buy

OpenBuy();

return(0);

}

openedOrders++;

}

//+----------------------------------------------------+

//| SELL |

//+----------------------------------------------------+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL && OP_SELL<maxshorttrades) break; // Check Traded Positions.

{

if(trendc!=trendp)

{

if(trendc==-1 && (CCIFilter>80)) // code for sell

OpenSell();

return(0);

}

openedOrders++;

}

}

詳細は添付のスクリーンショットをご覧ください。

よろしくお願いします。

よろしくお願いします。

ティファール

TFI

このようなことを試してみてください。

extern double maxshorttrades = 2;

extern double maxlongtrades = 2;

//-----------------------------------------------------

//

//-----------------------------------------------------

int clongs = 0;

int cshorts = 0;

for (i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check Long Traded Positions.

if(OrderType()==OP_SELL) cshorts++; // Check Short Traded Positions.

}

if(trendc!=trendp)

{

if(clongs < maxlongtrades && trendc== 1 && (CCIFilter<80)) OpenBuy();

if(cshorts 80)) OpenSell();

// Check the CCI condition

// it is not symetrical to buy condition

}

 

mladenです。

144番の変更を行い、シンボルインスタンスのマジックナンバーを「MagicNumber」に統一しました。このようなライブ注文のイメージを参照してください。

Mastercash:
ありがとうございました、私はあなたに戻って取得するこのに取り組んでいきます....
ファイル:
apcorrimage.png  39 kb
 
Mastercash:
mladenさん、144番を変更し、シンボルインスタンス間のマジックナンバーを「MagicNumber」に統一しました。このようなライブ注文の画像をご覧ください。

それはそのコード部分には依存しません

同じバー、同じシンボルで注文を出さないように、残りのコードにチェックを 入れる必要があります。