初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1037

 
Artyom Trishkin:

检查。PLOT_SHOW_DATA

非常感谢您!

 
您能否建议为MQL5提供一个类似于MQL4的SetIndexDrawBegin()函数。
 
The_Sheikh:
请为MQL5的SetIndexDrawBegin()函数提出类似于MQL4的建议。

https://www.mql5.com/ru/articles/81

void SetIndexDrawBegin(int index,
                       int begin)
bool PlotIndexSetInteger(index,PLOT_DRAW_BEGIN,begin)
设置IndexDrawBegin
设置从数据开始的柱状物的序列号,从这个序列号开始绘制指示线。
PlotIndexSetInteger
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
有没有可能在MT5中禁用策略测试器 的日志?我没有多余的打印,但我有20Gb过夜,VPS被卡住了。我在7个货币对上运行策略,每个货币对上每天有多达10笔交易。
 
Evgeny Dyuka:
有没有可能在MT5中禁用策略测试器 的日志?我没有多余的打印,但我有20Gb的过夜,VPS被卡住了。我在7个货币对上运行策略,每个货币对上每天有多达10笔交易。

是否有一个多货币的EA在VPS上运行?测试是在什么时期进行的?还是有7个测试者在运行?

 
Alexey Viktorov:

VPS上是否有一个多币种的EA在运行?在什么时期进行测试?还是有7个测试者在运行?

一个多货币EA运行在7个货币对上,每天有70-80个交易,放了一年,经过5个小时的测试,日志超过20Gb,VDS死了。日志的问题是持续存在的,有时bot plumed depo不会停止测试,但一直显示depo负载150%,如果我不停止它,我将看到日志,直到VDS挂起。我通过程序解决了这个问题--当 "Sedstva "小于起始库的10%时,测试器就会停止,但这是一个拐杖。但我不知道该如何处理多币种的问题。

 

改变数据类型 会破坏规范化。


      V=NormalizeDouble(size,2);
      closePrice=NormalizeDouble(partPrice,_Digits);

      Print("V = ",V, "","  closePrice = ",closePrice);
      Print("V = ",DoubleToString(V), "","  closePrice = ",DoubleToString(closePrice));


2019.05.05 20:04:29.483 _part_close (EURUSD,D1) V = 0.01 closePrice = 1.13456

2019.05.05 20:04:29.483 _part_close (EURUSD,D1) V = 0.01000000 closePrice = 1.13456000


这是否正常?

 
psyman:

改变数据类型 会破坏规范化。

这是否正常?

你的代码中没有类型转换,你只是使用了函数https://www.mql5.com/ru/docs/convert/doubletostring。

的默认参数,所以你在Print()中得到8个字符。

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 

你好!

我搞不清楚错误是什么。我需要得到当前蜡烛的所有刻度线。

在检查时,刻度线数组的大小 没有变化,不等于蜡烛的当前刻度线数量。

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(time,true);
   _R=__TIK__(time,0);
   return(rates_total);
  }
//+------------------------------------------------------------------+
bool __TIK__(const datetime &time[],int _i)
  {
   MqlTick tick_array[];   // массив для приема тиков 
   MqlTick lasttick;       // для получения данных последнего тика 

   ulong    from_msc=time[_i]*1000;  
   ulong    to_msc=time[_i+1]*1000;              

   CopyTicksRange(Symbol(),tick_array,COPY_TICKS_ALL,from_msc,to_msc);
   int __ArraySize=ArraySize(tick_array);
   Print((string)__ArraySize+"  "+(string)time[_i]+"  "+(string)time[_i+1]);


   return ( false );
  }
 

如何改变订单线或未结头寸 的颜色?

现在它们都是同样的绿色,这造成了混乱,而且我无法通过暴力手段找到它们。

   int obj_total=ObjectsTotal(0,0,-1);
   string name;
   for(int i=0;i<obj_total;i++)
    {
     name = ObjectName(0,i,-1,-1);
     Print(i," - объект ",name);
    }

只有用户创建的对象才是可用的。