我的方法。核心是引擎。 - 页 63

 
换手的程序员中,能够砍掉额外的库并知道如何使用它的人很少。

能够自己写库的程序员也是少之又少。

有许多用户想要一个GUI。但对他们来说,一切都应该是简单的。就像二乘二一样简单。
为此,有必要做一个单独的项目,让你在工作中作为vs

彼得做你认为必要的事。你只有在设定了统计数据之后才能判断需求。我的意思是,我们试图与你做一个账户统计收集指标。我只是不想麻烦,因为我还没有完成计算部分。
虽然我相信你的GUI比我的更容易编程,而我的GUI已经完成了。
我只是在不断地修改,对我来说,自己管理自己的代码更容易,我不想让别人来做。


但真正的用户很少,他们会欣赏你的工作。我以我自己的经验告诉你。
我为专家做了一个免费图书馆。一个信息准备库。它只显示信息并允许你管理任何专家顾问。
有数以百计的下载。我已经被感谢了好几次。中国、巴西、泰国和俄罗斯正在下载它。就这样了。

你的库对那些想要一个漂亮界面的卖家来说是很有用的。但人们将不得不比较速度和刹车与故障。我曾遇到过这种情况。

其他一切都不重要。
做你自己的事。不需要证明什么。
 
Vladislav Andruschenko:
很少有程序员手脚麻利,能够处理和使用额外的库。

能够自己写库的程序员也是少之又少。

有许多用户想要一个GUI。但对他们来说,一切都应该是简单的。就像二乘二一样简单。
为此,有必要做一个单独的项目,让你在工作中作为vs

彼得做你认为必要的事。你只有在掌握了统计数据后才能判断需求。我的意思是,我们试图做一个指标来收集账户的统计数据。我只是不想麻烦,因为我还没有完成计算部分。
虽然我相信你的GUI比我的更容易编程,而我的GUI已经完成了。
我只是在不断地修改,对我来说,自己管理自己的代码更容易,我不想让别人来做。


但真正的用户很少,他们会欣赏你的工作。我以我自己的经验告诉你。
我为专家做了一个免费图书馆。一个信息准备库。它只显示信息并允许你管理任何专家顾问。
有数以百计的下载。我已经被感谢了好几次。中国、巴西、泰国和俄罗斯正在下载它。就这样了。

你的库对那些想要一个漂亮界面的卖家来说是很有用的。但人们将不得不比较速度和刹车与故障。我曾遇到过这种情况。

其他一切都不重要。
做你自己的事。不需要证明什么。


谢谢你。你的意见,作为一个有丰富经验的开发者和销售者,对我来说非常重要。

 
Реter Konow:


谢谢你。你的意见,作为一个有丰富经验的开发商和卖家,对我来说非常重要。

谢谢你。
主要目标是该库不影响专家顾问的主要算法。
我在一开始制作图书馆时就遇到了这个问题。
 
Vladislav Andruschenko:
谢谢你。
主要目标是该库不影响主EA算法。
我在一开始制作图书馆时就遇到了这个问题。

我所有的连接都是纯粹的外部连接。它不会以任何方式影响它。

GUI是用标记语言绘制的。它是由指示器 "引擎 "承载的。

我们已经将2个文件连接到EA,并填写了连接文件。

我们已经启动了带有图形用户界面和专家顾问的引擎。

而且一切正常。

 
Vladislav Andruschenko:
...

能够自己编写库的程序员也非常少。

...

我不同意。每个用MQL编程的人,即使是非专业人士,如果他们已经做了很长时间,都有相当多的原始功能。把它们批在一起,并以库的形式转换成一个文件,这很容易。我认为大多数人都能做到这一点。

 
khorosh:

我不同意。每个用MQL编程的人,即使是非专业人士,如果他们已经做了很长时间,也积累了很多自己的原创功能。把它们放在一起,作为一个库来存档是很容易的。我认为大多数人都能做到。

我不是在谈论一组函数。我指的是一个带有GUI的库。相信我。组织起来很复杂。而彼得做得很好。
 

我将再次重复这项任务。

  1. MT程序应该改变windows窗体元素的状态(按住/压住)。
  2. MT程序必须改变窗口窗体上的按钮的颜色。
  3. MT程序必须接受来自窗口表格输入字段 的文本。
  4. MT程序必须在窗口表格的输入字段中设置文本。
  5. MT程序必须打开/关闭windows应用程序的窗口。

这是很直接的。你需要在C#中绘制两个简单的表格。应该有一个按钮,一个输入字段和一个复选框。添加一个DLL。与MT5连接。

我将在MT中做我的模拟。同样的形式和元素,做同样的功能。接下来,让我们从质量和发展潜力方面来比较解决方案。

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

以下是我的解决方案。


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

专家顾问中的控制代码。

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文件(安装在EA文件夹中,打开,保存,编译,放在图表上)。

2.外部连接文件(将其安装在包容文件夹中)。

3.连接属性文件(安装在包容性文件夹中)。

4.论坛样本2文件中的窗口代码(仅查看)。

5.引擎(安装在指标文件夹中,与测试EA一起放在图表上)。

附加的文件:
 
我希望我的对手能提供他们对通过DLL连接Windows表单问题的解决方案。
 
Реter Konow:
我希望我的对手能提供他们对通过DLL连接Windows表格问题的解决方案。

我有一种感觉,你是唯一一个参加这个 "特殊奥林匹克 "的人 :-)

 

请在附录中。当你启动专家顾问时,会打开一个窗口,在窗口中,有两个按钮,两个文本框和一个复选框。按钮的颜色和第一个文本框中的文字将每秒钟改变一次。如果在第二个文本字段中输入文本,专家顾问将打开一个带有事件信息和该文本的警报。按下按钮也会打开一个警报,第一个按钮打开form-2,第二个按钮关闭form-2。你也可以用十字架来关闭表格-2。主窗体(窗体1)不能被交叉关闭,它将在EA断开连接时消失。该复选框也会打开一个警报,有两种类型的事件 来自于它。1和2--取消勾选和复选框。

我的大部分时间都花在了记忆C#上(如果我知道那里的东西的话:),我已经三年多没有用它做任何事情了,同时也在开发一个用于传递事件的类,但它是通用的,它可以用在任何项目中。所以现在创建一个gui的时候,它是以分钟为单位计算的;)。

如果你想知道内部有多耗时,你需要调用一个类方法 来传递一个事件给EA--一行。为了能够从EA中控制控件,你需要写两个方法,一个在表单类中,一个在事件传输类中,每一个都有一行代码。

我没有在他们的EA中做复选框控件--我对他们很厌烦,他们已经设置了颜色和文本--包括文本参数和ints。颜色是以RGB方式传输的,但可能可以由一个变量完成,我没有深入研究。

而且有一个假设是,对C#和FindowsForms比较了解的人可以做到事半功倍--没有两个设置属性的方法,而只有一个,也许还能做得更好。

好了,通往C#和FindowsForms的无限世界的大门已经打开。


附加的文件: