[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 378

 
Dimka-novitsek:
我想在测试期间在可视化测试中显示数据。我开始对一个专家顾问进行测试。我在同一图表上拖动另一个EA,因为它正在被测试。我没有看到任何评论!专家顾问在微笑...


它不会像这样工作。在视觉测试 图表上拖动的EA要么根本不显示,要么显示账户中的内容,而不是测试器中的内容(我不知道具体是什么,我不知为何缺乏创造这种东西的创意:)。

 

你知道,我没有看到图表上的评论。

int start()
  { Comment("OrdersProfit  ",OrderProfit(),"AccountBalance  ",AccountBalance(),"Equity  ",AccountEquity());
//----
  double Itogo_Profit=Orderasthitaem();
  if (Itogo_Profit>ProfitSeriyniy){Pozuminusudalaem();}
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Integer:

瓦迪姆,你尝试过应用它吗?它没有同步任何东西。我最近一直在玩这个游戏。你必须自己建立队列。不幸的是,它所做的只是将代码减少了三行。也可能是我不理解。
没试过。我现在就去试试。我现在在DLL中做一切事情。那里更容易。
 
谢谢你,Integer!!!
 

我明白了。 VVel in init()
{
//----
Comment("OrdersProfit " ,OrderProfit(), "AccountBalance " ,AccountBalance(), "Equity " ,AccountEquity());
//----
return(0);
}

测试器中没有任何东西。嗯...

 

Dimka-novitsek:


我明白了。 VVel in init()
{
//----
Comment("OrdersProfit " ,OrderProfit(), "AccountBalance " ,AccountBalance(), "Equity " ,AccountEquity());
//----
return(0);
}

测试器中没有任何东西。嗯...


也许,被粘贴的专家顾问有评论输出的功能? 检查在这个EA中调用了多少次Comment() 函数。

要输出OrderProfit(),应首先选择订单。

另外......在初始阶段做这些事情有什么意义?它应该在start()中完成。

 
Integer:


也许插入的EA仍然有Comment()函数? 检查EA中Comment()函数被调用的频率。

要输出OrderProfit(),必须先选择订单。

另外......在初始阶段做这些事情有什么意义?它应该在start()中完成。



Inite,我想看看我的东西是否写了什么,但没有虱子。所以我在init中重复了这一行。而我在OrderProfit()上搞砸了!

这里我们有一个完整的拼图。你能相信吗!?4063预计是一个整数 参数。

这里 -

OrderClose(  Orderasthitaem[i,0,1], Orderasthitaem[i,0,2], Bid, 5, 0) ; Error=GetLastError(); 

阵列中的双胞胎类型。Ticket正好是一个整数和票数,但结果却是一个双数。如何从函数doublet得到整数?

对不起,我完全不明白。

 
Integer:

瓦迪姆,你尝试过应用它吗?它不以任何方式进行同步。我最近一直在玩这个游戏。你必须自己安排排队。不幸的是,它只允许你将代码缩短三行。也可能是我不理解。

队列的组织方式与其他语言一样。通过对要保护的区块的输入和输出的组织本身。

这是个脚本。

#property show_inputs

extern int Pause = 1000;

int    hwndChart = NULL; // Уникальный идентификатор скрипта.
string sName = "Condition";

void init()
 {
  hwndChart = WindowHandle(Symbol(), 0);
  // Создаём глобальную переменную синхронизации скриптов.
  if (!GlobalVariableCheck(sName)) GlobalVariableSet(sName, 0);
 }
 
void deinit()
 {
  GlobalVariableDel(sName);
 }

void start()
 {
  while (!IsStopped())
   {// Начало блока синхронизации.
    GlobalVariableSetOnCondition(sName, hwndChart, 0);
    if (GlobalVariableGet(sName) == hwndChart)
     {
      Print("Start");
      Sleep(Pause); // Имитация работы.
      Print("End");
     }
    GlobalVariableSetOnCondition(sName, 0, hwndChart);
    // Завершение блока синхронизации.
    Sleep(200);
   }
 }
至于切割,就像用其他功能替换一样,是不会有效果的。这就是原子访问的作用。在MQL4中只有一个函数可以做到这一点。
整数
也就是说,仅仅使用这个函数就可以确保一次只有一个EA工作,但队列没有建立,一个EA可以闲置,而另一个可以被调用两次。

它似乎工作得很好。加载了6个脚本,暂停时间为3000、2000、1000、500、300、200。以下是日志的一部分。

19:58:36 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Start
19:58:37 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY 结束
19:58:37 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD开始
19:58:39 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 结束
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD启动
19:58:39 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD结束
19:58:39 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:58:43 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD结束
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD开始
19:58:43 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 结束
19:58:43 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD开始
19:58:45 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 结束
19:58:45 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:58:46 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 结束
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 结束
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD启动
19:58:46 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD结束
19:58:46 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:47 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 结束
19:58:47 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY Start
19:58:48 Check_GlobalVariableSetOnCondition() GBPJPY,M1: GBPJPY 结束
19:58:48 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD开始
19:58:50 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 结束
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD启动
19:58:50 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD结束
19:58:50 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:58:54 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD结束
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD Start
19:58:54 Check_GlobalVariableSetOnCondition() NZDUSD,M1: NZDUSD 结束
19:58:54 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD开始
19:58:56 Check_GlobalVariableSetOnCondition() EURUSD,M1: EURUSD 结束
19:58:56 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD启动
19:58:57 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD结束
19:58:57 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD Start
19:59:00 Check_GlobalVariableSetOnCondition() AUDUSD,M1: AUDUSD结束
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD Start
19:59:00 Check_GlobalVariableSetOnCondition() GBPUSD,M1: GBPUSD 结束
19:59:00 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD启动
19:59:01 Check_GlobalVariableSetOnCondition() USDCAD,M1: USDCAD结束

 
它的作用是,在一个时间点上执行一个函数,但顺序没有得到遵守。
 
Dimka-novitsek:


...如何从一个双数函数中得到一个整数?

int Int(double v){

return(v);

}