손실 없이 MetaTrader 5로 전환할 수 있도록 도와주세요 - 페이지 15

 
Valmars :

...

Valery, calc.mq5의 이 코드가 의미하는 바를 알려주세요.

...

if ( StringSubstr ( Symbol (), 3 , 3 )== "CAD" ) { xxx= 1.2175 ;   }
if ( StringSubstr ( Symbol (), 3 , 3 )== "JPY" ) { xxx= 91.425 ;   }
if ( StringSubstr ( Symbol (), 3 , 3 )== "CHF" ) { xxx= 1.1631 ;   }
if ( StringSubstr ( Symbol (), 3 , 3 )== "AUD" ) { xxx= 1 / 0.6800 ; }
if ( StringSubstr ( Symbol (), 3 , 3 )== "NZD" ) { xxx= 1 / 0.54 ;   }
if ( StringSubstr ( Symbol (), 3 , 3 )== "GPB" ) { xxx= 1 / 1.49 ;   }
if ( StringSubstr ( Symbol (), 3 , 3 )== "EUR" ) { xxx= 1 / 1.3015 ; }

...

이것이 변수 xxx 에 고정 값이 할당되는 이유입니다.

---

그리고 또 다른 질문. 인증서에 Forex 의 이익 계산에 대한 불완전한 정보가 있는 것으로 나타났습니까? 즉, 이익을 계산하기 위해 역따옴표( XXXUSD )에 대해서만 공식이 제시됩니다.

식별자

설명

공식

SYMBOL_CALC_MODE_FOREX

Forex 모드 - Forex의 이익 및 마진 계산

마진: 랏*계약_크기/레버리지

이익: (close_price-open_price)*Contract_Size*Lots

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
tol64 :

그리고 또 다른 질문. 인증서에 Forex 의 이익 계산에 대한 불완전한 정보가 있습니까? 즉, 이익을 계산하기 위해 역따옴표( XXXUSD )에 대해서만 공식이 제시됩니다.

네, 맞는 것 같습니다. 통화 거래의 ABC 기사에서 이익 계산에 대해 읽을 수 있지만
Азбука торговли валютами - Статьи по MQL4
  • www.mql5.com
Азбука торговли валютами - Статьи по MQL4: особенности автоматических торговых стратегий
 
Rosh :
네, 맞는 것 같습니다. 통화 거래의 ABC 기사에서 이익 계산에 대해 읽을 수 있지만

고맙습니다. 기사는 치트 시트처럼 확실히 북마크되어 있습니다. 그렇지 않으면 모든 것을 내 머리에 보관할 수 없습니다. 그리고 모든 것이 중앙 집중화되도록 도움말에서 테이블을 보완하는 것이 좋습니다. :)

---

그리고 고정 값(신선한 마음으로 바라봐야 합니다 :)), 데이터가 없는 경우를 대비해서 이해합니다. 그러나 이러한 값은 특정 통화의 환율에 따라 항상 조정되어야 합니다. 따라서 잘못된 값이 아니라 데이터가 없다는 메시지를 표시하는 것이 좋습니다.

 
tol64 : 그리고 고정값 (신선한 마음으로 바라봐야 합니다 :) ) 데이터가 없을 경우를 대비해서 이해합니다. 그러나 이러한 값은 특정 통화의 환율에 따라 항상 조정되어야 합니다. 따라서 잘못된 값이 아니라 데이터가 없다는 메시지를 표시하는 것이 좋습니다.

그래, 너가 맞아. 작가님 시키는대로 했는데 너무 게으르고 시간도 없었고... , 예를 들어 NZDJPY의 경우 USDJPY 및 NZDUSD 쌍 을 선택해야 합니다. 저자는 서문에서 이와 관련하여 다음과 같이 유보합니다.

"XXXYYY 십자가의 경우 적절한

기본 쌍 USDYYY 또는 XXXUSD(예: 시장 감시 창에서 GPBJPY의 경우

오픈 USDJPY)."

MT5에서는 이를 지표 자체에 맡기는 것이 좋다.

 

Piligrim :

Valery(Valmars), 재포장의 복잡성 측면에서 이 지표를 MQL5로 변환하도록 제안하는 것이 합리적이라고 생각하십니까? 당신이 번역한 이전 것은 아주 잘 작동합니다! :)

MT5에는 오프라인 차트가 없으며 앞으로도 없을 것이기 때문에 이 지표는 MT5로 변환할 수 없습니다. 표시기는 MT4에서 어떻게 작동합니까? 비표준 기간이 있는 오프라인 차트를 생성하고 새 견적이 도착하면 이 비표준 기간의 .hst 파일에 기록합니다. 그런 다음 이 차트를 엽니다. 표시기는 Windows dll을 사용하여 틱마다 업데이트(다시 그리기)합니다. 결과적으로 실시간으로 업데이트된 비표준 기간이 있는 차트가 표시됩니다.

MT5에서는 PERIOD.hc 파일 형식(표준 기간에 대한 차트가 작성됨)조차 개발자에 의해 공개되지 않았습니다. 아마도 "왼쪽" 차트를 작성하는 것이 불가능했기 때문일 것입니다. 임의의 기간이 있는 차트에 대한 논란은 여기에서 볼 수 있습니다.

 
Valmars :

그래, 너가 맞아. 작가님 시키는대로 했더니 너무 게으르고 시간도 없었고... , 예를 들어 NZDJPY의 경우 USDJPY 및 NZDUSD 쌍을 선택해야 합니다. 저자는 서문에서 이와 관련하여 다음과 같이 유보합니다.

"XXXYYY 십자가의 경우 적절한

기본 쌍 USDYYY 또는 XXXUSD(예: 시장 감시 창에서 GPBJPY의 경우

오픈 USDJPY)."

MT5에서는 이를 지표 자체에 맡기는 것이 좋다.

따라서 고정 값이 있는 목록 대신 이 코드가 제대로 작동할까요? :

 bool flgExit= false ;
string arrSymbols[ 7 ]={ "CAD" , "JPY" , "CHF" , "AUD" , "NZD" , "GBP" , "EUR" };
//---
for ( int i= ArraySize (arrSymbols)- 1 ; i>= 0 ; i--)
  {
   if (flgExit) { break ; }
   //---
   if ( StringSubstr ( Symbol (), 3 , 3 )==arrSymbols[i])
     {
       for ( int j= SymbolsTotal ( false )- 1 ; j>= 0 ; j--)
        {
         if ( SymbolName (j, false )== "USD" +arrSymbols[i]+ "" )
           {
             SymbolSelect ( "USD" +arrSymbols[i]+ "" , true );
             //---
             if ((xxx= SymbolInfoDouble ( SymbolName (j, true ), SYMBOL_BID ))<= 0 )
              {
               Comment ( "Ошибка (" + IntegerToString ( GetLastError ())+ ") при получении данных по символу " + SymbolName (j, true )+ "" ); return ( 0 );
              }
             else { flgExit= true ; break ; }
           }
       }
   }
}
 
Valmars :

MT5에는 오프라인 차트가 없으며 앞으로도 없을 것이기 때문에 이 지표는 MT5로 변환할 수 없습니다. 표시기는 MT4에서 어떻게 작동합니까? 비표준 기간이 있는 오프라인 차트를 생성하고 새 견적이 도착하면 이 비표준 기간의 .hst 파일에 기록합니다. 그런 다음 이 차트를 엽니다. 표시기는 Windows dll을 사용하여 틱마다 업데이트(다시 그리기)합니다. 결과적으로 실시간으로 업데이트된 비표준 기간이 있는 차트가 표시됩니다.

MT5에서는 PERIOD.hc 파일 형식(표준 기간에 대한 차트가 작성됨)조차 개발자에 의해 공개되지 않았습니다. 아마도 "왼쪽" 차트를 작성하는 것이 불가능했기 때문일 것입니다. 임의의 기간이 있는 차트에 대한 논란은 여기에서 볼 수 있습니다.

어쨌든 Valery에게 감사드립니다! 프로그래머가 아닌 저에게는 제 능력 밖의 문제에 대한 가능한 해결책을 찾는 측면에서 명료한 전문적인 조언이 훨씬 더 바람직합니다.

 
tol64 :

따라서 고정 값이 있는 목록 대신 이 코드가 제대로 작동할까요? :

예, 두 번째 십자 문자에 대해서도 그렇게 하고 초기화에 넣습니다.

 
Valmars :
예, 두 번째 십자 문자에 대해서도 그렇게 하고 초기화에 넣습니다.

Valery, 시간이 있다면 수정된 버전을 보십시오. 위에서 논의한 모든 것을 고려하여 이제 모든 것이 올바르게 완료되었습니까? 고맙습니다.


파일:
 
tol64 :

...

위의 파일을 업데이트했습니다( calcriskprofit.mq5 ). 오타를 수정했습니다. GBP 대신 GPB가 있었습니다. :)