//+------------------------------------------------------------------+voidOnStart()
{
if(Signal == Buy_) //условия
ArrowBuyCreate(0,"ArrowBuy_"+(string)Time[0],0,Time[0],Ask);
if(Signal == Sell_) //условия
ArrowSellCreate(0,"ArrowSell_"+(string)Time[0],0,Time[0],Bid);
}
//+------------------------------------------------------------------+//====================================================================//+------------------------------------------------------------------+//| Создает знак "Buy" |//+------------------------------------------------------------------+bool ArrowBuyCreate(constlong chart_ID=0, // ID графикаconststring name="ArrowBuy", // имя знакаconstint sub_window=0, // номер подокнаdatetime time=0, // время точки привязкиdouble price=0, // цена точки привязкиconstcolor clr=C'3,95,172', // цвет знакаconstENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии (при выделении)constint width=1, // размер линии (при выделении)constbool back=false, // на заднем планеconstbool selection=false, // выделить для перемещенийconstbool hidden=true, // скрыт в списке объектовconstlong z_order=0) // приоритет на нажатие мышью
{
//--- установим координаты точки привязки, если они не заданы// ChangeArrowEmptyPoint(time,price);//--- сбросим значение ошибкиResetLastError();
//--- создадим знакif(!ObjectCreate(chart_ID,name,OBJ_ARROW_BUY,sub_window,time,price))
{
Print(__FUNCTION__,
": не удалось создать знак \"Buy\"! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет знакаObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) планеObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения знака мышьюObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектовObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установи приоритет на получение события нажатия мыши на графикеObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнениеreturn(true);
}
//+------------------------------------------------------------------+//| Создает знак "Sell" |//+------------------------------------------------------------------+bool ArrowSellCreate(constlong chart_ID=0, // ID графикаconststring name="ArrowSell", // имя знакаconstint sub_window=0, // номер подокнаdatetime time=0, // время точки привязкиdouble price=0, // цена точки привязкиconstcolor clr=C'225,68,29', // цвет знакаconstENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии (при выделении)constint width=1, // размер линии (при выделении)constbool back=false, // на заднем планеconstbool selection=false, // выделить для перемещенийconstbool hidden=true, // скрыт в списке объектовconstlong z_order=0) // приоритет на нажатие мышью
{
//--- установим координаты точки привязки, если они не заданы// ChangeArrowEmptyPoint(time,price);//--- сбросим значение ошибкиResetLastError();
//--- создадим знакif(!ObjectCreate(chart_ID,name,OBJ_ARROW_SELL,sub_window,time,price))
{
Print(__FUNCTION__,
": не удалось создать знак \"Sell\"! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет знакаObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер линии (при выделении)ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) планеObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения знака мышьюObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектовObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графикеObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнениеreturn(true);
}
为什么CListNode类中的虚拟比较方法会被忽略?
在调试器中检查,总是使用来自CObject的比较。需要在CData类中覆盖比较。
没有奇迹。
文件 --> 打开数据文件夹 --> 在打开的窗口中 --> MQL4 --> 在那里你可以找到你所习惯的文件夹。这篇文章的链接在论坛的主页上。我只是太懒了,不愿意做。
谢谢你,说实话,我以为我做错了什么。现在一切都说得通了。
当运行脚本时,你需要在条件被触发时放一个图标(标记)。我如何做到这一点呢?
在运行脚本时,你需要在条件被触发时设置图标(标签)。我怎样才能做到这一点呢?
一旦条件被触发--就打上一个标记。毫不含糊地说。
Artyom的意思是"...条件被触发--打上标记。",他的意思是在条件被触发时在脚本的代码中设置一个标记。
在MQL4语言参考书中,有非常好的徽章创建脚本的例子。例如,这个脚本 可以在图表上创建和移动 "买入 "图标。Artyom的意思是"...条件被触发--放一个标记。",他的意思是在脚本代码中写上条件被触发时设置图标(标记)。
MQL4参考》中有非常好的创建图标的脚本例子。例如,这个脚本 可以在图表上创建和移动 "买入 "图标。好的脚本,从那里拉出所需的功能。
就这样,你拥有了它。
你能说明为什么在测试模式下试图打开*.txt文件时可能出现错误吗?
这个选项工作起来完美无缺。
但这个没有用。
它给出了错误5004,函数FileIsExist(File_Name2)由于某种原因返回错误(wtf?)
这两个文件(csv和txt)都位于tester/files文件夹中(终端在D盘),它们的名字与变量File_Name和File_Name2 相对应--我检查过很多次。
Artyom的意思是"...condition triggered - put a mark.",即在脚本代码中规定在条件触发时设置一个徽章(标记)。
MQL4参考书中包含了创建图标的脚本的非常好的例子。例如,这个脚本 可以在图表上创建和移动 "买入 "图标。不,迪娜,我的意思正是我所说的;)
我暗示过 "一个具体的问题就是一个具体的答案"。我今天很刻薄 :)
我今天很刻薄 :)
那我就不说话了,:)这样我今天就不会被热手了。:)
那我就不说了:)免得我今天不小心沾上了热手。:)