新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1019

 
Artyom Trishkin:
视觉模式下的Print()

很好!谢谢你!这一切都成功了。一次性检查了所有的变量。

 
Roni Iron:

下午好!

有什么办法可以获得这种类型的数据。

时间(UTC),卖出,买入,卖出量,买入量

问价,出价 - 这足以说明问题。你不必搞得太复杂,外汇中只有1个量。

记忆体

返回相应图表的条形图(由shift参数指定)的tick volume的值。

long  iVolume( 
   string           symbol,          // символ 
   int              timeframe,       // период 
   int              shift            // сдвиг 
   );
 
你好,请你告诉我,当我在MQL4中安装一个自定义指标 时,一切正常,但当我切换到另一个时间段时,只有deinit(从上一个时间段)有效,而init在新的时间段不工作,也就是说,程序没有重新启动,只是从窗口中删除。当我手动设置指标到新的时间框架时,一切都很顺利。问题可能是什么?
 

这正是诀窍所在--外汇有一个条形图的刻度量,但没有刻度交易量。但是tick报价的来源(Ducascopy等)在价格值之后 给出了AskVolume,BidVolume 值,其形式为0.32,0.12(而且不清楚是2位数加逗号还是4位数。

谢谢你!

 
有什么诀窍可以创建一个没有分隔符的CSV文件吗?
 

你好。

请指示,我已经为MQL5重写了我的代码,这是为MQL4写的

我有两个EMA,一个为一个。

在编译时没有出错,但它显示的结果与MQL4中 的不一样。

我翻阅了MQL5手册,但我什么都不明白

//+------------------------------------------------------------------+
//|                                                           MA.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot 1
#property indicator_label1  "MA 1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot 2
#property indicator_label2  "MA 2"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrYellow
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//
input int PER=8; //Period
//
double         MA_1[];
double         MA_2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MA_1,INDICATOR_DATA);
      SetIndexBuffer(1,MA_2,INDICATOR_DATA);
         IndicatorSetInteger(INDICATOR_DIGITS,2);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   program(rates_total,prev_calculated,close);
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+---EMA

double EMA(double N,double P,double EMA0=0)//формула
  {
   double  A=2/(N+1);                      //расчета
   return(A*P+(1-A)*EMA0);                 //ЕМА
  }
//+---
void program(int rates_total,int prev_calculated,const double &close[])
  {

   int Y=rates_total-prev_calculated;
   if(prev_calculated==0) Y=Y-PER-1;

   for(Y=Y; Y>=0; Y=Y-1)

     {
     
      MA_1[Y]=EMA(PER,close[Y],MA_1[Y+1]);//первая
      MA_2[Y]=EMA(PER,MA_1[Y],MA_2[Y+1]);//на неё вторая

     }
   return;
  }
//+------------------------------------------------------------------+
 
imknk:

你好。

请指示,我已经为MQL5重写了我的代码,这是为MQL4写的

我有两个EMA,一个为一个。

在编译时没有出错,但它显示的结果与MQL4中 的不一样。

我已经MQL5手册弄坏了我的眼睛,我什么都不明白

在mql5中,缓冲区必须被翻转,因为它们向后走。

添加一个建筑并阅读相关内容

ArraySetAsSeries(MA_1,true);
Документация по MQL5: Пользовательские индикаторы / SetIndexBuffer
Документация по MQL5: Пользовательские индикаторы / SetIndexBuffer
  • www.mql5.com
[in]  Тип данных, хранящихся в индикаторном массиве. По умолчанию INDICATOR_DATA (значения рассчитанного индикатора). Может также принимать значение INDICATOR_COLOR_INDEX, тогда данный буфер предназначен для хранения индексов цветов для предыдущего индикаторного буфера. Можно задать до 64 цветов в строке #property indicator_colorN. Значение...
 
Vitaly Muzichenko:

在mql5中,你必须翻转缓冲区,它们会向后移动。

添加一个建筑并阅读相关内容

谢谢你,我现在就去试试。
 

请帮助,错误在哪里?

为什么当一个if条件被 传递给一个函数时,它发誓"'all_clouse'--函数 未定义"

if(buy>=position)
 {
   All_clouse();  // 'All_clouse' - wrong parameters count

 }
..............
дальше код
..............
Уже за пределами OnTick
void All_clouse(int a,double x, double y)
  {
.............
   } к самой функции закрытия ордеров у него претензий нет.
 
Gilmor:

请帮助,错误在哪里?

为什么在一个 跳转到函数的if条件中 ,会出现"'all_clouse'--函数 未定义"?

因为你需要向函数中输入参数,而且你调用的是空的All_clouse()。

void All_clouse(int a,double x, double y)
原因: