크라우드소싱 GUI. 오픈 베타 테스트.

 

커뮤니티 에 무료로 사용할 수 있는 MQL 프로그램용 GUI 생성자를 제공합니다.

  • 개발을 중앙 집중화하고 버전을 배포할 때 혼란을 없애기 위해 GUI 생성자를 닫힌 .ex5 파일로 제공합니다.
  • 열린 .mqh 파일로 GUI 엔진을 첨부합니다. 하지만! - 저와 상의하지 않고 임의로 코드를 변경하는 것은 권장하지 않습니다. 이로 인해 오류가 발생하고 기능이 손실될 수 있습니다.
  • 버그 및 단점을 보고해 주세요.

건설적인 참여를 위해

추신: 이 프로젝트는 크라우드소싱이므로 함께 구현할 것입니다.

//------------------------------------------------ -------------------------------------------------- ---------------

집회:

  • Expert Advisor KIB.ex5 - GUI 생성자.
  • GUI_DRIVE.mqh 파일은 사용자 애플리케이션의 GUI 엔진입니다. 파일로 첨부합니다.
  • KIB-source.mqh 표시기 - 사용자 프로젝트 파일에서 생성자로 마크업 코드를 전송합니다.

설치 지침:

1단계 - 포장 풀기:

  • Experts 폴더에 KIB.ex5 Expert Advisor를 배치합니다. (하위 폴더에 넣지 마십시오).
  • GUI_DRIVE.mqh 파일을 포함 폴더에 넣으십시오. (하위 폴더에 넣지 마십시오).
  • KIB-source.mqh 표시기를 표시기 폴더에 배치합니다. (하위 폴더에 넣지 마십시오).

2단계 - 파일 설치:

  • 무료 차트에 KIB.ex5 Expert Advisor를 설치하세요.
  • MetaEditor에서 표시기 KIB-source.mqh를 열고 컴파일하여 .ex5 파일을 가져옵니다.
  • KIB.ex5 Expert Advisor가 있는 동일한 차트에 결과 KIB-source.ex5 파일을 설치합니다.

3단계 - 작업 준비:

  • 포함 폴더 안에 새 GUI 프로젝트에 대한 "MyProjects" 폴더를 만듭니다.
  • 마크업을 쓰기 위한 Window_1.mqh 파일을 생성합니다. 이 파일을 엽니다.
  • "source" 배열 초기화 (#include <MyProjects\Window_1.mqh>) 내부의 KIB-source.mqh 하단에 이 파일의 연결을 지정합니다.

4단계 - 시작하기:

  • 가장 간단한 코드 작성:

 //----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, " Hello World! " ,  W_ICON, "::Images\\16x16\\Folder.bmp" ,  W_TYPE, SETTINGS, ALWAYS_ON_TOP,
//----------------------------------------------------------------------------------
GROUP, "Кнопка" ,

__,BUTTON, "Hello World!" ,

END_GROUP,
//--------------------------
i, AT, _X2X, "MF" , 10 , _Y2Y, "MF" , 10 ,
//----------------------------------------------------------------------------------
END_WINDOW,

  • KIB-source.mqh 파일을 컴파일합니다. 차트에 버튼이 있는 창이 나타납니다.

5단계 - 맞춤형 GUI 디자인:

  • 추가 분기에서는 원하는 GUI를 만드는 데 도움이 되는 자습서 및 코드 샘플이 제공됩니다.

6단계 - 사용자 지정 GUI 저장:

  • 차트를 더블 클릭하여 생성자의 컨텍스트 메뉴를 호출합니다.
  • 마지막 항목 "프로젝트 저장 및 API 파일 인쇄"를 선택하십시오.
  • "Files" 폴더에 "CORES.mqh" 및 "Internal_API.mqh"라는 두 개의 파일이 저장됩니다.
  • "Files" 폴더에서 MyProjects 폴더 내에서 이러한 파일을 수동으로 전송합니다.
  • 프로젝트가 저장됩니다.

7단계 - 사용자 지정 GUI를 Expert Advisor에 연결:

 //+------------------------------------------------------------------+
//|                                                   GUI Expert.mq5 |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Peter Konow"
//--------------------------------------------------------------------
#include<GUI_DRIVE.mqh>
#include<MyProject_1\CORES.mqh>
#include<MyProject_1\Internal_API.mqh> 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   //--- create timer
   EventSetMillisecondTimer ( 25 );
   //-------------------------
   D_OnInit();
   //-------------------------
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- destroy timer
   EventKillTimer ();
   //-------------------------
   D_OnDeinit();
   //-------------------------
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //УСТАНОВИТЬ ВЫЗОВ В САМОМ НИЗУ, ПОД ПОЛЬЗ.КОДОМ.------------------
   //---------------------------
   RMSG( 1 );
   //---------------------------
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
   //УСТАНОВИТЬ ВЫЗОВ НА САМОМ ВЕРХУ, НАД ПОЛЬЗ.КОДОМ.---------------
   //----------------------------------------------------------------
   D_OnChartEvent(id,lparam,dparam,sparam);
   //----------------------------------------------------------------
  }
//+------------------------------------------------------------------+


8단계 - 컨트롤에서 이벤트 수신:

  • 이벤트는 "Internal_API.mqh" 파일 내부의 함수로 옵니다.

 //========================================================================================================= 
void On_Gui_Event( int Element, string value , double Magic = 0 )
{
 string action = value , selected_option = value ; //DON'T CHANGE THIS LINE
//------------------------------------
 switch (Element)
   {
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox 1  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Checkbox_1:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch (( int )action)
               {
                 case checked :     break ;
  
                 case unchecked :     break ;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break ;
  
...

  • 사용자 기능의 필요한 반응을 해당 경우에 작성하십시오.


추신. 블로그에 통합 리소스가 포함된 컴파일된 버전의 생성자가 있습니다. https://www.mql5.com/ru/blogs/post/733356

이 버전에는 리소스가 다른 폴더(사운드 및 그림이 있는 중첩된 하위 폴더)에 있고 설명이 많이 포함된 모든 것을 여기로 옮길 필요가 없기 때문에 오픈 소스만 있습니다.

Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Функция ArrayResize() позволяет задать для массива размер с некоторым запасом для его будущего увеличения без физического перераспределения памяти. Это сделано для улучшения быстродействия, так как операции по распределению памяти...
파일:
KIB-source.mq5  132 kb
GUI_DRIVE.mqh  2013 kb
KIB.zip  1470 kb
 

닫힌 코드 -> 시장.

오픈 소스 -> 포럼.

 
Vladimir Karputov :

닫힌 코드 -> 시장.

오픈 소스 -> 포럼.

좋은. 생성자의 오픈 소스 코드를 게시하겠습니다. 하지만 그의 머리를 빗으려면 며칠이 필요합니다. 기다릴 의향이 있습니까?

 
Реter Konow :

좋은. 생성자의 오픈 소스 코드를 게시하겠습니다. 하지만 그의 머리를 빗으려면 며칠이 필요합니다. 기다릴 의향이 있습니까?

당신의 주제는 아무데도 가지 않습니다.

 
"쇼? 또?!))
 
Dmitriy Skub :
"쇼? 또?!))
아직 빗질하지 않았어, 기다려
 
Реter Konow :


그건 그렇고, 프로젝트를 만들어보십시오.


 
Vladimir Karputov :

그건 그렇고, 프로젝트를 만들어보십시오.


좋은. 그냥 설명하겠습니다. 생성자 또는 엔진 자체의 코드는 20,000줄 이상의 코드입니다. 이 스레드에서 저는 사람들에게 마크업 언어로 GUI를 만드는 방법을 가르치고 싶었고 디자이너 자체의 코드를 이해하지 못했습니다. 따라서 사용자의 편의를 위해 생성자 코드를 하나의 파일에 배치하고 싶습니다.

 
Реter Konow :

좋은. 그냥 설명하겠습니다. 생성자 또는 엔진 자체의 코드는 20,000줄 이상의 코드입니다. 이 스레드에서 저는 사람들에게 마크업 언어로 GUI를 만드는 방법을 가르치고 싶었고 디자이너 자체의 코드를 이해하지 못했습니다. 따라서 사용자의 편의를 위해 생성자 코드를 하나의 파일에 배치하고 싶습니다.

아니요. 따라서 각 마켓 판매자는 "Test my best advisor"와 같은 자신의 지점을 시작합니다.

 
Vladimir Karputov :

아니요. 따라서 각 마켓 판매자는 "Test my best advisor"와 같은 자신의 지점을 시작합니다.

확인. 차이 없음. 그대로 포스팅 하겠습니다.

 
Реter Konow :

추신: 이 프로젝트는 크라우드소싱이므로 함께 구현할 것입니다.

그리고 이 프로젝트 에서 적어도 크라우드소싱은 무엇입니까?

내 생각에 당신은 테스터를 찾고 있으며 생산에 "코드를 완성"할 사람들이 아니라 (코드가 무료인 경우에도)