[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 613 1...606607608609610611612613614615616617618619620...652 新评论 [删除] 2012.03.05 15:53 #6121 是的,它们是int类型,但我认为结果是立即输出的,不需要分配。谢谢,我会试一试的。 但它是有效的。 [删除] 2012.03.05 16:37 #6122 这就是我得到的东西。如果有人感兴趣,我可以发布源代码。这个脚本按条生成统计数据。我分析了这个图表上的日线。 我发现了一个有趣的模式。各个时期的百分比几乎相同。有+-5%的差异。在牛与熊的比例上,由一、二、三连贯。 noobys 2012.03.05 18:42 #6123 ChAnton: 这就是我得到的东西。如果有人感兴趣,我可以发布源代码。这个脚本按条生成统计数据。我分析了这个图表上的日线。 我发现了一个有趣的模式。各个时期的百分比几乎相同。有+-5%的差异。在牛与熊的比例上,由一、二、三连贯。 把它放出来,看一看很有意思。 [删除] 2012.03.06 03:49 #6124 //+------------------------------------------------------------------+ //| Анализ баров.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //для метатрейдера 4 //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ #property show_inputs extern int Periods = 5; // Период таймсерии extern int Nachalo = 1; // Начало баров откуда начинается анализ extern int Konec = 500; // Конец баров на каком баре заканчивается анализ extern int Bolee = 0; // тело бара больше установленной величины (для расчета от 0 указывать -1) extern int Menee = 50; // тело бара меньше установленной величины extern int Teny = 100; // минимальная величина тени с обоих сторон extern int Otkr = 100; // минимальное отклонение от точки открытия int start() { int i; //счетчик double nul = 0; //количество баров размер тела которых равно нулю double vverh = 0; //Бар вверх бычий double vniz = 0; //Бар вниз медвежий double dvavverh = 0; //Бар вверх 2 подряд double dvavniz = 0; //Бар вниз 2 подряд double trivverh = 0; //Бар вверх 3 подряд double trivniz = 0; //Бар вниз 3 подряд double vibor = 0; //Бар удовлетворяющий условию поиска double Maks =0;//максимальный бар double Mun =10000;//минимальный бар double ten = 0;//тени с обоих сторон превышающие установленную величину double otkrytie = 0; // смещение цены в обе стороны на эту величину с момента открытия бара double L; //вре'менная переменная string S; string Symb; //используемый фин. инструмент - торговая пара Symb=Symbol(); string P; if (Periods == 1) P = "PERIOD_M1"; if (Periods == 2) P = "PERIOD_M5"; if (Periods == 3) P = "PERIOD_M15"; if (Periods == 4) P = "PERIOD_M30"; if (Periods == 5) P = "PERIOD_H1"; if (Periods == 6) P = "PERIOD_H4"; if (Periods == 7) P = "PERIOD_D1"; if (Periods == 8) P = "PERIOD_W1"; if (Periods == 9) P = "PERIOD_MN1"; //---- if ( Konec > iBars( Symb, P) ) { Konec = iBars( Symb, P); } Alert ("___________________________________________________________"); //---- /* iTime("USDCHF",PERIOD_H1,i) iOpen("USDCHF",PERIOD_H1,i) iHigh("USDCHF",PERIOD_H1,i) iLow("USDCHF",PERIOD_H1,i) iClose("USDCHF",PERIOD_H1,i) iVolume("USDCHF",PERIOD_H1,i)); */ for(i=Nachalo;i<=Konec;i++) { if (iOpen(Symb,P,i) == iClose(Symb,P,i)) nul = nul + 1; //количество нулевых баров if (iOpen(Symb,P,i) < iClose(Symb,P,i)) vverh = vverh + 1; //количество бычьих баров if (iOpen(Symb,P,i) > iClose(Symb,P,i)) vniz = vniz + 1; //количество медвежьих баров if (iOpen(Symb,P,i) < iClose(Symb,P,i)) if (iOpen(Symb,P,i+1) < iClose(Symb,P,i+1)) dvavverh = dvavverh + 1; //количество бычьих баров if (iOpen(Symb,P,i) > iClose(Symb,P,i)) if (iOpen(Symb,P,i+1) > iClose(Symb,P,i+1)) dvavniz = dvavniz + 1; //количество медвежьих баров if (iOpen(Symb,P,i) < iClose(Symb,P,i)) if (iOpen(Symb,P,i+1) < iClose(Symb,P,i+1)) if (iOpen(Symb,P,i+2) < iClose(Symb,P,i+2)) trivverh = trivverh + 1; //количество бычьих баров if (iOpen(Symb,P,i) > iClose(Symb,P,i)) if (iOpen(Symb,P,i+1) > iClose(Symb,P,i+1)) if (iOpen(Symb,P,i+2) > iClose(Symb,P,i+2)) trivniz = trivniz + 1; //количество медвежьих баров L = iOpen(Symb,P,i) - iClose(Symb,P,i); if (L < 0) L = L * (-1); if (L < Menee * Point) if (L > Bolee * Point) vibor = vibor + 1; //количество выбранных баров L = L / Point; if (L > Maks) Maks = L; if (L < Mun) Mun = L; if (iOpen(Symb,P,i) < iClose(Symb,P,i)) if (iOpen(Symb,P,i) - iLow(Symb,P,i)> Teny*Point) if (iHigh(Symb,P,i) - iClose(Symb,P,i)> Teny*Point) ten = ten + 1; if (iOpen(Symb,P,i) > iClose(Symb,P,i)) if (iClose(Symb,P,i) - iLow(Symb,P,i)> Teny*Point) if (iHigh(Symb,P,i) - iOpen(Symb,P,i)> Teny*Point) ten = ten + 1; if (iHigh(Symb,P,i) - iOpen(Symb,P,i)> Otkr*Point) if (iOpen(Symb,P,i) - iLow(Symb,P,i)> Otkr*Point) otkrytie = otkrytie + 1; } Alert ("Максимальный бар = " , Maks , " ----- ","Минимальный бар = " , Mun); Alert ("Бары удовлетворяющие условию по размеру отклонений >",Otkr ," пунктов = " , otkrytie, " --- ", otkrytie/(Konec/100), " % " ); Alert ("Бары удовлетворяющие условию по размеру теней >",Teny ," пунктов = " , ten, " --- ", ten/(Konec/100), " % " ); Alert ("Бары удовлетворяющие условию по размеру тела > ",Bolee ," пунктов и < ",Menee ," пунктов = " , vibor, " --- ", vibor/(Konec/100), " % " ); Alert (" ",trivverh/(Konec/100), " % " , " -------------------------- ", trivniz/(Konec/100), " % " ); Alert ("3 быка подряд = " , trivverh, " ----- ","3 медведя подряд = " , trivniz ); Alert (" ",dvavverh/(Konec/100), " % "," ------------------------------ ", dvavniz/(Konec/100), " % " ); Alert ("2 быка подряд = " , dvavverh, " ----- ","2 медведя подряд = " , dvavniz ); Alert (" ",nul/(Konec/100), " % " , " -------------------- ", vverh/(Konec/100), " % ", " ------------------------- ",vniz/(Konec/100) , " % " ); Alert ("нулевые бары = " , nul, " ----- ","бычьи бары = " , vverh, " ----- ","медвежьи бары = " , vniz ); Alert ("Общее количество баров на графике ",P," : ",iBars( Symb, P)); Alert ("Количество анализируемых баров = " , Konec); return(0); } //+------------------------------------------------------------------+ 有一些未解决的问题。百分比是不准确的+-0.5%,为什么我还不能理解。另外,分析使用的是图表上设置的周期,而不是脚本设置 中指定的周期。 Jok 2012.03.06 05:13 #6125 我下载了几个EA,效果不错,但我在策略测试器中试了一下,结果要差很多。 DOCTORGAD 2012.03.06 05:17 #6126 有一个自制的指标,但我把它简化了,我想得到的值是 day_max 和day_min,你能告诉我如何把它拉出来吗?我明白,用iCustom,但我想不出办法。(由于这个指标很难放在猫头鹰里:(......对我来说)。 property copyright "DOC" #property link "none" #property indicator_chart_window #property indicator_buffers 5 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 Green //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double day_max; double day_min; ali007 2012.03.06 08:37 #6127 下午好,请您告诉我如何检查这个金融工具的订单是否已经开启?) Vladyslav Goshkov 2012.03.06 08:45 #6128 Ali007: (请告诉我如何检查这个符号上是否有订单)) 这里有一个提示。 我们循环浏览所有未结订单,并查看订单符号:如果我们对它感兴趣,我们就增加计数器,或返回 "true",这取决于我们接下来需要什么。如果我们浏览了所有的订单,但没有找到必要的符号,我们会返回 "false "或零,如果我们必须确定订单的数量。 Alexey Subbotin 2012.03.06 08:48 #6129 Ali007: 下午好,请您告诉我如何检查这个金融工具的订单是否已经开启?) bool got_order=false; for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS)) if(OrderSymbol()==Symbol()) if(OrderType()==OP_BUY||OrderType()==OP_SELL) { got_order=true;break; } } ali007 2012.03.06 08:52 #6130 VladislavVG:这里有一个提示。我们循环浏览所有未结订单,并查看订单符号:如果我们对它感兴趣,我们就增加计数器,或返回 "true",这取决于我们接下来需要什么。如果我们对所有的订单进行了循环,但没有找到必要的符号,我们就会返回 "false",或者是零,如果我们想确定订单的数量。 非常感谢您! 我们怎样才能浏览所有的未结订单? 我们应该使用什么功能?订单选择? 1...606607608609610611612613614615616617618619620...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,它们是int类型,但我认为结果是立即输出的,不需要分配。谢谢,我会试一试的。
但它是有效的。
这就是我得到的东西。如果有人感兴趣,我可以发布源代码。这个脚本按条生成统计数据。我分析了这个图表上的日线。
我发现了一个有趣的模式。各个时期的百分比几乎相同。有+-5%的差异。在牛与熊的比例上,由一、二、三连贯。
这就是我得到的东西。如果有人感兴趣,我可以发布源代码。这个脚本按条生成统计数据。我分析了这个图表上的日线。
我发现了一个有趣的模式。各个时期的百分比几乎相同。有+-5%的差异。在牛与熊的比例上,由一、二、三连贯。
把它放出来,看一看很有意思。
有一个自制的指标,但我把它简化了,我想得到的值是
day_max 和day_min,你能告诉我如何把它拉出来吗?我明白,用iCustom,但我想不出办法。(由于这个指标很难放在猫头鹰里:(......对我来说)。
property copyright "DOC"
#property link "none"
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;
(请告诉我如何检查这个符号上是否有订单))
这里有一个提示。
我们循环浏览所有未结订单,并查看订单符号:如果我们对它感兴趣,我们就增加计数器,或返回 "true",这取决于我们接下来需要什么。如果我们浏览了所有的订单,但没有找到必要的符号,我们会返回 "false "或零,如果我们必须确定订单的数量。
下午好,请您告诉我如何检查这个金融工具的订单是否已经开启?)
这里有一个提示。
我们循环浏览所有未结订单,并查看订单符号:如果我们对它感兴趣,我们就增加计数器,或返回 "true",这取决于我们接下来需要什么。如果我们对所有的订单进行了循环,但没有找到必要的符号,我们就会返回 "false",或者是零,如果我们想确定订单的数量。
我们怎样才能浏览所有的未结订单? 我们应该使用什么功能?订单选择?