ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!」。

 

ロットの問題ですが、私が考えたスクリプトをここで試しましたが、ストラテジーテストで 間違ったロットサイズのエラーが出ました。履歴データがいくつかの関数をサポートしていないのか、それとも何か分かりません。スクリプトはEURUSD用です。それともストラテジーテスターの問題なのでしょうか?

extern int LotPercentage=10; // use 10% of balance as lot size


double LotInBalance=(LotPercentage/100)*AccountBalance(); // find the amount that is 10% of balance lets assume its $1000
double LotUnits=LotBalance*AccountLeverage(); // multiply this 10% balance($100) by leverage to get lot units
double lots=NormalizeDouble((LotUnits/100000),2); // expected to return 0.1
/* divide this lot units by 100,000(standard lot size units) and normalize to 2 decimal places to get something like 0.1 if account balance is say $1000 for use in ordersend()*/

 
jameslarry:

ロットの問題で、ここにあるスクリプトを試したのですが、ストラテジーテストでロットサイズが違うというエラーが出ました。履歴データがいくつかの関数をサポートしていないのか、何なのか分かりません。スクリプトはEURUSD用です。それともストラテジーテスターの問題なのでしょうか?

extern int LotPercentage=10; // use 10% of balance as lot size


double LotInBalance=(LotPercentage/100)*AccountBalance(); // find the amount that is 10% of balance lets assume its $1000
double LotUnits=LotBalance*AccountLeverage(); // multiply this 10% balance($100) by leverage to get lot units
double lots=NormalizeDouble((LotUnits/100000),2); // expected to return 0.1
/* divide this lot units by 100,000(standard lot size units) and normalize to 2 decimal places to get something like 0.1 if account balance is say $1000*/

あなたは助けを必要としない、あなたはすでに持っている(https://www.mql5.com/en/forum/140034)!でも、あなたは失敗している!

 
こんにちは、私が持っているコードは、"ゼロ除算"エラーを引き起こし、他のは大きく、未テストです。私のスクリプトをチェックして、どこが間違っているのか教えてもらえますか?残高が1000ドル、レバレッジが1:100の場合、0.1ロットで取引したいのですが、単純なことなのですが、頭が痛いです。(10/100)*AccountBalance() を計算して$100を得たら、OrderSendのためにそれを0.1にするにはどうしたらいいのでしょうか。また、私はロット部分だけのためにストップロスを管理するスクリプトを望んでいません。
 
jameslarry:
こんにちは、私が持っているコードは "ゼロ除算 "エラーを引き起こし、他のコードは大きく、未検証 です。
あなたは他の人があなたのためにコードを書き それをテストすることを望みますか?
 
そうです、私のコードで何が間違っているのか聞いているだけです。Onewitchがくれたコードもテストしてみました でも、SLで何かしているみたいで、スクリプトにはさせたくないんです。
 
jameslarry:
はい、私のコードで何が間違っているのかを聞いているだけです。また、コードをテストしていますが、スクリプトにさせたくないSLで何かをしているよう です。
負けトレードのどの時点で、選択した最大損失を経験したいのでしょうか?
 
このスレッドを読む: https://www.mql5.com/en/forum/134659
 
こんにちは、私もこれを試しましたが、上記と同じエラーが出ました。多分、AccountBalance() と AccountFreeMargin() がstrategy tester で動作しないのでしょう。そして、もし私が3000ドルを持っていたら、AccountBalance()の値は3000か何か他のものであろうと尋ねるかもしれません。私は盗聴場合は申し訳ありません。
double Balance=AccountBalance();
if(Balance<=500){lots=0.1;}
if(Balance<1500&&Balance>1000){lots=0.3;}
if(Balance<2500&&Balance>2000){lots=0.5;}
if(Balance<3500&&Balance>3000){lots=0.7;}
if(Balance<4500&&Balance>4000){lots=0.9;}
if(Balance<5500&&Balance>5000){lots=1.1;}
if(Balance<6500&&Balance>6000){lots=1.3;}
if(Balance<7500&&Balance>7000){lots=1.5;}
if(Balance<8500&&Balance>8000){lots=1.7;}
if(Balance<9500&&Balance>9000){lots=1.9;}
if(Balance>10000){lots=2;}
 
jameslarry:
こんにちは、私もこれを試したが、それは上記のように同じエラーを与えた 多分AccountBalance() と AccountFreeMargin() dont work on strategy tester here is the code because im starting with a balance of $3000 in the test but it keeps giving error 4051 invalid lots amount.もし私が$3000を持っているならば、AccountBalance() の値は$4051になるのでしょうか?そして、もし私が3000ドルを持っていたら、AccountBalance()の値は3000か何か他のものであろうと尋ねるかもしれません。私は盗聴場合は申し訳ありません。

やれやれ。

そのエラーが出るのは、...その量のロットを開けるためのコストを計算していないからです。 あなたの他のスレッドhttps://www.mql5.com/en/forum/140034https://www.mql5.com/en/forum/140034/page2#649957 を読んでください。

 
また、AccountBalance()が返す値は$なのか、それとも他の単位なのか。
 
jameslarry:
また、AccountBalance()が返す値は、$なのか、それとも他の単位なのでしょうか?

あなたの口座の通貨で戻ってきます。ここに添付ファイルをあげましたhttps://www.mql5.com/en/forum/140034

このようにロット計算を正しく行うには、どのように修正すればよいのでしょうか?https://www.mql5.com/en/forum/140034