这个任务在MQL4中原则上可以解决吗? - 页 2

 

把代码给我,我们今晚就能想出办法。

你可以把它放在一个信息中 :)

 
tara:
把代码给我,我们晚上就能想出办法。

#property copyright"Copyright 2013, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"

//#include <WinUser32.mqh>。
//int whwnd;
//#include <stdlib.mqh> //标准库
双b。
双倍的百分比。
double maxpercent = 0;
int timetoresume = 10;
int selecttime = 1;
string status,status1;
总数。
int magic[100]。
int kol=0。
int tempkol =0;
//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
int init()
{

return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
// while(!IsStopped()) // 直到用户。
/// { // ......并不停止执行程序
// RefreshRates()。
b = AccountBalance()/100。
百分比 = 帐户利润()/b;
如果(maxpercent > percent)maxpercent = percent。
Timetoresume = TimeLocal()。
如果(百分比*(-1)>1)状态="冻结活动"。
否则状态="运行"。
total=OrdersTotal()。
kol = 0。
for (int i=total; i>0; i--) { //给数组的每个元素分配每个未结订单的值
OrderSelect (i-1,SELECT_BY_POS,MODE_TRADES)。
magic[i] = OrderMagicNumber()。
// 打印("魔法" + i+" " +magic[i];
}
for (int k = 1; k <= 1; k++){ // 比较第一个开放订单和后续订单的神奇数字
tempkol = magic[k];
for ( int l = 1; l <=total;l++){
如果(tempkol != magic[l])kol++。
}
}
如果(kol >= 2){ // 如果超过2个EA已经进入交易
GlobalVariableSet ("Freeze1",200) ; // 其他EA必须监听这些全局变量
GlobalVariableSet ("Freeze2",200); // 并且不进行交易,而其余的人有时间开单
status1="test2"; // advisor GlobalVariableSet ("Freeze1",200)做的事情,它已经等待了。
} //在终端中等待轮到它。
评论 ( AccountProfit()
,"\n"
, "DrawDown " , NormalizeDouble (percent,1)*(-1), " % " , " MaxDrawDown " , NormalizeDouble (maxpercent,1)*(-1), " % "
WWW.STEELT.CN
,"\n"
",状态,",百分比*(-1)
,"\n"
, "订单总数",总数
,"\n"
, "OrderSymbol()," Magic ",OrderMagicNumber()," "Kol
,"/n"," ",status1
);
返回。
}

//+------------------------------------------------------------------+

不要评判,上次我在辛克莱写程序,是在学校时用Basic写的....。


 
Zakyza:


是否可以在MQL4中设置一个优先级系统,以便首先执行管理EA的代码,然后再执行所有其他的EA?


当然这是有可能的。

按照 "主-从 "计划组织选举机构的工作

 
avtomat:


当然,你可以。

组织主从式顾问以 "主从式 "方式工作


请告诉我更多关于如何做到这一点。 交易专家顾问只能通过改变全局变量 来影响,当我的 "经理 "同意等待轮到他 时,他们会听从 这个变量GlobalVariableSet("Freeze1",200),并在那里写下200
 
Zakyza:

请告诉我如何安排。 交易专家顾问只能通过改变全局变量的值来影响,当我的 "经理 "在等待轮到他的 时候,他们听从 这个变量GlobalVariableSet("Freeze1",200),在那里写200

为什么你的经理,如果他是经理的话,要等待某种转机?

奴隶们应该等待他们的:经理在GV中写了一个贸易禁令--他们坐着,保持安静(奴隶已经检查了全局标志,如果 "坐着没有哔声"--说JawolGerGeneral,并返回(0))。

为什么你的经理在等待轮到访问GV标志?

 
这一切都由一个专家顾问完成 ))))你可以把100双鞋塞进去 ))))
 
artikul:
这一切都由一个专家顾问完成 ))))你可以把多达100对放入))))。

这不是我们要讨论的问题...
 

掌握

//+------------------------------------------------------------------+
int deinit()
  {
      GlobalVariableSet(work,0);   // запрещение работы ведомым
   return(0);
  }
//+------------------------------------------------------------------+
.....

int start()
   .....

   work=GlobalVariableGet(work);

   if( work==0 && всё_хорошо )   GlobalVariableSet(work,1);   // разрешение работы ведомым

   if( work==1 && всё_плохо )    GlobalVariableSet(work,0);   // запрещение работы ведомым

// можно организовать систему запретов/разрешений любой сложности   

   .....

奴隶

.....

int start()


   work=GlobalVariableGet(work);

   if( work==0 )   { стоп } ;    // здесь возможны некоторые действия для завершения текущих процессов

   if( work==1 )   { работа };   // ведомым разрешена работа -- можно работать в нормальном режиме

.....

我希望我已经说得很清楚了。

 
avtomat:

掌握

奴隶

我希望我已经说得很清楚了。


都清楚了,谢谢你。

我曾试过这种方式(即根据情况禁止和允许),但对我来说,它的效果如下。

在这个初始化的主程序之后:int deinit().... //禁止从机工作 是无声的,但只要向导放松(如果(相同的法师数量<=2))并写入GlobalVariableSet(work,1); //启用从机 ,在8个不同的对上有8个从机,设法在4-6个对上打开,而不是在主的条件下指定的2个他们在主人 "理解""相同的主宰的数量 "明显大于2之前打开。此后,其他奴隶当然是沉默的,但不再是如愿以偿地打开2份,而是4-6份。

按照我的理解,在我执行int start() 代码后,控制权交给了int start () 从属EA,这取决于从属EA的 int start( ),以及在向导开始前,每一对的拷贝会打开多少,全局的就会变得很麻烦。 如果我对终端的算法和问题的本质有误解,请纠正我。粗略地说是这样的:如果一个主站和一个从站是最有可能正常工作的,但从站的话有8-10个!

这就是为什么我写道,我试着循环启动主程序,让它永远保持下去,但我的终端机只是挂起。

artmedia70: "如果是经理的话,为什么你的经理在等待某种排队?" --这就是我想知道的。

 

还有,为什么会有两个相同的魔术师被制造出来?

全局变量 可用于为所包含的EA分配不重叠的魔法区域。相应的检查和分配是在init()中进行的。

此外,我们可以通过明确指定或指定主力来限制每个符号的开单数量,这取决于当前的总体情况,这正是主力应该控制的。

这意味着,如果奴隶做出行动,他/她必须向主人报告。反过来,主人必须给出他的总结,奴隶的进一步行动(或不行动)取决于此。