MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1118

 
Artyom Trishkin :

그리고 당신은 추측할 필요가 없습니다. 무슨 일이 일어나고 있는지, 왜 그런지 생각하고 이해해야 합니다. 써야 할 때와 쓰지 말아야 할 때.

생각하고 문자열이 인쇄물에 출력되어야 하므로 모든 숫자 값은 문자열로 변환되어야 합니다.
그러나 이 예제는 컴파일러가 멍청하다는 것을 보여주었습니다. 그리고 컴파일러가 놓칠 때와 그렇지 않을 때를 어떻게 추측하지 않을 수 있습니까?

 
Roman :

생각하고 문자열이 인쇄물에 출력되어야 하므로 모든 숫자 값은 문자열로 변환되어야 합니다.
그러나 이 예제는 컴파일러가 멍청하다는 것을 보여주었습니다. 그리고 컴파일러가 놓칠 때와 그렇지 않을 때를 어떻게 추측하지 않을 수 있습니까?

다시 한 번 - 여기에 코드가 있습니다 - 명확하지 않은 것은 무엇입니까?

추신. 이것에 대해:

 Print (( string )( uint ) PeriodSeconds ( PERIOD_MN1 )* 1000 )

... 그런 다음 확인하지 않고 메시지에 다시 입력했습니다.

문자열을 기능적 으로 캐스트합니다.

 Print ( string ( ( uint ) PeriodSeconds ( PERIOD_MN1 )* 1000 ) );
 

친구!

DLL을 MQL에 연결하는 문제로 고생하고 있습니다. 내 문제를 설명합니다.

1. 먼저 C#으로 .dll 라이브러리를 작성해 보았습니다. C#으로 작성될 때 dll 내부의 모든 메소드가 닫혀 있다는 사실을 고려하여 MQL4가 이러한 라이브러리를 "먹지 않는다"는 사실에 직면해 있습니다. 그는 적극적으로 문제의 해결책을 찾기 시작했습니다. NuGet에서 다운로드한 "DLL 내보내기 " 라이브러리를 연결하는 것과 유사한 여러 옵션을 인터넷에서 찾았습니다. 다른 방법으로 시도했지만 작동하지 않습니다. 그리고 사실 저는 "오늘은 작동하지만 내일은 작동하지 않는다"는 원칙에 따라 이 문제에 대한 "취약한" 솔루션을 갖고 싶지 않습니다. 이렇게 시도했지만 실제로는 많이 다릅니다.

using System.Runtime.InteropServices;
using RGiesecke.DllExport;

[DllExport( "Good" , CallingConvention.Cdecl)] // + заменял на просто [DllExport] - не помогает
public static string Good() {

    return "GHBBBGGDDDD !!!!! РУССКИЙ! :) " + 5 .ToString();
}


2. C++로 안정적으로 작동하는 라이브러리를 작성해야 할 가능성이 높다는 것을 깨달았습니다. 1회부터 연결했는데 테스트 요청은 문제 없이 통과했습니다. 그러나 (DLL에서) 메서드로 문자 메시지(MQL로)를 반환하려고 했을 때 새로운 문제가 발생했습니다. MQL에서 " ?????‡?- " 형식으로 답을 얻었습니다. 메시지를 해독하려고 했지만 작동하지 않았습니다! 함수 매개변수를 통해 값을 반환하려고 했습니다. " ?? " 문자도 마찬가지입니다. 나는 많은 것을 삽질했지만 여전히 해결책을 찾지 못했습니다. 이 옵션을 선택했지만 물음표만 반환합니다.

 extern "C" __declspec(dllexport) char * __stdcall ToString( char * &str)
{
        str = " - 889 - dsa - просто!" ;
         return "--- Привет! ---" ;
}


다음 형식의 응답을 받습니다.

디코딩은 도움이되지 않습니다 ...


기본적으로 필요한 것:

1) C#을 통해 이 문제에 대한 실제 솔루션이 있습니까? 안정적이고 아름다운 솔루션이 필요합니다! 지금은 맞지만 새 빌드에서는 떨어질 수 있습니다. 이것은 선택 사항이 아닙니다.

2) C#에 솔루션이 없으면 C++를 사용합니다... 일반적으로 품질을 잃지 않고 양방향으로 메시지를 보낼 수 있습니까? (MQL - DLL - MQL). MT4와 MT5 모두에서 동일하게 작동하는 옵션이 필요합니다.

 
Artyom Trishkin :

다시 한 번 - 여기에 코드가 있습니다 - 명확하지 않은 것은 무엇입니까?

H1 이전과 같이 기간에 해당하지 않는 상수가 H1 이상에서 반환되는 이유는 명확하지 않습니다.

 Print (" PERIOD_M1 =", PERIOD_M1 );
Print (" PERIOD_M5 =", PERIOD_M5 );
Print (" PERIOD_M30 =", PERIOD_M30 );
Print (" PERIOD_H1 =", PERIOD_H1 );
 2020.04 . 10 03 : 47 : 03.627 VP (EPM20,H4)   PERIOD_M1 = 1
2020.04 . 10 03 : 47 : 03.627 VP (EPM20,H4)   PERIOD_M5 = 5
2020.04 . 10 03 : 47 : 03.627 VP (EPM20,H4)   PERIOD_M30 = 30
2020.04 . 10 03 : 47 : 03.627 VP (EPM20,H4)   PERIOD_H1 = 16385
2020.04 . 10 03 : 47 : 03.627 VP (EPM20,H4)   PERIOD_H4 = 16388

_Period 변수에서도 동일한 결과가 반환됩니다.

 
Roman :

H1 이전과 같이 기간에 해당하지 않는 상수가 H1 이상에서 반환되는 이유는 명확하지 않습니다.

_Period 변수에서도 동일한 결과가 반환됩니다.

 
Artyom Trishkin :

Artyom 미쳤지 마))
M30 앞에 정확히 TF 값이 표시되는 이유
하나
5
서른

그리고 16385는 H1에서 시작합니다.
글쎄, 그것은 논리적이지 않습니다. 먼저 의사록을 의사록으로 되돌린 다음 도대체 무엇을 해야 할까요?
그리고 시간 프레임 반환 값 으로 _Period 에 대한 도움말의 설명과 일치하지 않습니다.

 
Roman :

Artyom 미쳤지 마))
M30 앞에 정확히 TF 값이 표시되는 이유
하나
5
서른

그리고 16385는 H1에서 시작합니다.
글쎄, 그것은 논리적이지 않습니다. 먼저 의사록을 의사록으로 되돌린 다음 도대체 무엇을 해야 할까요?
그리고 시간 프레임 반환 값 으로 _Period 에 대한 도움말의 설명과 일치하지 않습니다.

기간 값 . 분이 아닙니다. 초가 아니라 Baba Nyura가 가지고 있는 거위의 수가 아니라 시간 프레임의 값입니다 .

Документация по MQL5: Проверка состояния / Period
Документация по MQL5: Проверка состояния / Period
  • www.mql5.com
Проверка состояния / Period - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin :

기간 값 . 분이 아닙니다. 초가 아니라 Baba Nyura가 가지고 있는 거위의 수가 아니라 시간 프레임의 값입니다 .

상수가 시간 프레임의 값과 같아야한다는 것은 무엇입니까!
그리고 대응의 논리적이고 수학적 의미를 수행하십시오.
이 값이 계산에 사용되기 때문입니다.

M1 = 1
M5=5
M30=30
H1 = 60
H4= 240
D1= 1440

그렇지 않으면 불도저에서 반환된 값의 의미가 손실됩니다.
따라서 제 생각에는 이것은 버그입니다.

 
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
 
Artyom Trishkin :

어떻게 이 모든 일을 그렇게 오랜 시간, 그리고 아침에도 반복할 수 있는 인내심이 있는지 궁금합니다... 벌써 또 잠 못 이루는 밤이 지나고 아침이 밝았지만.)))

적어도 하루 동안 나는 문서를 주의 깊게 읽을 수 있도록 그를 검역소로 보낼 것입니다. 주석 ... 이미 다양한 종류의 엉덩이와 같은 연속 언어에서 그러한 넌센스를 전달합니다. 그리고 다시 한 번,이 모든 것이 설명됩니다 ...

Service Desk에서 이 문제를 파악하고 있다고 상상해 보십시오. 그런 균형 잡힌 사람은 아마 없을 것입니다. 그래서 그들은 그것을 닫았습니다.