MQL5 언어를 처음부터 자가 학습 - 페이지 81

 
Alexey Viktorov # :

이거 안썼으면 진짜...

다음은 작업 기능입니다.

전체 무료 마진에서 계산하지 않으려면 위험 금액을 입력하는 것만으로 충분합니다 ...

귀하의 응답에 대해 Alexey에게 감사드립니다! 제 버전에서는 로트 계산이 잘 되는데, 코드에서 어레이가 등록된 부분만 안되네요.

원래는 서로 다른 통화 쌍에 대해 서로 다른 위험 수준을 설정할 수 있도록 고안되었습니다.

다중 통화 고문을 위해 코드를 사용하는 방법은 솔직히 아직 잘 모르겠습니다.

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin # :

귀하의 응답에 대해 Alexey에게 감사드립니다! 제 버전에서는 로트 계산이 잘 되는데, 코드에서 어레이가 등록된 부분만 안되네요.

원래는 서로 다른 통화 쌍에 대해 서로 다른 위험 수준을 설정할 수 있도록 고안되었습니다.

다중 통화 고문을 위해 코드를 사용하는 방법은 솔직히 아직 잘 모르겠습니다.

안부 인사를 전합니다. 블라디미르.

매우 간단합니다. 나는 당신이 배운 모든 후에 이것을 하는 데 어려움을 겪을 것이라고 생각하지 않았습니다 ...

 /********************************************************************\
|   Calculate optimal lot size     Расчет объема лота                |
/********************************************************************/
//double contractSize(double Lot)
double contractSize( string symbol, double risk)
 {
//  double volume = Lot > 0.0 ? Lot : AccountInfoDouble(ACCOUNT_MARGIN_FREE)/10000,
   double volume = AccountInfoDouble ( ACCOUNT_MARGIN_FREE )*risk/ 10000 ,
         v = volume,
         volumeStep = SymbolInfoDouble (symbol, SYMBOL_VOLUME_STEP ),
         minLot = SymbolInfoDouble (symbol, SYMBOL_VOLUME_MIN ),
         maxLot = SymbolInfoDouble (symbol, SYMBOL_VOLUME_MAX );
  v = round (volume/volumeStep)*volumeStep;
   return ( fmin (maxLot, fmax (minLot, v)));
 } /******************************************************************/

그리고 함수가 호출됩니다

 double lot = contractSize(symbol[Number], Risk[Number]);
 
Alexey Viktorov # :

매우 간단합니다. 나는 당신이 배운 모든 후에 이것을 하는 데 어려움을 겪을 것이라고 생각하지 않았습니다 ...

그리고 함수가 호출됩니다

다시 한 번 감사합니다, Alexey! 저녁에는 Expert Advisor에 적용하려고 합니다.

저는 이제 막 배열에 익숙해지기 시작했기 때문에 어려움이 있습니다. 지금까지는 그것들을 사용할 필요가 없었지만, 이것이 가까운 장래에 채워져야 할 강한 격차라는 것을 이제는 이해합니다. 나는 Dmitry Fedoseev 의 기사 를 연구하기 시작했지만 지금까지 명확하지 않은 것이 많이 있습니다. 재료를 흡수하는 데 시간이 걸립니다.

안부 인사를 전합니다. 블라디미르.

 
SanAlex # :

여기 내가 못을 박았다

아마도 먼저 문제의 본질을 이해해야 할 것입니다
 
SanAlex # :

무언가 - 내가 코드를 시도한 모든 사람들을 위해 - 이와 같이 작동하는 것 같습니다.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

이제 시작될 것입니다 - 다시 발판을 깔았습니다.

Sasha, 프리랜서로 주문하기 위해 그런 코드를 작성합니까? 나는 항상 2,000라인 이상의 코드를 어떻게 작성하는지 궁금했습니다. 그리고 이제 나는 이해하기 시작했습니다... 내 코드와 당신 코드의 줄 수를 세어보세요... 그리고 최대 스프레드를 확인하는 것은 말도 안되는 소리입니다... 훨씬 사용하기 쉽습니다.

   MqlTick tick;
     if (! SymbolInfoTick (posSymbol, tick))
       return ;
     if (tick.ask-tick.bid > inpSpred)
       return ;

글쎄, 작동하는 방식으로 작성하지만 모든 사람이 작성된 내용을 이해할 수 없는 경우 일반적으로 세 줄로 끝낼 수 있습니다.

   MqlTick tick;
     if (! SymbolInfoTick (posSymbol, tick) || tick.ask-tick.bid > inpSpred)
       return ;
 
SanAlex # :

이 코드는 터미널에서 가져온 것입니다.

같은 정신으로 계속하십시오.
 
SanAlex # :

나 자신은 코드를 작성하는 방법을 모르지만 문서에서 모든 기능을 가져오고 약간 만지작 거리며 내 목적을 위해 끝냅니다.

\\\\\\\\\\\\\\\\\\\\

또한 귀하의 코드와 코드 기반을 살펴봅니다. 저는 배우고 있습니다. 이론적으로 방법을 모르겠습니다. 파는 방법을 설명하는 것보다 직접 파는 것이 더 쉽습니다.

이것은 너무 명확하여 파기만 할 수 있습니다. 왜 여기에 코드를 게시합니까?
 
SanAlex # :

당신을 즐겁게하기 위해.

또 누구에게 당신의 똑똑한 질문을 하시겠습니까?

그들이 너에게 10년을 준 것도 당연해, 당연하지
 
SanAlex # :

핀란드만을 떠나 흑해로 오세요.

저는 사실 칼리닌그라드에 있습니다.
 
SanAlex # :

핀란드만을 떠나 흑해로 오세요.