新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 799 1...792793794795796797798799800801802803804805806...1953 新评论 Roman Sharanov 2019.03.31 06:59 #7981 Artyom Trishkin: 垃圾在缓冲区内。首先,你必须在所有要绘制的缓冲区中输入一个空白值(如果它们是箭头缓冲区),然后才能计算出指标。我在手机上看不到代码,我不能说清楚。你是说先做ArrayInitialize? Artyom Trishkin 2019.03.31 07:10 #7982 Roman Sharanov:你是说先做ArrayInitialize? 这一点已经到位。在指示器循环中,你必须将缓冲区 分配给带有循环索引的缓冲区单元中的 "空值"。 Roman Sharanov 2019.03.31 07:16 #7983 Artyom Trishkin: 这一点已经到位。在指标循环中,你需要给带有循环索引的缓冲单元分配一个"空值"。好的,谢谢你。 psyman 2019.03.31 09:37 #7984 Artyom Trishkin:是的,研究一下这个例子。谢谢你,我将去找知识的源泉 :-) 关于交易、自动交易系统和策略测试的论坛 关于MQL4的初学者的任何问题,对算法和代码的帮助和讨论 Artyom Trishkin, 2019.03.31 09:10 它已经在那里了。在一个指示器循环中,你需要给带有循环索引的缓冲单元分配一个 缓冲值 "空值"。 是不是每个数组都需要明确地给一个空值? 这种垃圾可以通过PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)来处理 ? Artyom Trishkin 2019.03.31 11:17 #7985 psyman:谢谢,我去找知识来源 :-) 是否有必要明确地将每个数组设置为零值? 这个垃圾可以通过PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)来处理吗? 将光标放在编辑器中的函数名称上,按F1键,会出现一个奇迹。 Roman Sharanov 2019.03.31 11:36 #7986 下载了机器人,这个错误可能与什么有关? 每个安装机器人的人都能工作,只有我有这种情况。重新安装了终端,以管理员身份打开,没有任何帮助 Игорь 2019.03.31 15:46 #7987 编译过程中没有错误或警告。但是仓位没有打开(只打开了1个买入的仓位,并在承接线上关闭)。我还不知道问题出在哪里。 //+------------------------------------------------------------------+ //| Test advisor on iDeMarker.mq4 | //| Copyright 2017, MetaQuotes Software Corp. | //| https:/goga342@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //------------------параметры советника ------------------------------- extern double lots=0.01; // extern int Magic=1111678111; extern int Slippage=1; //double sell_level=0.7; //double buy_level=0.3; extern double StopLoss=50; extern double TakeProfit=50; extern double TrailingStop=30; double SL,TP; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if(Digits==3 || Digits==5) { TakeProfit *=10; StopLoss *=10; Slippage *=10; } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; // int cnt,total; // открытие продаж if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0]) { SL = NormalizeDouble(Bid+StopLoss*Point, Digits); TP = NormalizeDouble(Bid-TakeProfit*Point, Digits); { ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red); if(ticket>0) { // закрытие продаж if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0]) { for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderMagicNumber()==Magic && OrderType()==OP_SELL) if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE)) Print("Ошибка открытия ордера на покупку !"); } } } } } } // открытие покупок if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0]) { TP = NormalizeDouble(Ask+TakeProfit*Point, Digits); SL = NormalizeDouble(Ask-StopLoss*Point, Digits); { ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); if(ticket>0) { // закрытие покупок if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0]) { for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderMagicNumber()==Magic && OrderType()==OP_BUY) if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE)) Print("Ошибка открытия ордера на продажу!"); } } } } } } return(0); } //+------------------------------------------------------------------+ int CountSell()//проверкна открытие ордеров на продажу { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL) { if(OrderType()==OP_SELL) count++; } } } return(count); } //+------------------------------------------------------------------+ int CountBuy()// проверкна открытие ордеров на покупку { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY) { if(OrderType()==OP_BUY) count++; } } } return(count); } //+------------------------------------------------------------------+ Alexey Viktorov 2019.03.31 17:45 #7988 Roman Sharanov: 我下载了机器人,这个错误可能与什么有关? 我不知道该如何处理它。我重新安装了终端,以管理员身份打开,没有任何帮助。唯一要做的是重新安装操作系统,或改变...你知道吗? 你的想法是错误的。我是指专家顾问。 Roman Sharanov 2019.04.01 08:08 #7989 Alexey Viktorov:唯一要做的是重新安装操作系统,或改变...你知道吗? 你的想法是错误的。我是指顾问。 原因是什么呢? Alexey Viktorov 2019.04.01 09:50 #7990 Roman Sharanov: 原因是什么呢?在这种情况下,我并不试图去弄清楚或解决它。我总是无怨无悔地把它扔掉,忘掉它。 1...792793794795796797798799800801802803804805806...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
垃圾在缓冲区内。首先,你必须在所有要绘制的缓冲区中输入一个空白值(如果它们是箭头缓冲区),然后才能计算出指标。我在手机上看不到代码,我不能说清楚。
你是说先做ArrayInitialize?
你是说先做ArrayInitialize?
这一点已经到位。
好的,谢谢你。
是的,研究一下这个例子。
谢谢你,我将去找知识的源泉 :-)
关于交易、自动交易系统和策略测试的论坛
关于MQL4的初学者的任何问题,对算法和代码的帮助和讨论
Artyom Trishkin, 2019.03.31 09:10
它已经在那里了。是不是每个数组都需要明确地给一个空值?
这种垃圾可以通过PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)来处理 ?
谢谢,我去找知识来源 :-)
是否有必要明确地将每个数组设置为零值?
这个垃圾可以通过PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0)来处理吗?
每个安装机器人的人都能工作,只有我有这种情况。重新安装了终端,以管理员身份打开,没有任何帮助
我还不知道问题出在哪里。
我下载了机器人,这个错误可能与什么有关?
我不知道该如何处理它。我重新安装了终端,以管理员身份打开,没有任何帮助。
唯一要做的是重新安装操作系统,或改变...你知道吗?
你的想法是错误的。我是指专家顾问。
唯一要做的是重新安装操作系统,或改变...你知道吗?
你的想法是错误的。我是指顾问。
原因是什么呢?
在这种情况下,我并不试图去弄清楚或解决它。我总是无怨无悔地把它扔掉,忘掉它。