externstring StartTime = "07:00"; //Начальное время для анализа, 00:00 ESTexternstring AlTime = "18:55"; //Время для трейдингаexternstring EndTime = "20:00"; //Время экспирации//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+intOnInit()
{
ObjectCreate(ChartID(),"CORDON",OBJ_HLINE,0,0,Ask); //созд гор линию по цене AskObjectSetInteger(ChartID(),"CORDON",OBJPROP_COLOR,clrDarkBlue); //цвет темно-сиийObjectSetInteger(ChartID(),"CORDON",OBJPROP_WIDTH,1); //толщина линии 1ObjectSetInteger(ChartID(),"CORDON",OBJPROP_STYLE,STYLE_SOLID); //линия сплошint IndexOfBar = iBarShift(ChartID(),PERIOD_H1, StringToTime(StartTime), true); //Считаем индекс бара по заданному времени StartTimedouble StartPrice = Open[IndexOfBar]; //Получаем цену по индексуObjectMove(ChartID(),"CORDON", 0, 0, StartPrice); // меняем распол линии return(0);
}
// Вставил такой код в скрипт - линию рисует синюю на черном графике слабо видно
#property strict // -------- Возможно, Дело в этой строке
externstring StartTime = "07:00"; //Начальное время для анализа, 00:00 ESTexternstring AlTime = "18:55"; //Время для трейдингаexternstring EndTime = "20:00"; //Время экспирацииvoidOnStart()
{
ObjectCreate("CORDON",OBJ_HLINE,0,0,Ask); //созд гор линию по цене Ask --- Для текущего графика ID пропускаемObjectSetInteger(0,"CORDON",OBJPROP_COLOR,DarkBlue); //цвет темно-сиий --- 0 = текущий график DarkBlue - то же самоеObjectSetInteger(0,"CORDON",OBJPROP_WIDTH,1); //толщина линии 1ObjectSetInteger(0,"CORDON",OBJPROP_STYLE,STYLE_SOLID); //линия сплош
// Первый параметр нужен типа string, а функция ChartID возвращает long
int IndexOfBar = iBarShift(NULL,PERIOD_H1, StringToTime(StartTime), true); // --- NULL = текущий график ЗДЕСЬ И БЫЛА ОШИБКА???
double StartPrice = Open[IndexOfBar]; //Получаем цену по индексуObjectMove(ChartID(),"CORDON", 0, 0, StartPrice); // меняем распол линии
}
下午好。我有一个问题:我在哪里可以看到在价格图表上从不同时间段输出一个指标值的代码实例?
我不能用谷歌搜索,也许我做了一个错误的请求。
我想在价格图表的第二栏中输出从H1到W1的布林线的标准偏差。 第二栏显示的是标准偏差乘以系数得到的数值。
布林线的修改。
代码库搜索的关键词 "多时限"。
可以使用OBJ_LABEL 来显示文本。
1.在MetaEditor中尝试:文件-->打开共享数据文件夹。 你会看到文件夹的路径。这个问题已经讨论过很多次了,这里有一个链接 为例
2.首先尝试不包括在内。当你将调试它时,你将开始包括它。
3.使用上面的SRC 按钮,或使用下面的Attach file按钮,在这里插入你的资料。
请告知如何在07:00的条形图开盘价处画一条水平线。
我已经写好了这段代码,但由于某些原因,线没有画出来。错误在哪里?
请告知如何在07:00的条形图开盘价处画一条水平线。
我已经写好了这段代码,但由于某些原因,线没有画出来。错误在哪里?
如果你去掉ObjectMove,这一行是可见的?尝试Alert(StartPrice)。
如果你删除了ObjectMove,你就看不到线,但是如果你写一个数值 来 代替 "IndexOfBar",例如,"double StartPrice = Open[5]; "它就会在第五个柱子的开盘价上画线。
谢谢你对Alert的想法 - 它显示 "0 "值。
顺便说一下,该行也存在于数值为0的对象列表中。
请告知如何在07:00的条形图开盘价处画一条水平线。
我已经写好了这段代码,但由于某些原因,线没有画出来。错误在哪里?
你不能在井里画画和计算,这是一个严重的错误。Inite必须尽可能快地完成其工作。
这里的错误是int IndexOfBar = iBarShift(ChartID()_Symbol,PERIOD_H1, StringToTime(StartTime), true); //按给定的时间读取条形图的索引 StartTime
时间可以直接设置为数据时间格式,不需要在转换上浪费机器时间,工作原理是这样的。
你不能在init中画画和计算,这是个严重的错误。该倡议应尽快完成其工作。
这里的错误 -int IndexOfBar = iBarShift(ChartID()_Symbol,PERIOD_H1, StringToTime(StartTime), true); //按指定时间读取条形的索引 StartTime
时间可以直接设置为数据时间格式,不需要在转换上浪费机器时间,工作原理是这样的。
谢谢你为我提供的宝贵建议。
还要特别感谢你通过发现错误来提高我的士气。我又开始相信,我可以和MQL4交朋友了
你不能在init中画画和计算,这是个严重的错误。应尽快完成启动。
而如果你把inite中的计算放到一个单独的函数中,然后把这个函数插入inite中,就不会出现严重错误?
它已经起作用了。
而如果你把inite中的计算结果放入一个单独的函数中,然后把这个函数插入inite中,就不会出现严重的错误?
如果代码执行时间过长,inite将强行终止,代码根本没有时间被执行。执行的代码,包括调用二级函数,必须在MQL的预定义函数中 - 专家顾问的OnTick(),脚本的OnStart(),指标的OnCalculate()。
inite必须包含最少的代码,只有那些必须执行一次的东西,就在程序开始之前。例如,全局变量、数组、指标缓冲区的初始化。