이중 유형 변수의 경우 == 조건을 사용하는 것은 올바르지 않습니다. 다음과 같이 비교하는 것이 좋습니다.
여기에 추가할 수 있습니다. 비록 약간의 지연이 있기는 하지만 여전히 이 주제에 대한 기사를 작성했습니다. MQL4에서 복식 작업의 특징 . 여기에 언급된 모든 내용은 실수(MQL5의 double 및 float) 작업과 관련하여 모든 프로그래밍 언어와 관련이 있으며 그대로 유지됩니다.
sergey1294 : 내가 올바르게 이해했다면 그것은 질문의 요점이 아니었다. 그런 다음 사용자 정의 함수의 끝에 항상 return 문을 넣어야 합니다.
== 에 대한 답변이 실제로 있었던 것처럼. 실제로, double 유형의 함수에는 어딘가에 리턴(...)이 있어야 합니다. 반드시 끝에는 아닙니다. if()에서 == 연산자 사용 return(); 0.1000000000000000001 유형의 LotStep이 있는 경우 false를 반환할 수 있습니다. 그러면 둘 이상의 반환이 실패하고 함수는 아무 것도 반환하지 않습니다. 귀하의 경우에는 반환이 NormalizeDouble 내부를 좋아하지 않을 가능성이 큽니다. 작업 버전에서 끝을 return(NormilizeDouble(lot,2))로 변경하고 작동하는지 확인하십시오. 나는 나 자신에게 관심이 있다.
== 에 대한 답변이 실제로 있었던 것처럼. 실제로, double 유형의 함수에는 어딘가에 리턴(...)이 있어야 합니다. 반드시 끝에는 아닙니다. if()에서 == 연산자 사용 return(); 0.1000000000000000001 유형의 LotStep이 있는 경우 false를 반환할 수 있습니다. 그러면 둘 이상의 반환이 실패하고 함수는 아무 것도 반환하지 않습니다. 귀하의 경우에는 반환이 NormalizeDouble 내부를 좋아하지 않을 가능성이 큽니다. 작업 버전에서 끝을 return(NormilizeDouble(lot,2))로 변경하고 작동하는지 확인하십시오. 나는 나 자신에게 관심이 있다.
끝에 리턴(...)이 있어야 하지만 도달하지 못할 수도 있습니다(If 조건 중 하나가 작동하는 경우) ...
이중 유형 변수의 경우 == 조건을 사용하는 것은 올바르지 않습니다. 다음과 같이 비교하는 것이 좋습니다.
이중 유형 변수의 경우 == 조건을 사용하는 것은 올바르지 않습니다. 다음과 같이 비교하는 것이 좋습니다.
상당히 합리적이고 가장 중요한 것은 합리적인 접근 방식입니다. 적어도 첫 번째 줄은 다음과 같아야 하는 것 같습니다.
때때로 다음 메시지가 로그에 나타나기 시작했습니다.
2010.06.15 14:48:09 MemoryException 4915200바이트를 사용할 수 없음
무엇을해야합니까? 지원팀에 보내야 하는데 무엇을 보내야 할지 모르겠다면((
때때로 다음 메시지가 로그에 나타나기 시작했습니다.
2010.06.15 14:48:09 MemoryException 4915200바이트를 사용할 수 없음
무엇을해야합니까? 지원팀에 보내야 하는데 무엇을 보내야 할지 모르겠다면((
이중 유형 변수의 경우 == 조건을 사용하는 것은 올바르지 않습니다. 다음과 같이 비교하는 것이 좋습니다.
옵이 누락되었습니다. 메모리. 동적 배열 의 크기를 확인하십시오. 사용 가능한 것보다 더 많은 메모리를 할당하려는 시도일 가능성이 큽니다.
내가 올바르게 이해했다면 그것은 질문의 요점이 아니었다. 그런 다음 사용자 정의 함수의 끝에 항상 return 문을 넣어야 합니다.
== 에 대한 답변이 실제로 있었던 것처럼. 실제로, double 유형의 함수에는 어딘가에 리턴(...)이 있어야 합니다. 반드시 끝에는 아닙니다. if()에서 == 연산자 사용 return(); 0.1000000000000000001 유형의 LotStep이 있는 경우 false를 반환할 수 있습니다. 그러면 둘 이상의 반환이 실패하고 함수는 아무 것도 반환하지 않습니다. 귀하의 경우에는 반환이 NormalizeDouble 내부를 좋아하지 않을 가능성이 큽니다. 작업 버전에서 끝을 return(NormilizeDouble(lot,2))로 변경하고 작동하는지 확인하십시오. 나는 나 자신에게 관심이 있다.
== 에 대한 답변이 실제로 있었던 것처럼. 실제로, double 유형의 함수에는 어딘가에 리턴(...)이 있어야 합니다. 반드시 끝에는 아닙니다. if()에서 == 연산자 사용 return(); 0.1000000000000000001 유형의 LotStep이 있는 경우 false를 반환할 수 있습니다. 그러면 둘 이상의 반환이 실패하고 함수는 아무 것도 반환하지 않습니다. 귀하의 경우에는 반환이 NormalizeDouble 내부를 좋아하지 않을 가능성이 큽니다. 작업 버전에서 끝을 return(NormilizeDouble(lot,2))로 변경하고 작동하는지 확인하십시오. 나는 나 자신에게 관심이 있다.
끝에 리턴(...)이 있어야 하지만 도달하지 못할 수도 있습니다(If 조건 중 하나가 작동하는 경우) ...
레나트 :
실수는 계산에서 증거금 통화를 잊어버린 것입니다. 잔액 = 100 USD 및 증거금 요구 사항 = 100 EUR(119 USD).
따라서 작업을 수행할 수 없습니다. 맞습니다.
올바른 마진 계산 에 대한 질문으로 돌아가고 싶습니다. Renat이 언급했듯이 내 계산에서 LotRqdMgn(1랏 구매에 필요한 마진)은 통화 가격을 고려하지 않습니다. 그런 다음 나는 그런 테이블을 본 것을 기억했습니다.
식별자
설명
공식
SYMBOL_CALC_MODE_FOREX
ex 모드의 경우 - Forex의 이익 및 마진 계산
마진: 랏*계약_크기/레버리지
적합: ( close_price - open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_FUTURES
선물 모드 - 선물의 증거금 및 이익 계산
마진: 랏 *초기 마진*백분율/100
이익: (close_price-open_price)*TickPrice/TickSize*Lots
SYMBOL_CALC_MODE_CFD
CFD 모드 - CFD에 대한 마진 및 이익 계산
마진: 랏 *ContractSize*MarketPrice*Percentage/100
이익: (close_price-open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_CFDINDEX
CFD 지수 모드 - 지수별 CFD 마진 및 이익 계산
마진: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize
이익: (close_price-open_price)*Contract_Size*Lot s
SYMBOL_CALC_MODE_CFDLEVERAGE
CFD 레버리지 모드 - 레버리지 거래에서 CFD에 대한 마진 및 이익 계산
마진: (Lots*ContractSize*MarketPrice*Percentage)/레버리지
이익: (close_price-open_price)*Contract_Size*Lots
즉, 테이블에 오류가 있음이 밝혀졌습니다. L ots*Contract_Size/Leverage 대신 Price*Lots*Contract_Size/Leverage여야 합니다.