boolSymbolInfoInteger(
string name, // символ ENUM_SYMBOL_INFO_INTEGER prop_id, // идентификатор свойства long& long_var // сюда примем значение свойства
);
#property copyright"Copyright 2018, Sergey S Morozov"#property link"https://www.mql5.com"#property version"1.00"#property strict//#property indicator_separate_window // Индик. рисуется в новом окне#property indicator_chart_window// Индик. рисуется в основном окне#property indicator_buffers1// Количество буферов#property indicator_color1 Red // Цвет первой линииexternint History =50; // Колич.баров в расчётной историиexternint Aver_Bars=5; // Количество баров для расчётаdouble ArrayBuff[];
//----------------------------------------------------------------------------------------------------intOnInit()
{
SetIndexBuffer(0,ArrayBuff);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
return(INIT_SUCCEEDED);
}
intOnCalculate(
constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i, // Индекс бара
n, // Формальный параметр
Counted_bars; // Количество просчитанных баров double
Sum_H, // Сумма значений High за переиод
Sum_L; // Сумма значений Low за переиод//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанногоif (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.while(i>=0) // Цикл по непосчитанным барам
{
Sum_H=0; // Обнуление в начале цикла
Sum_L=0; // Обнуление в начале циклаfor(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
{
Sum_H=Sum_H + High[n]; // Накопление суммы макс.значений
Sum_L=Sum_L + Low[n]; // Накопление суммы мин. значений
}
ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars; // Знач. 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
return(rates_total);
}
//+------------------------------------------------------------------+
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
简单地在CArrayObj: Add()数组中添加另一个CArrayObj数组
不这样做。不允许参数转换
顺便说一句,如果有关系的话。我的要添加到数组的对象是一个继承自CArrayObj 的类。
嗯,它在最后一行发誓--不允许参数转换。亲爱的论坛成员,请帮助我们!!!。
我想把一个价格步骤分配给一个变量。
int V=SymbolInfoInteger(Symb,SYMBOL_POINT)。
错误:'SymbolInfoInteger' - 没有一个重载可以应用于函数调用
我的错误是什么来着?
int V=(int)Symb,SYMBOL_POINT 的SymbolInfoInteger。
那就试试吧。
亲爱的论坛成员!
请指教!!!。
MetaTrader 5窗口显示买入 和卖出 值,(据我所知)这决定了赢/输。
然而,当我试图使用历史上的分钟报价来测试我的策略时,这些报价并不包含买入 和 卖出 值,而是给出了" OPEN"、"HIGH"、"LOW"、"CLOSE"、"TICKVOL"、"VOL"、"SPREAD"的值。如何从这些数值中获取买入 和 卖出,以及如何计算价差,都不太清楚。
一切都绝对清楚。更详细地描述一下 "当我试图使用分钟历史引号时 "到底是什么意思?你到底在做什么或想做什么?
亲爱的论坛成员,请帮助我们!!!。
我想给价格步骤分配一个变量。
int V=SymbolInfoInteger(Symb,SYMBOL_POINT)。
错误:'SymbolInfoInteger' - 没有一个重载可以应用于函数调用
我的错误 是什么来着?
SymbolInfoInteger 的帮助。
1.直接返回该属性的值。
2.根据函数的成功,返回真或假。如果成功,该属性的值将被放置在最后一个参数通过引用传递的目标变量中。
这就是ORlong ORbool。
亲爱的论坛成员,请帮助我们!!!。
我想把一个价格步骤分配给一个变量。
int V=SymbolInfoInteger(Symb,SYMBOL_POINT)。
错误:'SymbolInfoInteger' - 没有一个重载可以应用于函数调用
我的错误是什么来着?
点是一个双数类型的值。当作为int接收时,它将有一个零值。
SymbolInfoInteger 帮助。
1.直接返回该属性的值。
2.根据函数的成功,返回真或假。如果成功,该属性的值将被放置在最后一个参数通过引用传递的目标变量中。
这就是ORlong ORbool。
明白了,谢谢)
我刚刚开始,我还不知道如何用这种语言写作。但问题是--如果在一个新的窗口中,图表出现。但我不能在当前的中显示它...我的错误是什么?考虑到我自己写不出来,而且在这里也找不到例子。更何况,这显然不是通过SetChartData(point1,point2)这样的函数;它只是自己发生了......
而且变量似乎已经设置好了(indicator_chart_window),但仍然不能工作....。
绝对是应有尽有。更详细地描述一下 "当我试图使用分钟历史引号时 "到底是什么意思?你到底在做什么或想做什么?
为了下载历史报价加载MetaTrader 5,点击带有 美元符号的 图标:"符号列表显示"(或者你可以按Ctrl U)。将出现 "符号 "窗口。在 "SPECIFICATION "标签上找到所需的货币对,例如GBPCHF。在 "BARs "选项卡中设置分钟报价(M1)和所需时期的开始和结束日期。点击 "REQUEST "按钮后,将下载一个csv 文件,该文件可用于用Metatrader或自己的程序测试策略。
使用EXCEL ,你可以查看这个文件的内容,其中第一行揭示了文件中的信息,即 "日期、时间",然后是" OPEN"、"HIGH""LOW"、"CLOSE"、"TICKVOL"、"VOL"、"SPREAD"
我知道这些数据的确切含义,但如何从MetaTrader 5使用的这些数据中制作BIT 和ASK?