任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 790 1...783784785786787788789790791792793794795796797...1178 新评论 forexman77 2014.11.23 19:02 #7891 Forexman77:这个问题并没有被驳回。所以,首先。找到一个最大值,然后对照它画出一条线。检查该最高线与当前最低线之间的距离。如果它超过了 "Rmax",则在发现最大值的栏上设置一个箭头。箭头已放置,但不在那里。为了清楚起见,我添加了显示差异的缓冲区 "BufferLow[i]",它的数据可以在资源管理器窗口看到。事情总是这样的。你不能在冬天等着下雪)我自己做的。如果有人被这样一个类似的想法所折磨,这里是代码。#property copyright "Kamil Gazizullin" #property link "forexman77@yandex.ru" #property version "1.00" //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 5 #property indicator_color1 Magenta #property indicator_color2 Aqua #property indicator_color3 SlateBlue #property indicator_color4 SlateBlue #property indicator_color5 clrNONE //--- input parameters extern int Period_=10; extern double diapazon =0.003; //--- buffers double Max[]; double Min[]; double MaxIndex[]; double MinIndex[]; double rAZNOST[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(5); SetIndexBuffer(0,MaxIndex); SetIndexBuffer(1,MinIndex); SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,116); SetIndexEmptyValue(1,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,116); SetIndexEmptyValue(0,0.0); SetIndexBuffer(2,Max); SetIndexBuffer(3,Min); SetIndexBuffer(4,rAZNOST); IndicatorDigits(Digits+1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(),limit, i,k,r,p,t,f; double minimum,maximum,Dmax,Dmin; if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=0;i<limit;i++) { maximum=High[iHighest(NULL,0,MODE_HIGH,Period_,i)]; minimum=Low[iLowest(NULL,0,MODE_LOW,Period_,i)]; Max[i]=maximum; Min[i]=minimum; } for(i=0;i<limit;i++) { k=iHighest(NULL,0,MODE_HIGH,Period_,i); t=iLowest(NULL,0,MODE_LOW,Period_,i); Dmax=Max[i]-Low[i]; Dmin=High[i]-Min[i]; if (Dmax > diapazon){p=k;for(r=p;r>=k;r--)MaxIndex[k]=Max[k];} if (Dmin > diapazon){p=t;for(f=p;f>=t;f--)MinIndex[t]=Min[t];} if (MaxIndex[i]==Max[i+1])MaxIndex[i]=0; if (MinIndex[i]==Min[i+1])MinIndex[i]=0; rAZNOST[i]=Max[i]-Min[i]; } return(0); } Vitalie Postolache 2014.11.23 20:25 #7892 Awwl:内置的平成指数看起来有点不发达(我不知道这是否只是我在745上的问题?而且也不清楚WmiFor是如何建立的!在Heiken Ashi代码中,蜡烛是由4条柱状图绘制而成。也就是说,随着缓冲区数量的增加(从0到3),新的条形图被画在旧的条形图之上。顺序如下。 LowHigh - HighLow - Open - Close。 烛台的顺序应如下,以获得其适当的外观,有体有尾。 max(Open,Close)//粗色线// - min(Open,Close)//粗白色// - High//粗色线// - Low//粗白色//。让我们来编译这个指标,把它放在图表上,看看所有的问题(见图)。但这种方法,像Heiken Ashi一样,有一个缺点--在每个 "蜡烛 "下,我们得到一个背景颜色的白色循环,覆盖了所有较低的东西。但有了WmiFor,一切都变得完美了!未记录的功能?第一张图片--平价(放在一个单独的窗口中),第二张图片--WmiFor,为了清晰起见,背景是浅绿色的。我们正在比较一个软的和圆的?如果Haken是为图表窗口设计的,并在那里绘制成具有阴影和主体的蜡烛图,为什么要把它放在一个单独的窗口里?如果缓冲区的值发生变化,同一个条形图将改变其大小,不会在其上面绘制新的条形图。MT4没有烛台形式的画法,所以只能画柱状图,如何计算那里的缓冲值是你自己的事。顺便说一下,WmiFor也是用直方图来画的。 让我们把它也放在一个单独的窗口里,然后盯着它的故障)))。为了使独立窗口中的烛台看起来像有阴影的烛台,它们应该像加速器一样被相对画成0。或者你可以把它们画成对象,比如说All_Stars。 Igor Zakharov 2014.11.24 10:50 #7893 大家下午好!我的大脑很模糊,我在文档中没有找到答案,但也许有人遇到过。这里是专家顾问中的线(正向交易的分数)。Print(OderPluseCount,"/",OderTotal,"=",DoubleToStr((OderPluseCount/OderTotal),2),"=",BestOd," ,2/5*100," ,100*2/5) 。将其打印到日记中(如)。3/6=0.00=0 0 40同时,如果解决方案是1。3/3=1.00=1 0 40变量BestOd=OderPluseCount/OderTotal是双倍类型,其余是int类型。也就是说,只要遇到一个小于1的值,编译器就会自动将其变成0...来自常数的最后两个表达式产生了令人惊讶的结果--看起来像同样的事情,但不是))))我尝试了不同的替代方法--所有大于1的部分 都有正确的分数。 Alexey Viktorov 2014.11.24 11:02 #7894 Igor_:大家下午好!我的大脑很模糊,我在文档中没有找到答案,但也许有人遇到过。这里是专家顾问中的线(正向交易的分数)。Print(OderPluseCount,"/",OderTotal,"=",DoubleToStr((OderPluseCount/OderTotal),2),"=",BestOd," ,2/5*100," ,100*2/5) 。将其打印到日记中(如)。3/6=0.00=0 0 40同时,如果解决方案是1。3/3=1.00=1 0 40变量BestOd=OderPluseCount/OderTotal是双倍类型,其余是int类型。也就是说,只要遇到一个小于1的值,编译器就会自动将其变成0...来自常数的最后两个表达式产生了令人惊讶的结果--看起来像同样的事情,但不是))))我尝试了不同的替代方法,所有大于1的部分都有正确的分数。试试这个DoubleToStr((double)(OderPluseCount/OderTotal),2) Igor Zakharov 2014.11.24 11:13 #7895 AlexeyVik:试试这个DoubleToStr((double)(OderPluseCount/OderTotal),2) 没有帮助。但是谢谢你 ) Victor Nikolaev 2014.11.24 11:20 #7896 Igor_: 这并没有什么帮助。但是谢谢你 )DoubleToStr((double)(OderPluseCount/(OderTotal*1.0)) ,2) Igor Zakharov 2014.11.24 11:33 #7897 Vinin:DoubleToStr((double)(OderPluseCount/(OderTotal*1.0)) ,2)它是这样工作的,谢谢你。看起来像萨满教))))老实说,我更担心的不是显示,而是正确的BestOd 计算。也不得不纠正它。我是这样做的。BestOd=(OderPluseCount/(OderTotal*1.0))。对此有什么解释吗?毕竟,如果不是印刷品,就很难发现这个错误。在什么情况下可能发生? Victor Nikolaev 2014.11.24 12:17 #7898 Igor_:它是这样工作的,谢谢你。听起来像萨满教)))。说实话,我更担心的不是显示,而是BestOd的 正确计算。也不得不纠正它。我是这样做的。BestOd=(OderPluseCount/(OderTotal*1.0))。对此有什么解释吗?毕竟,如果不是印刷品,就很难发现这个错误。在什么情况下会突然出现? 在任何带有整数值的操作中,其结果将是一个整数。 Igor Zakharov 2014.11.24 12:20 #7899 我自己在参考书的"类型转换"部分找到了答案。Если два значения объединяются бинарным оператором, то перед выполнением операции операнд младшего типа преобразовывается к более старшему типу в соответствии с приоритетом, указанным на схеме: 但这个方案中的双倍类型是最资深的。而我有这两份资料。因此,结果是整数。引入一个更高类型的常数(double, float),将所有的int转换为它。你要学习很长时间,并查阅文件)))。 Aleksandr Blinov 2014.11.24 12:34 #7900 你好,我有以下问题。我应该如何制作一个通过并修改未结头寸的 EA,使其不会在下一环节重复修改已经修改过的订单。你必须以某种方式给它们 "上油"。我什么都想不出来。我将非常感激。 1...783784785786787788789790791792793794795796797...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这个问题并没有被驳回。所以,首先。
找到一个最大值,然后对照它画出一条线。检查该最高线与当前最低线之间的距离。如果它超过了 "Rmax",则在发现最大值的栏上设置一个箭头。箭头已放置,但不在那里。为了清楚起见,我添加了显示差异的缓冲区 "BufferLow[i]",它的数据可以在资源管理器窗口看到。
事情总是这样的。你不能在冬天等着下雪)我自己做的。
如果有人被这样一个类似的想法所折磨,这里是代码。
内置的平成指数看起来有点不发达(我不知道这是否只是我在745上的问题?而且也不清楚WmiFor是如何建立的!
在Heiken Ashi代码中,蜡烛是由4条柱状图绘制而成。
也就是说,随着缓冲区数量的增加(从0到3),新的条形图被画在旧的条形图之上。顺序如下。
LowHigh - HighLow - Open - Close。
烛台的顺序应如下,以获得其适当的外观,有体有尾。
max(Open,Close)//粗色线// - min(Open,Close)//粗白色// - High//粗色线// - Low//粗白色//。
让我们来编译这个指标,把它放在图表上,看看所有的问题(见图)。
但这种方法,像Heiken Ashi一样,有一个缺点--在每个 "蜡烛 "下,我们得到一个背景颜色的白色循环,覆盖了所有较低的东西。但有了WmiFor,一切都变得完美了!未记录的功能?
第一张图片--平价(放在一个单独的窗口中),第二张图片--WmiFor,为了清晰起见,背景是浅绿色的。
我们正在比较一个软的和圆的?如果Haken是为图表窗口设计的,并在那里绘制成具有阴影和主体的蜡烛图,为什么要把它放在一个单独的窗口里?如果缓冲区的值发生变化,同一个条形图将改变其大小,不会在其上面绘制新的条形图。
MT4没有烛台形式的画法,所以只能画柱状图,如何计算那里的缓冲值是你自己的事。顺便说一下,WmiFor也是用直方图来画的。 让我们把它也放在一个单独的窗口里,然后盯着它的故障)))。
为了使独立窗口中的烛台看起来像有阴影的烛台,它们应该像加速器一样被相对画成0。或者你可以把它们画成对象,比如说All_Stars。
大家下午好!
我的大脑很模糊,我在文档中没有找到答案,但也许有人遇到过。这里是专家顾问中的线(正向交易的分数)。
Print(OderPluseCount,"/",OderTotal,"=",DoubleToStr((OderPluseCount/OderTotal),2),"=",BestOd," ,2/5*100," ,100*2/5) 。
将其打印到日记中(如)。
3/6=0.00=0 0 40
同时,如果解决方案是1。
3/3=1.00=1 0 40
变量BestOd=OderPluseCount/OderTotal是双倍类型,其余是int类型。
也就是说,只要遇到一个小于1的值,编译器就会自动将其变成0...来自常数的最后两个表达式产生了令人惊讶的结果--看起来像同样的事情,但不是))))
我尝试了不同的替代方法--所有大于1的部分 都有正确的分数。
大家下午好!
我的大脑很模糊,我在文档中没有找到答案,但也许有人遇到过。这里是专家顾问中的线(正向交易的分数)。
Print(OderPluseCount,"/",OderTotal,"=",DoubleToStr((OderPluseCount/OderTotal),2),"=",BestOd," ,2/5*100," ,100*2/5) 。
将其打印到日记中(如)。
3/6=0.00=0 0 40
同时,如果解决方案是1。
3/3=1.00=1 0 40
变量BestOd=OderPluseCount/OderTotal是双倍类型,其余是int类型。
也就是说,只要遇到一个小于1的值,编译器就会自动将其变成0...来自常数的最后两个表达式产生了令人惊讶的结果--看起来像同样的事情,但不是))))
我尝试了不同的替代方法,所有大于1的部分都有正确的分数。
试试这个
DoubleToStr((double)(OderPluseCount/OderTotal),2)
试试这个
DoubleToStr((double)(OderPluseCount/OderTotal),2)
这并没有什么帮助。但是谢谢你 )
DoubleToStr((double)(OderPluseCount/(OderTotal*1.0)) ,2)
它是这样工作的,谢谢你。看起来像萨满教))))
老实说,我更担心的不是显示,而是正确的BestOd 计算。也不得不纠正它。
我是这样做的。
BestOd=(OderPluseCount/(OderTotal*1.0))。
对此有什么解释吗?毕竟,如果不是印刷品,就很难发现这个错误。在什么情况下可能发生?
它是这样工作的,谢谢你。听起来像萨满教)))。
说实话,我更担心的不是显示,而是BestOd的 正确计算。也不得不纠正它。
我是这样做的。
BestOd=(OderPluseCount/(OderTotal*1.0))。
对此有什么解释吗?毕竟,如果不是印刷品,就很难发现这个错误。在什么情况下会突然出现?
我自己在参考书的"类型转换"部分找到了答案。
Если два значения объединяются бинарным оператором, то перед выполнением операции операнд младшего типа преобразовывается к более старшему типу в соответствии с приоритетом, указанным на схеме:
但这个方案中的双倍类型是最资深的。而我有这两份资料。因此,结果是整数。引入一个更高类型的常数(double, float),将所有的int转换为它。
你要学习很长时间,并查阅文件)))。