[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 548

 
artmedia70 писал(а)>>
什么是错误4051以及如何捕捉它?


https://docs.mql4.com/ru/constants/errors

ERR_INVALID_FUNCTION_PARAMVALUE 4051 函数参数的无效值

 
artmedia70 >>:
А кто сказал, что именно тот кусочек работает неправильно? Если б я выложил весь код - места бы не хватило...
Сначала вызываете на общение, потом в кусты... :)


不,我建议你拆开一段不起作用的代码。把它的每一个细节都拆开。而不是这样,你把整个代码铺开。:)

我不会躲在任何灌木丛中。>> 我引用一下。

>>让我们逐行拆开你的一段不能正常工作的代码......

>>我们该怎么做?

以下是我的话。你没有把一块不起作用的东西放在一起,而是放了一堆无法理解的东西--一些函数的集合。这就是我不喜欢的地方。

 

一般来说,为了找到一个错误,你需要屏蔽掉代码的某些部分。例如,代码由以下几个块组成。

- 交易信号的块状检查

- 阻止开仓/平仓/逆转的订单

- 阻止保持开放的位置。

我们使用多行注释/**/封锁最后两个区块,运行EA并使用打印或警报来检查关键变量的值--只是为了确保这个区块正常工作。如果我们遇到一个错误,请修复它。然后解锁下一个代码块,重复这个过程。以此类推,直到整个代码调试完毕。另一种方式会更加乏味。

 
drknn >>:

Вообще, чтоб найти ошибку, нужно заблокировать некоторые участки кода. Например, код состоит из следующих блоков:

- Блок проверки наличия торгового сигнала

- Блок открытия/закрытия/переворота ордеров

- Блок сопровождения открытых позиций.

Блокируем при помощи многострочного комментария /**/ два последних блока, запускаем советника и с помощью принта или алерта снимаем значения ключевых переменных - просто убеждаемся, что этот блок работает корректно. Если натыкаемся на ошибку, то исправляем её. Затем снимаем блокировку со следующего блока кода и повторяем процедуру. И так далее до тех пор, пока весь код ни окажется отлажен. Другой путь будет более утомителен.

是的,谢谢你,我已经很熟悉了......。我有点缺乏知识。而我贴出所有的代码只是因为我不知道哪一部分不工作。它不一定是最初发布的那个。谢谢你的参与...:)
 
请问如何在专家顾问中添加一个指标来获取CF Н4的数据?
#property copyright "Krokus"
#property link      ""
//----
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//----
extern int       N=20; // период канала 
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit;
   double upPrice,downPrice;
//---- 
   if (counted_bars==0) limit=Bars-N;
   if (counted_bars>=0) limit=Bars-counted_bars;
   limit--;
   for(int i=limit;i>=0;i--)
     {
      upPrice=High[iHighest(Symbol(),0,MODE_HIGH,N,i)];//максимум за N баров 
      downPrice=Low[iLowest(Symbol(),0,MODE_LOW,N,i)]; //минимум за N баров 
      ExtMapBuffer1[i]=(upPrice-downPrice)/Point;

     }
//---- 
   return(0);
  }
//+------------------------------------------------------------------+
 
进入考官的代码,而不是进入调用
 
Andrei01 >>:
Скажите, должны ли рисоваться графические объекты советником в тестере не в ценовом окне, а в отдельном? Почему-то это не работает при замене нуля на единицу при создании объекта.

创建一个单独窗口的空的iCustom指标,并从EA中调用它。

如果你没有一个窗口,那么你就给一个绘图的命令,没有必要这样做。

唯一需要注意的是规模。

最简单的方法是将两个缓冲区设置为背景色。

在一个窗口中,你指定最大,在另一个窗口中指定最小,这很方便,你可以从指标的外部参数中调整它。

 
sllawa3 >>:
подскажите пожалуйста как вписать индюк в эксперт чтоб снимал данные с тф н4 ???
for(int i=limit;i>=0;i--)
     {
      int ii=iBarShift(Symbol(), 240, i);//Symbol() или NULL

      upPrice=iHigh( NULL, 240,  iHighest(NULL, 240 ,MODE_HIGH,N, ii) );//максимум за N баров 
      downPrice=iLow( NULL, 240,  iLowest(NULL, 240 ,MODE_LOW, N, ii) ); //минимум за N баров 

      ExtMapBuffer1[i]=(upPrice-downPrice)/Point;

     }
计算独立于图表的右侧TF(H4),类似这样的情况
 
这是行不通的...没有规定限额,如何规定?
int    counted_bars=IndicatorCounted();
тоже в эксперте не потянет
 
未结头寸 被逐一追踪,同时在 "其他人 "的TP和SL上关闭......。因此,它是一个烂摊子......我怎样才能赢呢?