double vPoint;
if ( Digits == 2 || Digits == 4 ) vPoint = Point ; elseif ( Digits == 3 || Digits == 5 ) vPoint = Point * 10 ; // I use this for my indies; call once on init() & use where Point supposed to be used in start() double Poin()
{
int d = Digits ;
switch (d){
case2 : { return ( Point ); break ;}
case4 : { return ( Point ); break ; }
case3 : { return ( Point * 10 ); break ;}
case5 : { return ( Point * 10 ); break :}
default : return ;
} // I just come up with this. Untested but should be ok/robust. To be used to replace Point for trade parameters calculations.
건배 ~ 카메오
여기에 내가 사용하는 문제에 대한 대체 솔루션이 있습니다 ...
int init()
{
double SymPoint;
if ( Point == 0.00001 ) SymPoint = 0.0001 ; //5 digitselseif ( Point == 0.001 ) SymPoint = 0.01 ; //3 digitselse SymPoint = Point ; //Normalreturn ( 0 );
}
그런 다음 Point 변수 대신 SymPoint 변수를 사용하십시오. 카메오와 매우 흡사하다.
나는 당신이 방탄 코드를 만들고 시도하는 것이 옳다고 생각하지만 ....... 그러나 항상 한계가 있습니다.
Collective FX에 대한 데모 피드를 살펴봐야 합니다. 여기에서 각기 고유한 통화 쌍 접미사가 있는 다양한 유동성 공급자(여러 소스의 단일 집계 피드와 반대)의 결합된 독립 피드를 테스트하고 있습니다. 결국 접미사를 사용합니까?), 문제의 범위를 깨닫습니다. 이는 하나의 플랫폼 내에서 EURUSD_fx, EURUSDm 또는 EURUSD_dbfx 중에서 원하는 대로 선택할 수 있음을 의미합니다. 이 중 일부는 4자리 가격 책정과 다른 5자리 숫자로 구성되어 있기 때문에 이것만으로도 전략에 큰 구멍이 생길 것입니다.
"if (Digits == 3 || Digits == 5)"는 2가지 종류의 브로커, 즉 전체 pip 피드가 있는 브로커만 얻는다는 단순한 전제에서 작동한다는 점에서 찾을 수 있을 만큼 포괄적입니다. 그리고 1/10 핍 피드가 있는 것들. 이 사례는 2/3/4/5 통화 쌍 및 브로커를 다룹니다.
내 정보를 위해, 예외가 되는 경우를 본 적이 있습니까? Gold의 경우 항상 2자리 호가였고 새로운 1/10 핍 중개인은 3자리로 인용하므로 이 경우에도 잘 커버됩니다.
나는 당신이 발견한 예외를 그대로 처리하고 아마도 홀드올 솔루션을 찾으려고 시도하기보다 특정 문제를 하드 코드로 처리하는 것이 좋습니다.
이 대화가 나왔을 때 내가 알아차린 한 가지는 사람들이 접미사에 대해 이야기하지만 접두사는 결코 이야기하지 않는다는 것입니다. 접두사도 가능합니다. 접두사가 있는 브로커를 만났습니다.
이에 대한 내 생각은 여기에 있는 원본 포스터와 일치합니다. 저는 고객에게 가능한 한 견고한 제품 을 원합니다. 나중에 수정하기 위해 더 많은 코딩 위험을 감수하지 않아도 됩니다. 내 전체 코드는 한 번의 변경으로 래핑될 수 있으며 수정하기 위해 수천 줄의 코드를 검토하는 데 몇 개발자 시간이 소요될 수 있습니다. 따라서 처음에 올바르게 설정하면 다시 돌아가 수정해야 하는 위험과 비용을 줄일 수 있습니다. 나는 또한 이것이 버그라는 데 동의하지만 MQL의 약점만큼 우리 코드의 버그는 아닙니다.
그러나 나는 또한 해결책을 고민해 왔습니다. 내 솔루션 중 하나는 기호 목록을 살펴보고 하위 문자열을 사용하여 EURUSD를 찾는 것이었습니다. 그런 다음 입찰가를 얻습니다. 일단 입찰가가 정해지면 doubletostr을 수행한 다음 strlen이나 이와 유사한 문자열의 문자 수를 계산하는 방법을 알아낼 수 있습니다. 뒤쪽에 통증이 있지만 상당히 견고한 4 또는 5 자리 결정을 줄 수 있습니다. 그로부터 나는 골드와 같은 기이한 것들에 대한 기반을 세울 수 있었습니다.
이것은 이론일 뿐이며 아직 시도하지 않았습니다. 현재 프로젝트를 처리하기 위해 너무 바쁩니다.
지금은 아래 기능을 사용하고 있으며 다양한 브로커 및 도구에서 사용할 수 있습니다.
건배 ~ 카메오
여기에 내가 사용하는 문제에 대한 대체 솔루션이 있습니다 ...
그런 다음 Point 변수 대신 SymPoint 변수를 사용하십시오. 카메오와 매우 흡사하다.
좀 더 혼동을 주기 위해 BrocoTrader에는 다양한 증권에 대해 0~5자리의 증권이 있습니다...
안녕하세요 7bit님
나는 당신이 방탄 코드를 만들고 시도하는 것이 옳다고 생각하지만 ....... 그러나 항상 한계가 있습니다.
Collective FX에 대한 데모 피드를 살펴봐야 합니다. 여기에서 각기 고유한 통화 쌍 접미사가 있는 다양한 유동성 공급자(여러 소스의 단일 집계 피드와 반대)의 결합된 독립 피드를 테스트하고 있습니다. 결국 접미사를 사용합니까?), 문제의 범위를 깨닫습니다. 이는 하나의 플랫폼 내에서 EURUSD_fx, EURUSDm 또는 EURUSD_dbfx 중에서 원하는 대로 선택할 수 있음을 의미합니다. 이 중 일부는 4자리 가격 책정과 다른 5자리 숫자로 구성되어 있기 때문에 이것만으로도 전략에 큰 구멍이 생길 것입니다.
"if (Digits == 3 || Digits == 5)"는 2가지 종류의 브로커, 즉 전체 pip 피드가 있는 브로커만 얻는다는 단순한 전제에서 작동한다는 점에서 찾을 수 있을 만큼 포괄적입니다. 그리고 1/10 핍 피드가 있는 것들. 이 사례는 2/3/4/5 통화 쌍 및 브로커를 다룹니다.
내 정보를 위해, 예외가 되는 경우를 본 적이 있습니까? Gold의 경우 항상 2자리 호가였고 새로운 1/10 핍 중개인은 3자리로 인용하므로 이 경우에도 잘 커버됩니다.
나는 당신이 발견한 예외를 그대로 처리하고 아마도 홀드올 솔루션을 찾으려고 시도하기보다 특정 문제를 하드 코드로 처리하는 것이 좋습니다.
이 대화가 나왔을 때 내가 알아차린 한 가지는 사람들이 접미사에 대해 이야기하지만 접두사는 결코 이야기하지 않는다는 것입니다. 접두사도 가능합니다. 접두사가 있는 브로커를 만났습니다.
이에 대한 내 생각은 여기에 있는 원본 포스터와 일치합니다. 저는 고객에게 가능한 한 견고한 제품 을 원합니다. 나중에 수정하기 위해 더 많은 코딩 위험을 감수하지 않아도 됩니다. 내 전체 코드는 한 번의 변경으로 래핑될 수 있으며 수정하기 위해 수천 줄의 코드를 검토하는 데 몇 개발자 시간이 소요될 수 있습니다. 따라서 처음에 올바르게 설정하면 다시 돌아가 수정해야 하는 위험과 비용을 줄일 수 있습니다. 나는 또한 이것이 버그라는 데 동의하지만 MQL의 약점만큼 우리 코드의 버그는 아닙니다.
그러나 나는 또한 해결책을 고민해 왔습니다. 내 솔루션 중 하나는 기호 목록을 살펴보고 하위 문자열을 사용하여 EURUSD를 찾는 것이었습니다. 그런 다음 입찰가를 얻습니다. 일단 입찰가가 정해지면 doubletostr을 수행한 다음 strlen이나 이와 유사한 문자열의 문자 수를 계산하는 방법을 알아낼 수 있습니다. 뒤쪽에 통증이 있지만 상당히 견고한 4 또는 5 자리 결정을 줄 수 있습니다. 그로부터 나는 골드와 같은 기이한 것들에 대한 기반을 세울 수 있었습니다.
이것은 이론일 뿐이며 아직 시도하지 않았습니다. 현재 프로젝트를 처리하기 위해 너무 바쁩니다.
내 EA에서 Pip 계산에 이 코드를 사용합니다. 이 Pip는 SL, TP, TS와 같은 pips에 입력된 extern bool을 처리하는 모든 곳에서 사용합니다. 쌍, DAX 1/2 십진수 ... 예, 이전 게시물과 비슷하게 보이지만 기능적 으로는 라이브...
내 다른 indis에서도 JPY 기호를 찾아보십시오 ... :-)
내 EA에서 Pip 계산에 이 코드를 사용합니다. 이 Pip는 SL, TP, TS와 같은 pips에 입력된 extern bool을 처리하는 모든 곳에서 사용합니다. 쌍, DAX 1/2 십진수 ... 예, 이전 게시물과 비슷해 보이지만 기능적 으로는 라이브...
내 다른 indis에서도 JPY 기호를 찾아보십시오 ... :-)
JPY를 찾는 대신 각 통화에 대한 "포인트"를 찾고 싶습니다. 이것이 내가 시도한 것입니다.
따라서 예상은 Pair01에 저장된 쌍에 대한 해당 값을 제공하는 것입니다. 그러나 이것은 0만 반환합니다. 왜 그럴까요? 내 예에서 Pari01은 "AUDCAD"이고 지표는 EURUSD 차트에 첨부되어 있습니다.
추가 실험을 통해 이제 일부 통화에서는 작동하지만 다른 통화에서는 작동하지 않는다는 것을 알았습니다. 이것은 상당히 혼란스럽습니다. MODE_DIGITS가 더 잘 작동하는 것 같습니다. 어떻게 그렇게 될수 있니?
파이
내 EA에서 Pip 계산에 이 코드를 사용합니다. 이 Pip는 SL, TP, TS와 같은 pips에 입력된 extern bool을 처리하는 모든 곳에서 사용합니다. 쌍, DAX 1/2 십진수 ... 예, 이전 게시물과 비슷해 보이지만 기능적 으로는 라이브...
당신이 5자리 브로커에 있기 때문입니다. 4자리 브로커에서 PIP와 포인트는 동일 합니다.
TICK이란 무엇입니까? - MQL4 및 MetaTrader 4 - MQL4 프로그래밍 포럼
InstaForex에는 USDSEK 및 USDNOK의 경우 4자리 숫자가 있고 EURUSD의 경우 5자리입니다.
따라서 틱이 아닌 핍의 양을 얻으려면 모든 견적 통화에 대한 설정이 있는 배열이 필요하다고 생각합니다.