ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!ヒーッ!」。 - ページ 3

 
固定ロットサイズを設定すればすべてうまくいくのですが、私は動的ロットサイズが欲しいのです。そこで、上記のスクリプトを考えてみたのですが、うまくいきませんし、問題点もわかりません。@raptor 私は1000ドルの残高のうち100ドルを使いたいのですが、私のレバレッジは1:100なので、0.1ロットだと理解しています。@ onewithzachyordersend は、固定ロットサイズ、つまり
double lots=0.1;
を設定すると動作するので問題
ありませんが、以下のようにダイナミックに設定しようとすると、間違ったロットサイズと
表示されます。私の口座はマイクロで、最小0.01ロットをサポートしています。
extern int LotPercentage=10; // use 10% of balance as lot size

int start()
{

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()*/

...

return 0;

}
また、これはさらに単純ながら同じエラーを返します。
double lots;
double Balance=AccountBalance();
if(Balance<=500){lots=0.1;}                // If my account has $500 or less the lot will be 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;}                      // If account balance if over 10000 lot is 2

if(/*opening criteria met*/){
OrderSend(Symbol(),OP_BUY,lots,...)
}
理解を深めるために私がコードに含めたコメントを読んでください。
 

本当のお金でやらないでください。

10%を失うか、10%でポジションを開くか?(答え: 最初の1つ!)

double lots;                               // <<== value is zero
double Balance=AccountBalance();

if(Balance<=500){lots=0.1;}                // What the lots if Balance > 500 && <= 1000 ?

if(Balance<1500&&Balance>1000){lots=0.3;}  // read this carefully : if balance bigger than but not equal with 1000
                                           // AND balance also smaller but not equal than 1500.
                                           // Question : what's the lot if balance equal with 1000 and 1500 ?
 

口座に1000ドル入金して0.1ロット(レバレッジ1:100なら10%)でポジションを持つのと同じように、10%でポジションを持ちたいのですが、どうすればいいですか?

onewithzachy さんのおっしゃる通り、以下のように修正したらうまくいったのですが、ストラテジーテストが うまくいかなかったので、固定ロットを使うのがベストだと思います。

double Balance=AccountBalance();
if(Balance<=500||(Balance>500&&Balance<1000)){lots=0.1;}
if((Balance<=1500&&Balance>=1000)||(Balance>1500&&Balance<2000)){lots=0.3;}
if((Balance<=2500&&Balance>=2000)||(Balance>2500&&Balance<3000)){lots=0.5;}
if((Balance<=3500&&Balance>=3000)||(Balance>3500&&Balance<4000)){lots=0.7;}
if((Balance<=4500&&Balance>=4000)||(Balance>4500&&Balance<5000)){lots=0.9;}
if((Balance<=5500&&Balance>=5000)||(Balance>5500&&Balance<6000)){lots=1.1;}
if((Balance<=6500&&Balance>=6000)||(Balance>6500&&Balance<7000)){lots=1.3;}
if((Balance<=7500&&Balance>=7000)||(Balance>7500&&Balance<8000)){lots=1.5;}
if((Balance<=8500&&Balance>=8000)||(Balance>8500&&Balance<9000)){lots=1.7;}
if((Balance<=9500&&Balance>=9000)||(Balance>9500&&Balance<10000)){lots=1.9;}
if(Balance>10000){lots=2;} 
 
jameslarry:
固定ロットサイズを設定すればすべてうまくいきますが、私は動的ロットサイズが欲しいのです。そこで、上記のスクリプトを考えてみたのですが、うまくいきませんし、問題点もわかりません。@raptor 私は1000ドルの残高のうち100ドルを使いたいのですが、私のレバレッジは1:100なので、0.1ロットだと理解しています。@ onewithzachyordersend は、固定ロットサイズを設定した場合は動作するので問題ありませんが、以下のようにダイナミックに設定しようとすると、間違ったロットサイズと 表示されます。私の口座はマイクロで、最小0.01ロットをサポートしています。 また、これはさらに単純でありながら同じエラーを返します。 理解を深めるために私がコードに含めたコメントを読んでください。
私は、あなたは物事がどのように動作するかについて大きな誤解を持っていると思います。 マージン要件 とリスクは同じではありません ... もしあなたが100ドルのマージン要件に基づいてポジションサイズを作成し、トレードで負けた場合、100ドルよりも非常に大きな、または小さな損失を被る可能性があります ... マージン要件はレバレッジによって変化する ... ... リスクは変化しません。
 
いや待てよ、ターボが追加されたのだが、私は間違ってテストしていた。何度もif文を書くより、1つの計算式で計算できればいいのですが。計算式を導き出すことは可能でしょうか?
 
例えば2012年はターボで負けたが、ターボ無しで勝てた。
 
最も安全な方法はどれですか?
 
jameslarry:
いや待てよ、ターボが追加されたのだが、私は間違ってテストしていた。何度もif文を書くより、1つの計算式で計算できればいいのですが。 計算式を導き出すことは可能でしょうか?
はい、グラフに点をプロットして、y = mx + cのような線形方程式を計算することができます。
 
jameslarry:
最も安全な方法はどれですか?
何をするのか......あなたは、具体的な質問をされているにもかかわらず、実際に何をしたいのか説明していない......。... もし、あなたが助けられるように質問されたことを無視するなら、あなたはすぐに無視されるでしょう。