初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1267 1...126012611262126312641265126612671268126912701271127212731274...1503 新评论 Tango_X 2020.11.28 15:09 #12661 Vladimir Karputov:这方面的指标必须有一个输入颜色参数。也就是说,它应该是一个自定义指标。 谢谢你!但如果我不能接触到源代码,那就不可行了? Vladimir Karputov 2020.11.28 15:13 #12662 Tango_X:谢谢你!但如果我不能接触到源代码,就不能实现吗? 是的,你必须要有开源或现成的实现。 Tango_X 2020.11.28 16:45 #12663 Vladimir Karputov:是的,你需要有开源代码或准备好的实施方案。当我在测试器中设置颜色clrNONE时,颜色还是显示出来了!为什么?那么clrNONE在测试器中 不起作用?我不能在现实生活中检查它--今天是周末... 如果我设置任何颜色而不是clrNONE,这个颜色就会显示出来,但空值=却不起作用......奇怪......。 pivomoe 2020.11.28 16:53 #12664 Aleksey Mavrin:答案:也是反复重新加载宏)但最好是对字符串使用+运算符,将所有的东西都转换为字符串,那么你就不需要有很多参数的函数(和宏)版本。 谢谢。我不知道宏可以重新加载。 Aleksey Mavrin 2020.11.28 17:21 #12665 pivomoe:谢谢你。我不知道这个宏可以重新加载。 错别字--重装,不是重装) Igor Makanu 2020.12.04 13:06 #12666 整理了本帮助部分末尾的例子https://www.mql5.com/ru/docs/constants/structures/mqltraderequest 在Metacquot服务器上,一切正常。 在另一台服务器上,在分析了交易请求的错误代码后,我发现问题出在填写MqlTradeResult字段。 request.type_filling = ORDER_FILLING_IOC; 在论坛上搜索并没有找到一个明确的解决方案--如何以编程方式确定 MqlTradeResult字段的服务器设置 ENUM_ORDER_TYPE_FILLING type_filling; // Тип ордера по исполнению UPD: 找到了一个可行的解决方案https://www.mql5.com/ru/forum/168912/page2#comment_4062864 @fxsaber 谢谢! VVT 2020.12.06 23:07 #12667 你能不能告诉我如何设置自动建仓的费波水平? Vladimir Karputov 2020.12.07 04:49 #12668 VVT: 请告诉我如何设置自动构建的Fibo水平。 在Fibonaci RR 代码中的例子 - //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long chart_id=ChartID(); datetime time1=ChartTimeOnDropped(); double price1=ChartPriceOnDropped(); if(ObjectFind(chart_id,InpFiboName)<0) FiboLevelsCreate(chart_id,InpFiboName,0,time1,price1,time1+InpAddSecond,price1-InpStopLoss*Point(),InpColor); else { ObjectDelete(chart_id,InpFiboName); ChartRedraw(chart_id); FiboLevelsCreate(chart_id,InpFiboName,0,time1,price1,time1+InpAddSecond,price1-InpStopLoss*Point(),InpLevelsColor); } //--- int levels = 6; // number of level lines double values[6]= {1.0,0.0,2.0,3.0,4.0,5.0}; // values of level lines color colors[6]; // color of level lines for(int i=0; i<6; i++) colors[i]=InpLevelsColor; ENUM_LINE_STYLE styles[6]; // style of level lines for(int i=0; i<6; i++) styles[i]=InpLevelsStyles; int widths[6]= {2.0,2.0,2.0,2.0,2.0,2.0}; // width of level lines string texts[6] = {"BREAK EVEN","STOP LOSS","TP1 1.1","TP2 2.1","TP3 3.1","TP4 4.1"}; // text of level lines //--- FiboLevelsSet(levels,values,colors,styles,widths,texts,chart_id,InpFiboName); } 可以设置的级别有:行数、行值、行色、行风格、行宽、行文。 Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5 www.mql5.com Авторизация на сайте MQL5.com Kira27 2020.12.07 10:33 #12669 int OnInit() { //--- ChartSetInteger(ChartID(), CHART_EVENT_OBJECT_CREATE, true); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { } //+------------------------------------------------------------------+ /***********************OnChartEvent function************************/ void OnChartEvent(const int id, // идентификатор события const long& lparam, // параметр события типа long const double& dparam, // параметр события типа double const string& sparam // параметр события типа string ) { if(id == CHARTEVENT_OBJECT_CREATE) { I++; string result[]; // массив для получения строк StringSplit(sparam, ' ', result); // получим из имени созданного объекта подстроки ulong timeCreate = ObjectGetInteger(0, sparam, OBJPROP_CREATETIME); // получим время создания объекта string newName = result[0]+" "+result[1]+" "+string(I); // сформируем новое имя объекта ObjectSetString(0, sparam, OBJPROP_NAME, newName); // переименуем объект //---------------------------------------------------------------------------------------- double Level_0= ObjectGetDouble( 0, // идентификатор графика newName, // имя объекта OBJPROP_PRICE, // идентификатор свойства 0 // модификатор свойства ); double Level_1= ObjectGetDouble( 0, // идентификатор графика newName, // имя объекта OBJPROP_PRICE, // идентификатор свойства 1 // модификатор свойства ); //------------------------------------------------------------------------------------------------------ if(Level_0 > Level_1) { ObjectSetInteger(0,newName,OBJPROP_COLOR,clrDeepSkyBlue); } else { ObjectSetInteger(0,newName,OBJPROP_COLOR,clrYellow); } }/******************************************************************/ } 你好,你能告诉我为什么在调试代码时,一步一步地进行,线条会根据坐标值的不同而重新着色。在图形上抛出EA,线条条件if(Level_0 > Level_1)永远不会为真? Alexey Viktorov 2020.12.07 10:43 #12670 Kira27: 嘿,你能告诉我为什么在调试中,当一步一步地传递代码时,线条会根据坐标值的不同而重新涂上两种颜色。在图表上抛出EA,如果(Level_0>Level_1)的行条件永远不会为真?很可能在重命名一个对象后,它还不能被访问。你可以试着把ChartRedraw 放在重命名之后。如果它不起作用,你需要以其他方式建立序列。 ps;另一个选择:先用sparam的名字重画,然后再重命名。 1...126012611262126312641265126612671268126912701271127212731274...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这方面的指标必须有一个输入颜色参数。也就是说,它应该是一个自定义指标。
谢谢你!但如果我不能接触到源代码,那就不可行了?
谢谢你!但如果我不能接触到源代码,就不能实现吗?
是的,你必须要有开源或现成的实现。
是的,你需要有开源代码或准备好的实施方案。
当我在测试器中设置颜色clrNONE时,颜色还是显示出来了!为什么?那么clrNONE在测试器中 不起作用?我不能在现实生活中检查它--今天是周末...
如果我设置任何颜色而不是clrNONE,这个颜色就会显示出来,但空值=却不起作用......奇怪......。答案:也是反复重新加载宏)
但最好是对字符串使用+运算符,将所有的东西都转换为字符串,那么你就不需要有很多参数的函数(和宏)版本。
谢谢。我不知道宏可以重新加载。
谢谢你。我不知道这个宏可以重新加载。
错别字--重装,不是重装)
整理了本帮助部分末尾的例子https://www.mql5.com/ru/docs/constants/structures/mqltraderequest
在Metacquot服务器上,一切正常。
在另一台服务器上,在分析了交易请求的错误代码后,我发现问题出在填写MqlTradeResult字段。
request.type_filling = ORDER_FILLING_IOC;
在论坛上搜索并没有找到一个明确的解决方案--如何以编程方式确定 MqlTradeResult字段的服务器设置
UPD: 找到了一个可行的解决方案https://www.mql5.com/ru/forum/168912/page2#comment_4062864
@fxsaber 谢谢!
请告诉我如何设置自动构建的Fibo水平。
在Fibonaci RR 代码中的例子 -
可以设置的级别有:行数、行值、行色、行风格、行宽、行文。
你好,你能告诉我为什么在调试代码时,一步一步地进行,线条会根据坐标值的不同而重新着色。在图形上抛出EA,线条条件if(Level_0 > Level_1)永远不会为真?
嘿,你能告诉我为什么在调试中,当一步一步地传递代码时,线条会根据坐标值的不同而重新涂上两种颜色。在图表上抛出EA,如果(Level_0>Level_1)的行条件永远不会为真?
很可能在重命名一个对象后,它还不能被访问。你可以试着把ChartRedraw 放在重命名之后。如果它不起作用,你需要以其他方式建立序列。
ps;另一个选择:先用sparam的名字重画,然后再重命名。