포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 84

 
paladin80 :

음수가 된 패스는 표시되지 않습니다. 최적화 결과를 마우스 오른쪽 버튼으로 클릭하고 "쓸모 없는 결과 건너뛰기"를 선택 취소합니다.




최적화에 관한 것이 아닙니다.

단일 테스트.

위에 표시된 것처럼 다른 탭의 결과는 30만큼 다릅니다.

 
lottamer :


최적화에 관한 것이 아닙니다.

단일 테스트.

위에 표시된 것처럼 다른 탭의 결과는 30만큼 다릅니다.

문제 영역이 있는 보고서의 인쇄 화면을 여기에 던지십시오. 우리는 보게 될 것입니다. 또는 전체 보고서를 다운로드하십시오.
 

친애하는 프로그래머 여러분, 이 점을 설명하십시오. 여기에 자금 관리에 대한 로트를 계산하는 알고리즘이 있습니다. 그러나 문제는 0.01보다 훨씬 적은 금액이 필요하다는 것을 이해하자마자, 즉 열 수 있다는 것입니다. 허용되면 자연스럽게 주문 전송 오류가 따르고 알고리즘이 요구하더라도 0.01랏 미만을 열려면 무엇을 입력해야 하는지 알려주세요.

 double GetSizeLot()
{  
   if (MM== false ) 
      MMLot=Lots;
      
   if (MM== true )
     {
      MMLot=((AccountFreeMargin()*TradeLotRiskPercent)/ 100000 );
     }
   return (MMLot);
}
 
ZahvatkiN :

친애하는 프로그래머 여러분, 이 점을 설명하십시오. 여기에 자금 관리에 대한 로트를 계산하는 알고리즘이 있습니다. 그러나 문제는 0.01보다 훨씬 적은 금액이 필요하다는 것을 이해하자마자, 즉 열 수 있다는 것입니다. 허용되면 자연스럽게 주문 전송 오류가 따르고 알고리즘이 요구하더라도 0.01랏 미만을 열려면 무엇을 입력해야 하는지 알려주세요.

1. 정상화할 필요가 있다.

2. 그리고 최소 로트를 고정합니다.

MMLot= NormalizeDouble ( MathMax ((AccountFreeMargin()*TradeLotRiskPercent)/ 100000 , MinLot ), 2 );
 
ZahvatkiN :

친애하는 프로그래머 여러분, 이 점을 설명하십시오. 여기에 자금 관리에 대한 로트를 계산하는 알고리즘이 있습니다. 그러나 문제는 0.01보다 훨씬 적은 금액이 필요하다는 것을 이해하자마자, 즉 열 수 있다는 것입니다. 허용되면 자연스럽게 주문 전송 오류가 따르고 알고리즘이 요구하더라도 0.01랏 미만을 열려면 무엇을 입력해야 하는지 알려주세요.

 double GetSizeLot( double TradeLotRiskPercent)
{  
   double MMLot, MinLot, MaxLot;
   //---
   MinLot=MarketInfo( Symbol (),MODE_MINLOT);
   MaxLot=MarketInfo( Symbol (),MODE_MAXLOT);
   //---
   MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100000 ;
   if (MMLot<=MinLot) return (MinLot);
   if (MMLot>=MaxLot) return (MaxLot);
   else 
   {  MMLot= NormalizeDouble (MMLot, 2 );
       return (MMLot);
   }
}

계산 공식에서 MMLot은 100,000으로 나뉩니다. 대부분의 경우 1:100의 레버리지와 로트 크기가 기준 통화(예: USD)의 100,000인 일반 계정에 대해 계산합니다. 이러한 Expert Advisor를 센트 계정(랏 = 10,000) 및/또는 다른 레버리지로 던지면 로트를 계산하는 것이 올바르지 않습니다. 이 구성을 시도하십시오.

 double GetSizeLot( double TradeLotRiskPercent)
{  
   double MMLot, MinLot, MaxLot;
   int     LotSize, Leverage;
   //---
   MinLot  =MarketInfo( Symbol (),MODE_MINLOT);
   MaxLot  =MarketInfo( Symbol (),MODE_MAXLOT);
   LotSize =MarketInfo( Symbol (),MODE_LOTSIZE);
   Leverage=AccountLeverage();
   //---
   MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100 *Leverage/LotSize;
   if (MMLot<=MinLot) return (MinLot);
   if (MMLot>=MaxLot) return (MaxLot);
   else 
   {  MMLot= NormalizeDouble (MMLot, 2 );
       return (MMLot);
   }
}
 
레버리지가 1:500이고 TradeLotRiskPercent = 10인 Alpari_ECN_Live 계정의 paladin80, 즉. $1000 예금의 10%, 랏은 0.5부터 시작됩니다. 이것은 이 공식이 1:100?의 레버리지만을 위해 설계되었음을 의미합니다. 내가 이해하는 한, 모든 레버리지 및 계정에 대한 보편적인 코드는 없습니까?
 
ZahvatkiN :
레버리지가 1:500이고 TradeLotRiskPercent = 10인 Alpari_ECN_Live 계정의 paladin80, 즉. $1000 예금의 10%, 랏은 0.5부터 시작됩니다. 이것은 이 공식이 1:100?의 레버리지만을 위해 설계되었음을 의미합니다. 내가 이해하는 한 모든 레버리지 및 계정에 대한 보편적인 코드는 없습니까?
제 생각에는 두 번째 공식(2013년 8월 23일 07:30부터)이 로트를 올바르게 계산합니다. $1000의 10% = $100(담보), 1:500의 레버리지로 브로커는 $50,000의 거래를 열 수 있는 기회를 제공합니다. 브로커의 1랏은 $100,000이고 귀하의 $50,000은 0.5랏입니다.
MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100*레버리지/LotSize
MMLot=1000*10/100 * 500/100000 = 100 * 500/100000 = 50000 / 100000 = 0.50
 
paladin80 :
제 생각에는 두 번째 공식(2013년 8월 23일 07:30부터)이 로트를 올바르게 계산합니다. $1000의 10% = $100(담보), 1:500의 레버리지로 브로커는 $50,000의 거래를 열 수 있는 기회를 제공합니다. 브로커의 1랏은 $100,000이고 귀하의 $50,000은 0.5랏입니다.
MMLot=AccountFreeMargin()*TradeLotRiskPercent)/ 100*레버리지/LotSize
MMLot=1000*10/100 * 500/100000 = 100 * 500/100000 = 50000 / 100000 = 0.50

공식 자체는 오류 없이 계산되지만 이론상 1000의 10%는 0.5가 아닌 0.1의 많은 양입니다) 왜 0.5인지는 분명합니다. 레버리지 1:500, 레버리지가 1:100이면 0.1만 로트를 열 수 있으므로 모든 레버리지 및 계정 유형에 대해 보편적인 로트 계산 알고리즘이 있습니까? 아니면 각각 다른가요?
 

포럼 사용자 여러분, 화살표 좌표를 찾는 데 도움을 주세요.

string arrowName=TimeToStr(시간[i]);

ObjectCreate (arrowName+ "화살표",...);

인디케이터를 기반으로 어드바이저를 만들고 iCustom을 통해 화살표를 가져오지만 최신 몇 개의 좌표를 찾는 방법을 이해하지 못합니다.

 
nazar77 :
표시기를 디컴파일하는 데 도움을 주세요. 디컴파일은 나보다 더 이상 진행되지 않을 것이라고 장담합니다.
목욕, adnaznachna에 !!!