번역의 어려움 :)

 

하룻밤 사이에 MQL4에서 5로 프로젝트를 전송한 방법을 알려드리고 싶습니다. 바로, Andrey가 흥분하지 않도록, 나는 자랑하지 않고, 단지 연습에 대해 이야기하고 싶습니다. 모든 것이 재미있고 간단하게 밝혀졌습니다.)

그래서 어제 오후에 피곤해서 30분 정도 누워 있다가 밤 1시 반에 일어났습니다. 코고고 이제 어떡하면 잠이 들 것 같아요.

그리고 오래전부터 헤지 기능이 있는 MT4에서 MT5로 스캘퍼 프로젝트를 옮기고 싶었고 이미 오래전에 robo에서 헤지 데모를 시작했지만 정말 시간이 없었습니다. 주요 목표는 robo의 실제 진드기를 테스트하는 것입니다. 그리고 속도가 정말 만족스러운 클라우드에서 옵티마이저를 실행하십시오.

이제 Matlab에서 모델을 실행하고 있지만 이것은 여전히 단순화된 버전이며 코드와 모델의 변경 사항을 동기화하는 것이 점점 더 어렵고 지루합니다. 모델이 실제 MQL4 코드보다 지속적으로 뒤처진다고 가정해 보겠습니다.

********** 마이그레이션 프로세스 *****

따라서 내 프로젝트는 .mq4 파일 하나와 .mqh의 여러 클래스로 구성됩니다. 모든 것을 5-ku로 옮기고 .mq4에서 .mq5로 이름을 변경하고 클래스를 그대로 두었습니다. 컴파일을 시작했고 자연스럽게 100500 오류가 발생했습니다. 좋아, 어려움은 우리를 두려워하지 않고 실수를 봅니다. 대량은 거의 모든 곳에서 찾을 수 있는 MarketInfo와 연결됩니다. 자, 저는 게으른 고양이입니다. 게으름의 원칙으로 인해 손으로 청소할 수 없습니다.)) Visual Studio를 시작하고 거기에 이미 MQL4/5 파일 작업을 위한 프로젝트가 있습니다.

그건 그렇고, YouTube는 여전히 2011년의 오래된 비디오, MQL 파일을 긍정적인 파일로 인식하도록 스튜디오 2010을 설정하는 방법을 주의 깊게 보관하고 있습니다. 변경된 사항은 없으며 지금도 계속 사용하실 수 있습니다.

비디오는 2011년에 나온 것입니다. MQL4에서 많은 것을 맹세할 수 있습니다. 지금은 상황이 바뀌었고 언어는 정상입니다. )) 다시 듣기에는 너무 게으르지만 과거의 메아리가 지나갈 수 있습니다.

https://www.youtube.com/watch?v=oQs4qqwhqzg

그래서 나는 모든 것을 스튜디오에 던졌습니다. 거기에는 하나의 파일이 아니라 전체 프로젝트에 대해 검색 및 교체를 즉시 수행할 수 있다는 편의 시설이 있습니다. 모든 MarketInfo를 MQL5의 아날로그로 대체했습니다. 몇 가지 사소한 수정 후에 모든 오류는 예상대로 COrderManager 클래스에 남아 있었습니다. 이것은 주문을 관리하고, 그리드를 만들고 수정하는 등 모든 종류의 작업을 수행하는 클래스입니다.

리메이크하는데 아마 3시간 정도 걸렸던 것 같은데, CTrade Standard Library 클래스를 이용했는데, 일부 기능이 부족해서 아이를 낳아야 했습니다.

-----------------------

결론. 그래, 쓰레기야, 이 모든 신음은 가난한 프로그래머가 상위 5위 안에 드는 것이 얼마나 어려운 일인지에 대한 것이다! 전환하는 동안 나는 고기와 함께 감자의 거대한 프라이팬을 튀기고, 밤에 산책을 가고, 밤에 걷는 것을 좋아하고, Bruce W.와 작은 영화를보고, 글쎄, 내 손이하지 않은 곳을 크게 개선했습니다. 도달하다. 이제 리베이트를 할 수 있습니다. 그렇지 않으면 최근에 오래된 약속이 생각났고, 그 주제는 요전에 다시 나타났습니다.

예, COrderManager 클래스는 표준 라이브러리를 사용하여 많은 무게를 잃었습니다.

Настройка Visual Studio 2010 для редактирования MQL файлов
Настройка Visual Studio 2010 для редактирования MQL файлов
  • 2011.07.01
  • www.youtube.com
Как известно, редактор Metatrader 4 далек от совершенства. Часто удобно редактировать большие проекты в VS2010. На этом видео я показываю процесс настройки.
 
Andrey F. Zelinsky :

"밤에 산책을 갔다" 이후 "개선된 장소"를 이해하는 방법은 무엇입니까?

당신은 밤에 걸었습니까, 아니면 산책하러 갔습니까?

사무실에 오래 앉아 있지 않아도 되며, 밤에 걷는 경우가 많습니다.) 프로젝트 에서 오래전부터 다시 하고 싶은 곳을 개선했는데 너무 게을러서 잘 됐습니다. 그리고 여기, 그런 일을 위해 개종은 어떻게든 모여서 또 많은 일을 했습니다.

Andrey, "걷기"와 "쿵"은 다른 것입니다))

 

Alexey, 질문:

절차적 스타일로 작성된 프로젝트를 번역하는 것은 얼마나 길고 어려운가요? 절차상 왜? - 나는 그것에 익숙합니다. 모든 경우에 하나의 템플릿이 있습니다. 나는 그 안에 조건에 대해 3-5 줄을 쓰고 모든 올빼미는 모든 디버깅을 통해 30 분 만에 준비됩니다.

수행원:

4와 같은 형태로 사용하기 위해 위치 열림 기능을 다시 작성할 수 있습니까? 나는 단지 그들의 이름과 사용에 몇 년 동안 익숙해지고 라이브러리를 연결할 필요가 없습니다.

글쎄, 그래픽을 열고 생성하기 위한 조건 블록:

아직 그래픽이 많이 남아서 어떻게든 5번에 한번 썼는데, .opu를 통해서 뭔가가 있는데 1번 포인트와 2번 포인트를 선택하는데 드는 시간과 대가가 있습니다. 네 번째에서는 ObjectSetInteger(0,nm,OBJPROP_TIME 1 , t1) 및 ObjectSetInteger(0,nm,OBJPROP_TIME 2 , t2)와 같지만 다섯 번째에서는 이 구성이 작동하지 않습니다(

답변에 미리 감사드립니다!

 
Alexey Volchanskiy :

...

결론. 그래, 쓰레기야, 이 모든 신음은 가난한 프로그래머가 상위 5위권으로 전환하는 것이 얼마나 어려운 일인지에 대한 것이다! ...

여기서 하나님의 선물을 스크램블 에그와 혼동할 필요가 없습니다. EA가 여러 주문으로 작업하고 네팅으로 이전되는 경우 이는 비현실적인 작업입니다.
 

코드를 이식하지 않는 것이 더 쉽습니다. 그리고 처음부터 씁니다. 그래서 더 좋은 품질이 될 것입니다.

 
Dmitry Fedoseev :
여기서 하나님의 선물을 스크램블 에그와 혼동할 필요가 없습니다. EA가 여러 주문으로 작업하고 네팅으로 이전되는 경우 이는 비현실적인 작업입니다.

물론 첫글에 " 그리고 오래전부터 헤지와 함께 제 스캘퍼 프로젝트 를 MT4에서 MT5로 옮기고 싶었고, 이미 로보에서 헤지 데모 를 시작한지 오래됐지만 정말 시간이 없었습니다. " 아마도 이러한 세부 사항을 놓쳤을 것입니다.

그렇기 때문에 MT5로 바꾸지 않고 그물만 있었습니다. 이제 울타리를 치고 천천히 기어갑니다.

게시물은 전환의 순전히 기술적인 측면에 관한 것이었습니다.

 
Anton Zverev :

코드를 이식하지 않는 것이 더 쉽습니다. 그리고 처음부터 씁니다. 그래서 더 좋은 품질이 될 것입니다.

왜요? 언어는 동일하고 시계열에 액세스하는 기능은 다르며 일부는 다르며 이는 내가 작성한 전체 프로젝트 를 대체하여 VS에서 해결됩니다. 빠르고 쉽습니다. 거래 부분에 약간의 어려움이 있어 주문 처리 외에 포지션 처리를 클래스에 도입해야 했습니다. 그러나 원칙적으로는 말도 안됩니다.

만일의 경우를 대비하여 다시 한 번 - 저는 헤지(hedge)에 대해 말하는 것입니다.

 
Vitaly Muzichenko :

Alexey, 질문:

절차적 스타일로 작성된 프로젝트를 번역하는 것은 얼마나 길고 어려운가요? 절차상 왜? - 나는 그것에 익숙합니다. 모든 경우에 하나의 템플릿이 있습니다. 나는 그 안에 조건에 대해 3-5 줄을 쓰고 모든 올빼미는 모든 디버깅을 통해 30 분 만에 준비됩니다.

수행원:

4와 같은 형태로 사용하기 위해 위치 열림 기능을 다시 작성할 수 있습니까? 나는 단지 그들의 이름과 사용에 몇 년 동안 익숙해지고 라이브러리를 연결할 필요가 없습니다.

글쎄, 그래픽을 열고 생성하기 위한 조건 블록:

아직 그래픽이 많이 남아서 어떻게든 5번에 한번 썼는데, .opu를 통해서 뭔가가 있는데 1번 포인트와 2번 포인트를 선택하는데 드는 시간과 대가가 있습니다. 네 번째에서는 ObjectSetInteger(0,nm,OBJPROP_TIME 1 , t1) 및 ObjectSetInteger(0,nm,OBJPROP_TIME 2 , t2)와 같지만 다섯 번째에서는 이 구성이 작동하지 않습니다(

답변에 미리 감사드립니다!

Vitaly, 모든 것을 절차적 스타일로 둘 수 있으므로 아무도 OOP를 사용하도록 강요하지 않습니다. 표준 라이브러리 가 나에게 명확하다는 것뿐입니다. 거기에서 클래스를 낳고 뭔가를 추가했습니다. 예, 그리고 저는 OOP에서 모든 작업을 수행했습니다.

나는 역순으로 대답한다

1. 그래픽으로 스크립트를 다시 작업했는데 차이점이 있지만 극히 미미합니다. 기본적으로 창과 하위 창을 명시적으로 지정해야 하며 4개에서는 선택 사항이었습니다.

2. 오픈 포지션의 경우 CTrade 클래스를 사용하면 MQL4 기능과 거의 직접적인 유사점이 있습니다.

3. 오래는 안 될 것 같아요.

프리랜서에 대해 이야기하고 있다면 매우 빠르게 참여할 수 있습니다. 기본적으로 주문, 거래 및 위치가 서로 다르다는 사실에 익숙해져야 합니다. 그리고 헤지.

 
Anton Zverev :

코드를 이식하지 않는 것이 더 쉽습니다. 그리고 처음부터 씁니다. 그래서 더 좋은 품질이 될 것입니다.

때로는 직장, 아내, 인생 전체를 그만두고 처음부터 다시 시작하는 것이 좋습니다. 나는 그렇게 많은 시간을 했다. 모든 것이 점점 더 좋아집니다 :)
 
Alexey Volchanskiy :
때로는 직장, 아내, 인생 전체를 그만두고 처음부터 다시 시작하는 것이 좋습니다. 나는 그렇게 많은 시간을 했다. 모든 것이 점점 더 좋아집니다 :)
))
 
이제 그들은 나를 공격할 것입니다 - 나는 그것을 느낍니다. OOP 스타일로 작성해야하며 행복이있을 것입니다.
그리고 그런 움직임은 쉬운 산책이 될 것입니다.