[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 605 1...598599600601602603604605606607608609610611612...652 新评论 alkador 2012.03.02 12:42 #6041 我已经问过了,但还没有回音。有没有人有一个具有累积功能的Range Bar Chart指标,即结合了单方向的条形图?它看起来像这样。 Роман 2012.03.02 13:12 #6042 伙计们,请指教--我从经纪公司网站下载了终端设置,我想在策略测试器中用这个特定经纪公司的报价测试猫头鹰,但当我按下F2并下载报价时,测试器显示这个窗口...是否可以从选定的经纪公司下载报价? Warstein 2012.03.02 13:17 #6043 帮助我摆脱EA中的零除法 错误。预先感谢你。 double BullSumm() { double MySummBull=0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { MySummBull+=OrderOpenPrice()*OrderLots(); } } return(MySummBull); } //-------------------------------------- double SummBullLots() { double MySummBullLots=0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { MySummBullLots+=OrderLots(); } } return(MySummBullLots); } //--------------------------------------- .............. .............. double BullAveragePrice = NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits); ............... ............... Юсуфходжа 2012.03.02 13:26 #6044 charter: 就在你向你现在关闭的终端上传时。 而且我不记得当年的故事是如何下载的,请原谅我。 Vadim Zhunko 2012.03.02 13:45 #6045 rustein:帮助我摆脱EA中的零除法 错误。预先感谢你。 这种代码的一个特殊情况是缺乏买入订单。这就是为什么它要除以零。 Warstein 2012.03.02 13:55 #6046 Zhunko: 代码的一个特殊情况是,没有买入订单。这就是为什么它要除以零。 谢谢,我试了一下,有条件的。 int TotalBullOrders() { int TotalBullOrders = 0; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==Magic && OrderType()==OP_BUY) { TotalBullOrders++; } } return(TotalBullOrders); } if(TotalBullOrders()>0){double BullAveragePrice = NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits);} 它仍然给出一个错误。 Vadim Zhunko 2012.03.02 14:26 #6047 rustein: 谢谢你,我在有条件的情况下试了一下。 它仍然给我一个错误。 这有什么区别呢?如果它没有进入条件的内部,它就会输出0。这就是它的划分依据。 Warstein 2012.03.02 14:32 #6048 Zhunko: 这有什么区别呢?如果它没有进入条件的内部,在输出端就是零。这就是它的划分。 是的,我明白了,谢谢你。这样说吧,我不知道有什么别的办法.......) //-------------------------------------- double SummBullLots() { double MySummBullLots=0.000000000000000000000000000000001; for(int Cnt=0;Cnt<OrdersTotal();Cnt++) { OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { MySummBullLots+=OrderLots(); } } return(MySummBullLots); } //--------------------------------------- .............. .............. double BullAveragePrice = NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits); ............... ............... Сергей 2012.03.02 14:49 #6049 下午好!在这个版本的随机指数中,我决定增加平线(在图表上)。在超买/超卖区。在删除历史上的 "旧 "行方面存在一个问题。 有什么问题,我应该注意什么? //+------------------------------------------------------------------+ //| Stochastic_flat | //| Copyright © 2012 Fox.RM | //| fox.rm@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012 Fox.RM" #property link "fox.rm@mail.ru" //---- #property indicator_separate_window #property indicator_buffers 4 //---- fan style #property indicator_color1 Red #property indicator_color2 Black #property indicator_color3 Blue #property indicator_color4 DarkGray #property indicator_style1 0 #property indicator_style2 0 #property indicator_style3 0 #property indicator_style4 0 #property indicator_width4 2 #property indicator_level1 88.2 #property indicator_level2 11.8 #property indicator_levelcolor DarkGray #property indicator_levelstyle 0 //---- basic fan indicator parameters extern bool Show_STOCH_1=true; extern int K_period1=13; extern int S_period1=1; extern bool Show_STOCH_2=true; extern int K_period2=34; extern int S_period2=1; extern bool Show_STOCH_3=true; extern int K_period3=89; extern int S_period3=1; extern bool Show_STOCH_4=true; extern int K_period4=233; extern int S_period4=1; extern int delete=2; //---- indicator buffers double MainBuffer1[]; double MainBuffer2[]; double MainBuffer3[]; double MainBuffer4[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- stochastic line 1 (fast) if(Show_STOCH_1 ==true){Show_STOCH_1=DRAW_LINE; } else {Show_STOCH_1=DRAW_NONE; } SetIndexBuffer(0,MainBuffer1); SetIndexStyle(0,Show_STOCH_1,0); SetIndexLabel(0,"fast WPR ( "+K_period1+" )"); //---- stochastic line 2 (basic) if(Show_STOCH_2 ==true){Show_STOCH_2=DRAW_LINE; } else {Show_STOCH_2=DRAW_NONE; } SetIndexBuffer(1,MainBuffer2); SetIndexStyle(1,Show_STOCH_2); SetIndexLabel(1,"basic WPR ( "+K_period2+" )"); //---- stochastic line 3 (flat) if(Show_STOCH_3 ==true){Show_STOCH_3=DRAW_LINE; } else {Show_STOCH_3=DRAW_NONE; } SetIndexBuffer(2,MainBuffer3); SetIndexStyle(2,Show_STOCH_3,0); SetIndexLabel(2,"slow WPR ( "+K_period3+" )"); //---- stochastic line 4 (control) if(Show_STOCH_4 ==true){Show_STOCH_4=DRAW_LINE; } else {Show_STOCH_4=DRAW_NONE; } SetIndexBuffer(3,MainBuffer4); SetIndexStyle(3,Show_STOCH_4,0,2); SetIndexLabel(3,"control WPR ( "+K_period4+" )"); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Stochastic_flat"); } //---- return(0); //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectsDeleteAll(); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic_fan | //+------------------------------------------------------------------+ int start() { int i,shift,limit,y=0,counted_bars=IndicatorCounted(); double x1,x2; datetime y1,y11,y2,y22; //---- Plot defined timeframe on to current timeframe limit=Bars-counted_bars; //---stroim stohastik for(i=0,y=0;i<limit;i++,y++) { MainBuffer1[i]=iStochastic(NULL,0,K_period1,1,S_period1,0,0,MODE_MAIN,y); MainBuffer2[i]=iStochastic(NULL,0,K_period2,1,S_period2,0,0,MODE_MAIN,y); MainBuffer3[i]=iStochastic(NULL,0,K_period3,1,S_period3,0,0,MODE_MAIN,y); MainBuffer4[i]=iStochastic(NULL,0,K_period4,1,S_period4,0,0,MODE_MAIN,y); //---flat zona if (MainBuffer1[i] < 11.8) //---pervoe uslovie { x1=Low[i]; y1=Time[i]; //--- opredelyaem koordinaty dlya x1,y1 } if (MainBuffer1[i] > 88.2) //---vtoroe uslovie { x2=High[i]; y2=Time[i]; //--- opredelyaem koordinaty dlya x2,y2 } } for(i=Bars; i>0; i--) { //--- opredelyaem koordinaty dlya x11,y11 if (Low[i]<x1) { y11=Time[i]; } //--- opredelyaem koordinaty dlya x22,y22 if (High[i]>x2) { y22=Time[i]; } } string up_line = "upline"; string down_line = "downline"; flatlineup(up_line+TimeToStr(Time[i]), y2,x2,y22,x2,Red,1); flatlinedown(down_line+TimeToStr(Time[i]), y1,x1,y11,x1,Blue,1); dellline(up_line,i); //---- return(0); } //+------------------------------------------------------------------+ void flatlineup(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W) { ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2); ObjectSet(labebe, OBJPROP_COLOR, colir); ObjectSet(labebe, OBJPROP_STYLE,0); ObjectSet(labebe, OBJPROP_RAY,0); ObjectSet(labebe, OBJPROP_WIDTH,W); ObjectSet(labebe, OBJPROP_BACK, true); } void flatlinedown(string labebe1,datetime time1,double price1,datetime time2,double price2,color colir, int W) { ObjectCreate(labebe1, OBJ_TREND, 0,time1,price1,time2,price2); ObjectSet(labebe1, OBJPROP_COLOR, colir); ObjectSet(labebe1, OBJPROP_STYLE,0); ObjectSet(labebe1, OBJPROP_RAY,0); ObjectSet(labebe1, OBJPROP_WIDTH,W); ObjectSet(labebe1, OBJPROP_BACK, true); } void dellline(string name_line, int i) //--- первый вариант с удалением линий { string name = ObjectName(i); if (StringFind(name,name_line)!=-1)ObjectDelete(name); // if (StringFind(name,name_line)!=-1)del1++; // if (del1>2)ObjectDelete(name); } void dellline(string name_line) //--- второй вариант с удалением линий { string name, dellname; bool del = false; for(int i=ObjectsTotal(); i>=0;i--) { if (del == false){ //---при этом условии должна происходить идентификация первой линии name = ObjectName(i); //--выполняется при первом обращении к функции dellname=name; del = true;} if (del == true){ if (StringFind(dellname,name_line)!=-1)ObjectDelete(dellname); dellname=name;} } } //---Были и промежуточные варианты, которые также не дали желаемого результата. 在下面的版本中,它成功了。但也不尽然。 上面的线在新的线出现时被删除,下面的线则立即被删除。为什么? //------ функция удаляющая ненужные линии void dellline(string name_line_up, string name_line_down) { string name_l; int obj=ObjectsTotal(OBJ_TREND); // --- в этой версии интуитивно добавил свойство OBJ_TREND for (int i=obj; i>=0; i--) { name_l=ObjectName(i); if(StringFind(name_l,name_line_up)!=-1)ObjectDelete(name_l); if(StringFind(name_l,name_line_down)!=-1)ObjectDelete(name_l); }} 在这里,我们有一个额外的问题,为什么在没有添加的情况下,该函数不能像它应该的那样工作? OBJ_TREND,因为在这种情况下,它似乎并没有做出任何根本性的改变? 然后我对主代码中的行名进行了一些实验。 //-------------- первый вариант (рабочий) string up_line = "upline_", down_line = "downline_"; flatlineup(up_line+TimeToStr(Time[i]), y2,x2,y22,x2,Red,1); flatlinedown(down_line+TimeToStr(Time[i]), y1,x1,y11,x1,Blue,1); dellline(up_line, down_line); //---TimeToStr(Time[i]) указывал в имени тренд лайн в теле функции //--------------- второй вариант (нерабочий) string up_line = "upline_"+TimeToStr(Time[i]); //--или пробовал StringConcatenate() string down_line = "downline_"+TimeToStr(Time[i]); //--или пробовал StringConcatenate() flatlineup(up_line, y2,x2,y22,x2,Red,1); flatlinedown(down_line, y1,x1,y11,x1,Blue,1); dellline(up_line, down_line); TimeToStr(Time[i])在主代码中被指定为一个变量。 问题。为什么第二种变体不工作(意思是说,函数 dellline(),当应用于第二种变体时,并没有删除名字被指定为 到up_line和down_line的变量? И 最后一个问题 我从以前的帖子中复制一下,它在截图上。可以找到它的答案 不可能。 谢谢你! 附加的文件: stochastic_flat.mq4 7 kb Юсуфходжа 2012.03.02 15:19 #6050 请告诉我,是否有一个指标可以显示某一时间的未结头寸 数量?如果能显示出其中有多少是买入的,有多少是卖出的,那就更好了。 1...598599600601602603604605606607608609610611612...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
伙计们,请指教--我从经纪公司网站下载了终端设置,我想在策略测试器中用这个特定经纪公司的报价测试猫头鹰,但当我按下F2并下载报价时,测试器显示这个窗口...是否可以从选定的经纪公司下载报价?
预先感谢你。
就在你向你现在关闭的终端上传时。
预先感谢你。
代码的一个特殊情况是,没有买入订单。这就是为什么它要除以零。
谢谢,我试了一下,有条件的。
它仍然给出一个错误。
谢谢你,我在有条件的情况下试了一下。
它仍然给我一个错误。
这有什么区别呢?如果它没有进入条件的内部,在输出端就是零。这就是它的划分。
这样说吧,我不知道有什么别的办法.......)
在删除历史上的 "旧 "行方面存在一个问题。 有什么问题,我应该注意什么?
在下面的版本中,它成功了。但也不尽然。 上面的线在新的线出现时被删除,下面的线则立即被删除。为什么?
在这里,我们有一个额外的问题,为什么在没有添加的情况下,该函数不能像它应该的那样工作?
OBJ_TREND,因为在这种情况下,它似乎并没有做出任何根本性的改变?
然后我对主代码中的行名进行了一些实验。
TimeToStr(Time[i])在主代码中被指定为一个变量。
问题。为什么第二种变体不工作(意思是说,函数
dellline(),当应用于第二种变体时,并没有删除名字被指定为
到up_line和down_line的变量?
И 最后一个问题 我从以前的帖子中复制一下,它在截图上。可以找到它的答案
不可能。
谢谢你!