내 접근 방식. 코어 - 엔진. - 페이지 63

 
손을 판매하고 추가 라이브러리를 마스터하고 사용할 수 있는 프로그래머는 거의 없습니다.

또한 자신의 라이브러리를 작성할 수 있는 프로그래머는 거의 없습니다.

스스로 GUI를 원하는 사용자가 많이 있습니다. 그러나 그들에게는 모든 것이 쉬워야 합니다. 두 번 두 번처럼.
이렇게 하려면 vs와 같이 작업할 수 있는 별도의 프로젝트 를 만들어야 합니다.

베드로는 당신이 옳다고 생각하는 것을 하십시오. 통계수집 후 수요판단이 가능합니다. 우리는 귀하와 함께 계정 통계를 수집하기 위한 지표를 만들기 위해 노력했습니다. 아직 계산 부분을 완료하지 않았기 때문에 귀찮게하고 싶지 않았습니다.
나는 당신의 GUI가 나보다 프로그래밍하기 쉽다고 확신하지만 이미 완료되었습니다.
나는 계속 수정되고 있고 내 코드를 직접 관리하는 것이 더 쉽습니다. 다른 사람에게 무언가를 요구하고 싶지 않습니다.


그러나 당신의 작업을 높이 평가할 실제 사용자는 거의 없습니다. 나는 내 경험에서 말한다.
전문가를 위한 무료 라이브러리를 만들었습니다. 정보 준비 라이브러리. 정보만 표시하고 모든 고문을 관리할 수 있습니다.
수백 개의 다운로드. 몇 번 감사합니다. 그들은 중국, 브라질, 태국, 약간의 러시아를 펌핑합니다. 모두.

귀하의 라이브러리는 아름다운 인터페이스를 원하는 판매자에게 유용할 것입니다. 그러나 속도와 브레이크를 결함과 비교할 필요가 있습니다. 나는 이것에 부딪쳤다.

다른 모든 것은 중요하지 않습니다.
당신의 일을 하세요. 당신은 아무것도 증명할 필요가 없습니다.
 
Vladislav Andruschenko :
손을 판매하고 추가 라이브러리를 마스터하고 사용할 수 있는 프로그래머는 거의 없습니다.

또한 자신의 라이브러리를 작성할 수 있는 프로그래머는 거의 없습니다.

스스로 GUI를 원하는 사용자가 많이 있습니다. 그러나 그들에게는 모든 것이 쉬워야 합니다. 두 번 두 번처럼.
이렇게 하려면 다음과 같이 작업할 수 있는 별도의 프로젝트를 만들어야 합니다.

베드로는 당신이 옳다고 생각하는 것을 하십시오. 통계수집 후 수요판단이 가능합니다. 우리는 귀하와 함께 계정 통계를 수집하기 위한 지표를 만들기 위해 노력했습니다. 아직 계산 부분을 완료하지 않았기 때문에 귀찮게하고 싶지 않았습니다.
나는 당신의 GUI가 나보다 프로그래밍하기 쉽다고 확신하지만 이미 완료되었습니다.
나는 계속 수정되고 있고 내 코드를 직접 관리하는 것이 더 쉽습니다. 다른 사람에게 무언가를 요구하고 싶지 않습니다.


그러나 당신의 작업을 높이 평가할 실제 사용자는 거의 없습니다. 나는 내 경험에서 말한다.
전문가를 위한 무료 라이브러리를 만들었습니다. 정보 준비 라이브러리. 정보만 표시하고 모든 고문을 관리할 수 있습니다.
수백 개의 다운로드. 몇 번 감사합니다. 그들은 중국, 브라질, 태국, 약간의 러시아를 펌핑합니다. 모두.

귀하의 라이브러리는 아름다운 인터페이스를 원하는 판매자에게 유용할 것입니다. 그러나 속도와 브레이크를 결함과 비교할 필요가 있습니다. 나는 이것에 부딪쳤다.

다른 모든 것은 중요하지 않습니다.
당신의 일을 하세요. 당신은 아무것도 증명할 필요가 없습니다.


고맙습니다. 풍부한 경험을 가진 개발자이자 판매자로서 귀하의 의견은 저에게 매우 중요합니다.

 
Реter Konow :


고맙습니다. 풍부한 경험을 가진 개발자이자 판매자로서 귀하의 의견은 저에게 매우 중요합니다.

고맙습니다.
주요 목표는 라이브러리가 어드바이저의 기본 알고리즘에 영향을 미치지 않는 것입니다.
내 라이브러리를 만들 때 나는 이것을 처음 접했습니다.
 
Vladislav Andruschenko :
고맙습니다.
주요 목표는 라이브러리가 어드바이저의 기본 알고리즘에 영향을 미치지 않는 것입니다.
내 라이브러리를 만들 때 나는 이것을 처음 접했습니다.

내 연결은 독점적으로 외부에 있습니다. 전혀 영향을 미치지 않습니다.

마크업 언어로 GUI를 그렸습니다. "엔진" 표시기에 의해 수행됩니다.

2개의 파일이 어드바이저에 연결되어 연결 파일이 채워졌습니다.

GUI와 어드바이저가 있는 엔진을 시작했습니다.

그리고 모든 것이 작동합니다.

 
Vladislav Andruschenko :
...

또한 자신의 라이브러리를 작성할 수 있는 프로그래머는 거의 없습니다.

...

동의하지 않는다. 각 MQL 프로그래머는 전문가가 아니더라도 오랫동안 이 작업을 수행하면 원래 기능을 상당히 많이 축적합니다. 그것들을 모아서 라이브러리로 구성하는 것은 어렵지 않습니다. 나는 대부분의 사람들이 그것을 할 수 있다고 생각합니다.

 
khorosh :

동의하지 않는다. 각 MQL 프로그래머는 전문가가 아니더라도 오랫동안 이 작업을 수행하면 원래 기능을 상당히 많이 축적합니다. 그것들을 모아서 라이브러리로 구성하는 것은 어렵지 않습니다. 나는 대부분의 사람들이 그것을 할 수 있다고 생각합니다.

기능 세트에 대해 말하는 것이 아닙니다. GUI 라이브러리에 대해 이야기하고 있습니다. 나를 믿어. 모든 것을 정리하기가 어렵습니다. 그리고 베드로는 훌륭한 일을 했습니다.
 

문제를 다시 말씀드리겠습니다.

  1. MT 프로그램은 Windows 형식(눌림/해제)의 요소 상태를 변경해야 합니다.
  2. MT 프로그램은 Windows 양식 버튼의 색상을 변경해야 합니다.
  3. MT 프로그램은 Windows 양식 의 입력 필드 에서 텍스트를 받아들여야 합니다.
  4. MT 프로그램은 Windows 양식의 입력 필드에 텍스트를 설정해야 합니다.
  5. MT 프로그램은 Windows 응용 프로그램 창을 열고 닫아야 합니다.

모든 것이 간단해 보입니다. C#에서 두 개의 간단한 모양을 그려야 합니다. 버튼, 입력 필드 및 확인란이 있어야 합니다. DLL을 추가합니다. MT5와 연결합니다.

나는 MT에서 나의 아날로그를 만들 것이다. 동일한 형태와 요소, 동일한 기능의 성능. 다음으로 품질 및 개발 잠재력 측면에서 솔루션을 비교합니다.

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

내 솔루션은 다음과 같습니다.


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

EA의 제어 코드:

 void OnTimer ()
  { 
   static int q,q2,q3,q4,q5;    q++; q2++; q3++; q4++; q5++;
   //-----------------------------------------------------------------
   //Реализуем изменение цвета кнопки внутри формы.
   //-----------------------------------------------------------------
   if (q == 1 )E_Window_1_Button_1(M_COLOR, C'245,245,245' );
   if (q == 2 )E_Window_1_Button_1(M_COLOR, C'245,0,0' );
   if (q == 3 )q = 0 ;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку кнопки.
   //-----------------------------------------------------------------
   if (q2 == 1 )E_Window_1_Button_2(STATE,ON);  
   if (q2 == 2 )E_Window_1_Button_2(STATE,LOCKED_ON);
   if (q2 == 3 )E_Window_1_Button_2(STATE,OFF);
   if (q2 == 4 )E_Window_1_Button_2(STATE,LOCKED_OFF);
   if (q2 == 5 )q2 = 0 ;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку чекбоксов.
   //-----------------------------------------------------------------
   if (q3 == 1 ){E_Window_1_Checkbox_1(STATE,ON);         E_Window_1_Checkbox_2(STATE,LOCKED_ON);  E_Window_1_Checkbox_3(STATE,OFF);} 
   if (q3 == 2 ){E_Window_1_Checkbox_1(STATE,LOCKED_ON);  E_Window_1_Checkbox_2(STATE,OFF);        E_Window_1_Checkbox_3(STATE,ON);}
   if (q3 == 3 ){E_Window_1_Checkbox_1(STATE,OFF);        E_Window_1_Checkbox_2(STATE,ON);         E_Window_1_Checkbox_3(STATE,LOCKED_ON);}
   if (q3 == 4 )q3 = 0 ;
   //-----------------------------------------------------------------
   //Реализуем изменение текста в поле ввода:
   //-----------------------------------------------------------------
   E_Window_1_Edit_box_1( "Current text: " + MathRand ());
   //-----------------------------------------------------------------
   //Реализуем изменение цвета текста в поле ввода.
   //-----------------------------------------------------------------
   if (q4 == 1 )E_Window_1_Edit_box_1(T_COLOR, C'145,245,245' );
   if (q4 == 2 )E_Window_1_Edit_box_1(T_COLOR, C'245,10,0' );
   if (q4 == 3 )E_Window_1_Edit_box_1(T_COLOR, C'245,20,50' );
   if (q4 == 4 )E_Window_1_Edit_box_1(T_COLOR, C'245,130,0' );
   if (q4 == 5 )E_Window_1_Edit_box_1(T_COLOR, C'25,40,20' );
   if (q4 == 6 )E_Window_1_Edit_box_1(T_COLOR, C'245,170,0' );
   if (q4 == 7 )E_Window_1_Edit_box_1(T_COLOR, C'245,110,110' );
   if (q4 == 8 )E_Window_1_Edit_box_1(T_COLOR, C'245,255,0' );
   if (q4 == 9 )q4 = 0 ;
   //-----------------------------------------------------------------
   //Реализуем поочередное закрытие/открытие окон:
   //-----------------------------------------------------------------
   if (q5 == 1 )W_Window_2(close);
   if (q5 == 5 )W_Window_2();
   if (q5 == 10 )q5 = 0 ;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

아래에 첨부된 파일:

1. 테스트 EA 파일(Experts 폴더에 설치, 열기, 저장, 컴파일, 차트에 올리기).

2. 외부 연결 파일(포함 폴더에 설치).

3. 연결 속성 파일(포함 폴더에 설치).

4. Windows 코드가 있는 포럼 샘플 2 파일(보기 전용).

5. 엔진(지표 폴더에 설치. 테스트 어드바이저와 함께 차트에 던지십시오.)

 
내 상대가 DLL을 통해 Windows 양식을 연결하는 문제에 대한 솔루션을 제공하기를 바랍니다.
 
Реter Konow :
내 상대가 DLL을 통해 Windows 양식을 연결하는 문제에 대한 솔루션을 제공하기를 바랍니다.

여러분만의 '특별 올림피아드'에 여러분만이 참여하는 것 같은 느낌 :-)

 

신청서에 부탁드립니다. Expert Advisor가 시작되면 창이 열리고 창에는 두 개의 버튼, 두 개의 텍스트 필드 및 확인란이 있습니다. 버튼의 색상과 첫 번째 텍스트 필드의 텍스트는 1초에 한 번 변경됩니다. 두 번째 텍스트 필드에 텍스트를 입력하면 EA에서 이벤트 메시지와 이 텍스트가 포함된 경고를 엽니다. 버튼을 누르면 경고도 열리고 첫 번째 버튼은 양식-2를 열고 두 번째 버튼은 양식-2를 닫습니다. 다른 form-2는 십자가로 닫을 수 있습니다. 기본 양식(양식 1)은 십자가로 닫히지 않으며 Expert Advisor의 연결이 끊어지면 사라집니다. 확인란에서 경고도 열리며 1 및 2의 두 가지 유형의 이벤트가 있습니다 . 확인란 제거 및 설정.

대부분의 시간은 C #을 기억하는 데 보냈다 모든 프로젝트에서. 이제 몇 분 동안 GUI 계정을 만들 때;)

내부가 얼마나 힘든지 궁금하다면 전문가에게 이벤트를 보내 려면 클래스 메소드 를 호출해야합니다. 한 줄. 전문가로부터 컨트롤을 관리할 수 있는 기능을 제공하려면 두 가지 메서드를 작성해야 합니다. 그 중 하나는 양식 클래스에, 다른 하나는 이벤트 전달 클래스에 각각 한 줄의 코드가 있습니다.

그들의 전문가는 체크박스를 관리하지 않았습니다. 그는 지쳤습니다. 그래서 색상과 텍스트 설정이 있습니다(텍스트 매개변수와 정수 모두). 색상은 RGB로 전달되지만, 아마도 하나의 변수로 만들 수 있었을 것입니다. 나는 깊이 파고 들지 않았습니다.

그리고 C#과 FindowsForms를 더 잘 아는 사람은 두 배 더 쉽게 할 수 있다는 가정도 있습니다. 속성을 설정하는 두 가지 방법이 없지만 하나만 있으면 더 좋을 수도 있습니다.

일반적으로 C# 및 FindowsForms의 끝없는 세계로 가는 문이 열려 있습니다.


파일: