SL과 Account Risk를 기반으로 한 자금관리 LOT 사이즈 공식이 필요합니다! - 페이지 4 1234 새 코멘트 Keith Watford 2015.02.06 01:39 #31 darelco : ... 코드의 이 부분에서 새 컴파일에 문제가 있습니다(오류 ---> 'MarketInfo' - 잘못된 스위치 표현식 유형). 아마도 MT4 빌드 600+로 업데이트하기 전까지는 모두 괜찮았을 것입니다 ... 하지만 그 이후로는 더 이상 작동하지 않습니다. 따라서 최신 버전을 게시해 주시겠습니까? 물론 아직 사용 중이라면. 나는 당신이 변경하면 생각 switch ( MarketInfo( strSymbol, MODE_DIGITS ) ) 에게 int dig=MarketInfo( strSymbol, MODE_DIGITS ) ; switch ( dig ) 그것은 잘 컴파일됩니다 Alain Verleyen 2015.02.06 08:07 #32 darelco : ... 코드의 이 부분에서 새 컴파일에 문제가 있습니다(오류 ---> 'MarketInfo' - 잘못된 스위치 표현식 유형). 아마도 MT4 빌드 600+로 업데이트하기 전까지는 모두 괜찮았을 것입니다 ... 하지만 그 이후로는 더 이상 작동하지 않습니다. 따라서 최신 버전을 게시해 주시겠습니까? 물론 아직 사용 중이라면. switch (( int )MarketInfo(strSymbol,MODE_DIGITS)) gadget 2015.02.06 09:00 #33 https://book.mql4.com/operators/switch "Expression 및 Parameters의 값은 int 유형의 값만 될 수 있습니다. Expression은 상수, 변수, 함수 호출 또는 표현식이 될 수 있습니다. 각 변형 'case'는 정수 상수, 문자로 표시될 수 있습니다. 상수 또는 상수 표현식입니다. 상수 표현식은 변수나 함수 호출을 포함할 수 없습니다." Keith Watford 2015.02.06 10:18 #34 angevoyageur : switch (( int )MarketInfo(strSymbol,MODE_DIGITS)) 다시 한번, 당신은 더 간단하고 더 나은 해결책을 제시합니다. Alain Verleyen 2015.02.06 10:39 #35 GumRai : 다시 한번, 당신은 더 간단하고 더 나은 해결책을 제시합니다. 우리는 모두 서로에게서 배운다. William Roeder 2015.02.06 12:12 #36 int dig=MarketInfo( strSymbol, MODE_DIGITS ) ; switch ( dig ) 또는 switch (( int )MarketInfo(strSymbol,MODE_DIGITS)) 또는 개체 스타일 (포인터 캐스트를 제외하고 작동) switch ( int (MarketInfo(strSymbol,MODE_DIGITS)) ) Sebastien Pelle 2017.03.05 04:20 #37 내 다른 EA에서는 다음과 같이 작성합니다. extern double Risk_Percent = 3 ; extern int StopLoss = 5 0 ; //+------------------------------------------------------------------+ { double lot = MathCeil ( AccountFreeMargin () * Risk_Percent / 1000 ) / 100 ; if (lot< MarketInfo ( Symbol (), MODE_MINLOT ))lot= MarketInfo ( Symbol (), MODE_MINLOT ); if (lot> MarketInfo ( Symbol (), MODE_MAXLOT ))lot= MarketInfo ( Symbol (), MODE_MAXLOT ); return ( MathMin ( NormalizeDouble (lot,PipMultiplier),MaxLotSize)); } //+------------------------------------------------------------------+ if ( _Digits == 5 || _Digits == 3 )PipMultiplier= 10 ; else PipMultiplier= 1 ; slippage=Slippage*PipMultiplier; if ( _Digits < 4 ) { point= 0.01 ; } else { point= 0.0001 ; } return ( 0 ); //+------------------------------------------------------------------+ Need moneymanagement LOT size Need help with coding Lot Size is not William Roeder 2017.03.05 12:34 #38 Sebastien Pelle : 내 다른 EA에서는 다음과 같이 작성합니다. double lot = MathCeil ( AccountFreeMargin () * Risk_Percent / 1000 ) / 무료 마진은 귀하의 위험과 관련이 없습니다. 브로커 손절매입니다(계정의 50%). 전체 스레드를 읽고 게시하지 않았어야 합니다. 요약: 거래의 이유가 더 이상 유효하지 않은 곳에 중지를 둡니다. 예를 들어 지지 바운스를 거래하면 정지가 지지 아래로 떨어집니다. 계정 잔고 * 퍼센트/100 = 위험 = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (참고 OOP-OSL에는 SPREAD가 포함되고 DeltaPerLot는 일반적으로 약 $10/pip이지만 쌍의 환율을 고려합니다. 대 계정 통화). TickValue 자체를 사용하지 마십시오 - DeltaPerLot 로트를 적절하게 정규화 하고 min 및 max 에 대해 확인해야 합니다. 중단 을 피하기 위해 FreeMargin도 확인해야 합니다. 전문 고문 - 기타 MODE_SPREAD 핍당 가격 1234 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
... 코드의 이 부분에서 새 컴파일에 문제가 있습니다(오류 ---> 'MarketInfo' - 잘못된 스위치 표현식 유형). 아마도 MT4 빌드 600+로 업데이트하기 전까지는 모두 괜찮았을 것입니다 ... 하지만 그 이후로는 더 이상 작동하지 않습니다.
따라서 최신 버전을 게시해 주시겠습니까? 물론 아직 사용 중이라면.
나는 당신이 변경하면 생각
switch ( MarketInfo( strSymbol, MODE_DIGITS ) )
에게
그것은 잘 컴파일됩니다
... 코드의 이 부분에서 새 컴파일에 문제가 있습니다(오류 ---> 'MarketInfo' - 잘못된 스위치 표현식 유형). 아마도 MT4 빌드 600+로 업데이트하기 전까지는 모두 괜찮았을 것입니다 ... 하지만 그 이후로는 더 이상 작동하지 않습니다.
따라서 최신 버전을 게시해 주시겠습니까? 물론 아직 사용 중이라면.
https://book.mql4.com/operators/switch
"Expression 및 Parameters의 값은 int 유형의 값만 될 수 있습니다. Expression은 상수, 변수, 함수 호출 또는 표현식이 될 수 있습니다. 각 변형 'case'는 정수 상수, 문자로 표시될 수 있습니다. 상수 또는 상수 표현식입니다. 상수 표현식은 변수나 함수 호출을 포함할 수 없습니다."
다시 한번, 당신은 더 간단하고 더 나은 해결책을 제시합니다.
내 다른 EA에서는 다음과 같이 작성합니다.
extern double Risk_Percent = 3 ;
extern int StopLoss = 5 0 ;
//+------------------------------------------------------------------+
{
double lot = MathCeil ( AccountFreeMargin () * Risk_Percent / 1000 ) / 100 ;
if (lot< MarketInfo ( Symbol (), MODE_MINLOT ))lot= MarketInfo ( Symbol (), MODE_MINLOT );
if (lot> MarketInfo ( Symbol (), MODE_MAXLOT ))lot= MarketInfo ( Symbol (), MODE_MAXLOT );
return ( MathMin ( NormalizeDouble (lot,PipMultiplier),MaxLotSize));
}
//+------------------------------------------------------------------+
if ( _Digits == 5 || _Digits == 3 )PipMultiplier= 10 ;
else PipMultiplier= 1 ;
slippage=Slippage*PipMultiplier;
if ( _Digits < 4 )
{
point= 0.01 ;
}
else
{
point= 0.0001 ;
}
return ( 0 );
//+------------------------------------------------------------------+
double lot = MathCeil ( AccountFreeMargin () * Risk_Percent / 1000 ) /