헉! 헉! - 페이지 3

 
고정 로트 크기를 설정하면 모든 것이 잘 작동하지만 동적 로트 크기를 원합니다. 그래서 위의 스크립트를 생각했지만 작동하지 않고 문제를 모릅니다. @raptor 내 레버리지가 1:100이기 때문에 내가 이해하는 1000달러 잔액 중 100달러를 사용하고 싶습니다. 내가 설정한 백분율, 즉 10%, 20% 또는 내가 설정한 잔액/마진 중 하나에 따라 $200(0.2 랏)으로 거래합니다. @원위자치 ordersend는 고정 로트 크기를 설정하면 작동하므로 괜찮습니다.
 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%로 오픈 포지션을 원하십니까? (답변 : 첫 번째!)

 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를 예치할 수 있는 것과 같은 방식으로 10%로 포지션을 개설하고 0.1랏(레버리지가 1:100인 경우 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 내 레버리지가 1:100이기 때문에 내가 이해하는 1000달러 잔액 중 100달러를 사용하고 싶습니다. 내가 설정한 백분율, 즉 10%, 20% 또는 내가 설정한 잔액/마진 중 하나에 따라 $200(0.2 랏)으로 거래합니다. @원위자치 Ordersend는 고정 로트 크기를 설정하면 작동하기 때문에 괜찮지 만 아래와 같이 동적화하려고 하면 잘못된 로트 크기라고 표시됩니다. 내 계정은 마이크로이며 최소 0.01랏을 지원합니다. 또한 이것은 더 간단한 동안 동일한 오류를 반환합니다. 더 잘 이해하려면 코드에 포함된 주석을 읽으십시오.
나는 당신이 일이 어떻게 작동하는지에 대해 큰 오해를 가지고 있다고 생각합니다. . . 증거금 요건 과 위험은 같은 것이 아닙니다. . . 증거금 요건 $100에 따라 포지션 규모를 만들고 거래에서 잃으면 $100보다 훨씬 많거나 적은 손실을 입을 수 있습니다. . . 레버리지에 따라 증거금 요구 사항이 변경됩니다. . . 위험하지 않습니다.
 
아니 잠깐만 그것은 내가 그것을 잘못 테스트 한 일부 터보를 추가했습니다. 수많은 if 문보다 하나의 공식을 사용하여 계산할 수 있다면 좋을 것입니다. 공식을 유도할 수 있습니까?
 
ok 일부 상황에서는 위험합니다. 예를 들어 2012년에는 터보로 졌을 수 있지만 없이는 얻었을 것입니다.
 
가장 안전한 방법은 무엇입니까?
 
jameslarry :
아니 잠깐만 그것은 내가 그것을 잘못 테스트 한 일부 터보를 추가했습니다. 수많은 if 문보다 하나의 공식을 사용하여 계산할 수 있다면 좋을 것입니다. 공식을 유도할 수 있습니까?
예, 그래프에 점을 그린 다음 y = mx + c 형식으로 선형 방정식을 풀 수 있습니다.
 
jameslarry :
가장 안전한 방법은 무엇입니까?
무엇을 하려면 . . . . 당신은 실제로 당신이하고 싶은 것을 설명하지 않았습니다. . 특정 질문을 받았음에도 불구하고. . . 도움을 받을 수 있도록 질문을 무시하면 매우 빠르게 무시됩니다.
사유: