헉! 헉! - 페이지 4

 
RaptorUK :
무엇을 하려면. . . . 당신은 실제로 당신이하고 싶은 것을 설명하지 않았습니다. . 특정 질문을 받았음에도 불구하고. . . 도움을 받을 수 있도록 질문을 무시하면 매우 빠르게 무시됩니다.

터보로 할지 말지
 
jameslarry :

터보로 할지 말지
좋아요, 즐기세요. . 당신은 도움을 원하지 않습니다.
 
나는 빨리 너희들에게 그것을 게시하고 싶은 것처럼 그것을하는 시스템을 가지고있다.
 

글쎄, 당신이 초보자이기 때문에 가능한 가장 간단한 것을 원하는 것처럼 보이므로 가장 이해하기 쉬운 것을 찾았습니다.

 extern double LotPerThousand= 0.1 ;   // If you had 1000 balance what lot size would you use

int start()
{

double lots;

lots= NormalizeDouble ((LotPerThousand/ 1000 )* AccountBalance() , 2 );
if (lots< MarketInfo ( Symbol (),MODE_MINLOT)){ lots= MarketInfo ( Symbol (),MODE_MINLOT); }
if (lots> MarketInfo ( Symbol (),MODE_MAXLOT)){ lots= MarketInfo ( Symbol (),MODE_MAXLOT); }

...
OrderSend ( Symbol (),OP_BUY,lots,...)
...

return 0 ;
}
 
tonny :
글쎄, 당신이 초보자이기 때문에 가능한 가장 간단한 것을 원하는 것처럼 보이므로 가장 이해하기 쉬운 것을 찾았습니다.
죄송합니다. tonny 로트 크기는 minlot과 maxlot 사이여야 하며 lotStep의 배수여야 합니다.
 double NormalizeLots( double lots, string pair= "" ){
     if (pair == "" ) pair = Symbol ();
     double   lotStep     = MarketInfo (pair, MODE_LOTSTEP),
            minLot      = MarketInfo (pair, MODE_MINLOT);
    lots            = MathRound (lots/ls) * ls;
     if (lots < minLot) lots = 0 ;     // or minLot
     return (lots);
}
 
tonny :

글쎄, 당신은 당신이 초보자이기 때문에 가능한 한 가장 간단한 것을 원하는 것 같기 때문에 나는 가장 이해하기 쉬운 것을 찾았습니다.


빙고! Tony는 전략 테스터 에서 작동하고 백분율을 유지하면서 로트 크기를 자동으로 증가시키길 원했던 것입니다. 수많은 if 문 덕분에 이전 것보다 낫습니다. 감사합니다! :-)
 
글쎄요, 수학을 기억하고 있습니다. 만약 a가 b라면 c는 to인가요? 공식은 (b/a)*c가 됩니다. 이 경우 c는 계정 잔액 입니다. 그리고 결과는 d:d의 비율을 따릅니다. 즉, 결과가 d이고 a:b는 c:d와 같고 b:a는 d:a와 같은 비율입니다. 그런 다음 계산에서 두 자릿수보다 더 많은 소수 자릿수를 반환하는 경우 계산에서 잘못된 로트 크기로 거부할 수 있는 소수점 이하 자릿수를 반환하는 경우 로트 값을 반올림한 소수점 이하 두 자리를 얻기 위해 수식을 normalize double에 넣으면 됩니다. 거기에서 이 값이 최소 요구 로트보다 작은지 확인하십시오. 그렇다면 최소 요구 로트를 사용하고 최대 요구 로트보다 높으면 최대 로트 값을 사용하십시오.
/* new value of lot would be (old lot/old balance)*new balance in this case we fix old balance at 1000 and new balance is the current balance i.e. (LotPerThousand/1000)*AccountBalance() */

lots= NormalizeDouble ((LotPerThousand/ 1000 )* AccountBalance (), 2 );                             // round two 2 decimal places incase more than 2 decimal places is returned
if (lots< MarketInfo ( Symbol (),MODE_MINLOT)){ lots= MarketInfo ( Symbol (),MODE_MINLOT); }         // if lower than minimum required use the minimum
if (lots> MarketInfo ( Symbol (),MODE_MAXLOT)){ lots= MarketInfo ( Symbol (),MODE_MAXLOT); }         // if higher than maximum required use the maximum
 
매우 감사합니다!
 
WHRoeder :
죄송합니다. tonny 로트 크기는 minlot과 maxlot 사이여야 하며 lotStep의 배수여야 합니다.

친애하는 WHRoeder, 오류가 많은 코드를 제공하여 사람들을 오도하지 마십시오. 코드에 ls 개체를 정의하지 않았고 사용하도록 누군가에게 제공하고 있습니다. 장난을 중지하십시오.

 
tonny :

글쎄, 당신이 초보자이기 때문에 가능한 가장 간단한 것을 원하는 것처럼 보이므로 가장 이해하기 쉬운 것을 찾았습니다.


tony 당신이 준 코드에 의해 대단히 감사합니다. 정말 잘 작동했습니다.



나는 2 일에서 그것을 찾고 있었고 심지어 내 아내와 싸웠습니다!


감사해요

사유: