[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 651 1...644645646647648649650651652653654655656657658...1145 新评论 [删除] 2010.06.26 21:02 #6501 xtonic: 晚间的谜语来自metha。 我从报价档案中导入报价,它在1分钟内说:数据库:0 / 3665972,窗口是空的 - 它是什么意思? 当我打开独立的EURUSD,M1图表时 - 它显示了大字。"等待更新" - 这意味着什么? 我正在运行一个测试 - TestGenerator:没有历史数据'EURUSD1'。 重新加载终端。如果一切都做得正确,它应该出现。 Igor Makanu 2010.06.26 21:05 #6502 在哪里可以读到具有以下参数的指标是如何绘制的? SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1) SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2) 我不明白为什么有时画有时不画--我明白如果你画一条正常的线DRAW_LINE--指标缓冲值将设置Y轴,但元素的数量与图表上的条数相对应。 为什么当两个指标缓冲区在同一个柱子上时,柱子上的水平段会出现,但当其中一个指标缓冲区是EMPTY_VALUE 时,就没有了,我不明白着色的逻辑。 [删除] 2010.06.26 21:20 #6503 ToLik_SRGV: 重新加载终端。如果一切都做得正确,应该会出现。 我已经做了这一切,甚至重启了系统,这才是重点。 Oleg 2010.06.26 23:51 #6504 xtonic:我已经做了所有这些,甚至重启了系统,这才是重点。你有没有 从哪里导入 报价? 如果你能确切地解释你在做什么,一步一步地,那么你就更有可能在这里得到帮助。 Craft 2010.06.27 00:26 #6505 善良的人们,请发发慈悲吧--我无法得到:在平滑的CCI的另一个峰值后买入/卖出。 我试着声明第二个缓冲区(对我来说更有意义),没有错误,日志--无声,打印,显然,作为一个山羊--我什么都不明白。 // Торговые критерии double c1b[]; ArrayResize(c1b,PeriodB); double c1b_1[]; ArrayResize(c1b_1,AvgB); for(i=1;i<=PeriodB;i++) { c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i); { c1b_1[i]=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i); } } double c1s[]; ArrayResize(c1s,PeriodS); double c1s_1[]; ArrayResize(c1s_1,AvgS); for(i=1;i<=PeriodS;i++) { c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i); { c1s_1[i]=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,i); } } if (NormalizeDouble(c1b_1[i],4)<NormalizeDouble(c1b_1[i+2],4)&&NormalizeDouble(c1b_1[i+2],4)>NormalizeDouble(c1b_1[i+3],4)) { // Opn_B=true; // Критерий откр. Buy Cls_S=true; // Критерий закр. Sell } if (NormalizeDouble(c1s_1[i],4)>NormalizeDouble(c1s_1[i+2],4)&&NormalizeDouble(c1s_1[i+2],4)<NormalizeDouble(c1s_1[i+3],4)) { // Opn_S=true; // Критерий откр. Sell Cls_B=true; // Критерий закр. Buy } 附件包含整个专家顾问。经过可视化测试,CCI在这个版本和旧版本中都被画出来了(它在附件中被画出来了),但是平滑的却没有,因此交易没有被打开。 旧的变体。 // Торговые критерии double c1b[]; for(i=1;i<=PeriodB;i++) { c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i); } double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,1); double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,2); double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,3); double c1s[]; for(i=1;i<=PeriodS;i++) { c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i); } double c1s_1=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,1); double c1s_2=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,2); double c1s_3=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,3); if (NormalizeDouble(c1b_1,4)<NormalizeDouble(c1b_2,4)&&NormalizeDouble(c1b_2,4)>NormalizeDouble(c1b_3,4)) { // Opn_B=true; // Критерий откр. Buy Cls_S=true; // Критерий закр. Sell } if (NormalizeDouble(c1s_1,4)>NormalizeDouble(c1s_2,4)&&NormalizeDouble(c1s_2,4)<NormalizeDouble(c1s_3,4)) { // Opn_S=true; // Критерий откр. Sell Cls_B=true; // Критерий закр. Buy } 我明白没有人有时间去清理其他的,至少告诉我到底在哪里插入打印,在日记或日志中寻找反馈,需要注意什么。 附加的文件: 21.mq4 15 kb Alexandr Andreev 2010.06.27 06:40 #6506 下午好! 我有一个关于部分关闭的问题,因为每个经纪公司都有自己的规则。我不明白如何正确进行订单核算。 问题是:我们需要在不使用魔术师的情况下,在这个特定的TS中找到一个新下订单的勾。 1)我注意到,一个部分关闭的订单有一个评论,你应该能够阅读评论//我不确定所有的经纪公司都写评论 2)按开单日期搜索//不确定是否对所有经纪公司都有效 3)在部分平仓指令执行后寻找新的刻度线,并检查成交量等,看是否是正确的指令。 4)其他的东西 Igor Makanu 2010.06.27 06:48 #6507 wenay:如何更好地进行订单统计。 阅读那里的帮助: comment - Ordercomment text.评论的最后部分可以由贸易服务器改变。magic- 订单的magic number。可作为用户定义的标识符。魔法是帮助你的好方法要搜索一个订单,请执行以下操作如果(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { ....... Igor Makanu 2010.06.27 06:55 #6508 Craft: 请告知印刷品到底应该插在什么地方,在日志或日志文件中哪里可以找到反馈,以及需要注意什么。 打印你想检查的地方(例如,如果你下了一个订单--打印下订单的事实或在日记中下订单的错误)。 如果你不确定你的函数可以被调用,也就是说,函数的调用条件永远不会被满足,可以在函数的输入中加入Print。 在终端的 "专家 "选项卡中打印读数 [删除] 2010.06.27 07:04 #6509 IgorM:在哪里可以读到具有以下参数的指标是如何绘制的?SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1)SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2) 我不明白为什么有时画有时不画--我明白如果你画一条正常的线DRAW_LINE--指标缓冲值将设置Y轴,但元素的数量与图表上的条数相对应。当指标缓冲区的类型为DRAW_HISTOGRAM时,指标缓冲区中的参数是什么? 为什么当两个指标缓冲区在一个柱子上结束时,柱子上会出现一个水平段,但当其中一个指标缓冲区等于EMPTY_VALUE时,就没有了,我不明白着色的逻辑 DRAW_HISTOGRAM的风格 与其他画线风格没有本质区别,X轴由条形数字表示,Y轴--由指标阵列的值表示,但正如他们所说,有一个细微的差别。 让我们以一个简单的指标为例。 #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red #property indicator_width1 2 double SIMPLE[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0, SIMPLE); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ for(int shift = Bars-IndicatorCounted()-1; shift >= 0; shift--){ SIMPLE[shift] = 1; } } //+------------------------------------------------------------------+ 一个指标数组,单独的窗口,所有的元素都被赋值为1。把它扔到图表上,我们看到了什么(图1,左)。 数据窗口 "显示指标读数,但其窗口中没有任何内容。这就是细微差别,MT4只是不知道1是多高?栏杆应该画得多高?它没有什么可以借鉴的,也就是说,简单地说,没有条形的分割价格。正如你所注意到的,没有单独的参数来设置条形图的高度,它们的高度是自动设置的,相对于其他元素。让我们帮助MT4,设置分界线价格,我们可以通过编程来完成。 #property indicator_minimum 0 #property indicator_maximum 2 你可以简单地在指标设置中固定最小值(如0)和最大值(如2)。 一切都立即到位(图2,右),现在终端知道应该画多高的条形图,1在0和2的中间:))在这个例子中,指标数组有一个值(特别是用于显示 "细微差别"),我们应该向终端指示它的多少。如果我们将数组数据替换为1,例如Close[shift],终端就不会设置任何硬约束,并会画出一幅 "alla MAKD"。 如果你不在一个单独的窗口中画直方图,而是在一般情况下,会有一点不同的画面。让我们为第一个指标阵列保留Close[shift]的值,只是改变参数。#property indicator_chart_window 我们再次得到同样的画面(图3,左)。数值是存在的,但没有显示。 终端需要一些自动计算条形高度的依据,由于最小和最大不能在一般窗口中固定,所以会出现第二个指标阵列。我们添加第二行并将其设置为0。#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_width1 2 #property indicator_color2 Red #property indicator_width2 2 double SIMPLE[]; double SIMPLE2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0, SIMPLE); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1, SIMPLE2); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ for(int shift = Bars-IndicatorCounted()-1; shift >= 0; shift--){ SIMPLE[shift] = Close[shift]; SIMPLE2[shift] = 0; } } //+------------------------------------------------------------------+指示器阵列开始相对于对方显示。而一切都将如愿以偿(图4,右)。列是由SIMPLE[shift] 到 SIMPLE2[shift]绘制的。 最后,还有一个指标代码,它填补了蜡烛,如果是上升,则为蓝色,如果是下降,则为粉红色。同样,每种颜色有两个数组(画法是从原点到终点(从开到关))。 //+------------------------------------------------------------------+ //| SIMPLE.mq4 | //| Copyright © 2010,Анатолий Сергеев | //| mql.sergeev@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010, Анатолий Сергеев" #property link "mql.sergeev@yandex.ru" #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Blue #property indicator_width1 2 #property indicator_color2 Blue #property indicator_width2 2 #property indicator_color3 Pink #property indicator_width3 2 #property indicator_color4 Pink #property indicator_width4 2 double Blue_home[]; double Blue_end[]; double Pink_home[]; double Pink_end[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0, Blue_home); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1, Blue_end); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexBuffer(2, Pink_home); SetIndexStyle(3,DRAW_HISTOGRAM); SetIndexBuffer(3, Pink_end); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ for(int shift = Bars-IndicatorCounted()-1; shift >= 0; shift--){ if(Close[shift] > Open[shift]){ Blue_home[shift] = Open[shift]; Blue_end[shift] = Close[shift]; }else{ Pink_home[shift] = Open[shift]; Pink_end[shift] = Close[shift]; } } } //+------------------------------------------------------------------+ Alexandr Andreev 2010.06.27 08:06 #6510 IgorM: 阅读那里的帮助。 comment - 订单评论文本。评论的最后部分可以由贸易服务器改变。magic- 订单的magic number。可作为用户定义的标识符。 用魔法来帮助你 要检查一个订单,请执行以下操作。 如果(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { ....... 任务:你需要 在不使用魔法的情况下 为这个特定的TS找到一个新出现的订单的勾。 1...644645646647648649650651652653654655656657658...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
晚间的谜语来自metha。
我从报价档案中导入报价,它在1分钟内说:数据库:0 / 3665972,窗口是空的 - 它是什么意思?
当我打开独立的EURUSD,M1图表时 - 它显示了大字。"等待更新" - 这意味着什么?
我正在运行一个测试 - TestGenerator:没有历史数据'EURUSD1'。
重新加载终端。如果一切都做得正确,它应该出现。
在哪里可以读到具有以下参数的指标是如何绘制的?
SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1)
SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2)
我不明白为什么有时画有时不画--我明白如果你画一条正常的线DRAW_LINE--指标缓冲值将设置Y轴,但元素的数量与图表上的条数相对应。
为什么当两个指标缓冲区在同一个柱子上时,柱子上的水平段会出现,但当其中一个指标缓冲区是EMPTY_VALUE 时,就没有了,我不明白着色的逻辑。
重新加载终端。如果一切都做得正确,应该会出现。
我已经做了这一切,甚至重启了系统,这才是重点。
我已经做了所有这些,甚至重启了系统,这才是重点。
你有没有 从哪里导入 报价?
如果你能确切地解释你在做什么,一步一步地,那么你就更有可能在这里得到帮助。
善良的人们,请发发慈悲吧--我无法得到:在平滑的CCI的另一个峰值后买入/卖出。
我试着声明第二个缓冲区(对我来说更有意义),没有错误,日志--无声,打印,显然,作为一个山羊--我什么都不明白。
附件包含整个专家顾问。经过可视化测试,CCI在这个版本和旧版本中都被画出来了(它在附件中被画出来了),但是平滑的却没有,因此交易没有被打开。
旧的变体。
我明白没有人有时间去清理其他的,至少告诉我到底在哪里插入打印,在日记或日志中寻找反馈,需要注意什么。
下午好!
我有一个关于部分关闭的问题,因为每个经纪公司都有自己的规则。我不明白如何正确进行订单核算。
问题是:我们需要在不使用魔术师的情况下,在这个特定的TS中找到一个新下订单的勾。
1)我注意到,一个部分关闭的订单有一个评论,你应该能够阅读评论//我不确定所有的经纪公司都写评论
2)按开单日期搜索//不确定是否对所有经纪公司都有效
3)在部分平仓指令执行后寻找新的刻度线,并检查成交量等,看是否是正确的指令。
4)其他的东西
如何更好地进行订单统计。
comment - Ordercomment text.评论的最后部分可以由贸易服务器改变。
magic- 订单的magic number。可作为用户定义的标识符。
魔法是帮助你的好方法
要搜索一个订单,请执行以下操作
如果(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
.......
请告知印刷品到底应该插在什么地方,在日志或日志文件中哪里可以找到反馈,以及需要注意什么。
打印你想检查的地方(例如,如果你下了一个订单--打印下订单的事实或在日记中下订单的错误)。
如果你不确定你的函数可以被调用,也就是说,函数的调用条件永远不会被满足,可以在函数的输入中加入Print。
在终端的 "专家 "选项卡中打印读数
在哪里可以读到具有以下参数的指标是如何绘制的?
SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1)
SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2)
我不明白为什么有时画有时不画--我明白如果你画一条正常的线DRAW_LINE--指标缓冲值将设置Y轴,但元素的数量与图表上的条数相对应。
当指标缓冲区的类型为DRAW_HISTOGRAM时,指标缓冲区中的参数是什么? 为什么当两个指标缓冲区在一个柱子上结束时,柱子上会出现一个水平段,但当其中一个指标缓冲区等于EMPTY_VALUE时,就没有了,我不明白着色的逻辑
DRAW_HISTOGRAM的风格 与其他画线风格没有本质区别,X轴由条形数字表示,Y轴--由指标阵列的值表示,但正如他们所说,有一个细微的差别。
让我们以一个简单的指标为例。
一个指标数组,单独的窗口,所有的元素都被赋值为1。把它扔到图表上,我们看到了什么(图1,左)。
数据窗口 "显示指标读数,但其窗口中没有任何内容。这就是细微差别,MT4只是不知道1是多高?栏杆应该画得多高?它没有什么可以借鉴的,也就是说,简单地说,没有条形的分割价格。正如你所注意到的,没有单独的参数来设置条形图的高度,它们的高度是自动设置的,相对于其他元素。让我们帮助MT4,设置分界线价格,我们可以通过编程来完成。
你可以简单地在指标设置中固定最小值(如0)和最大值(如2)。
一切都立即到位(图2,右),现在终端知道应该画多高的条形图,1在0和2的中间:))在这个例子中,指标数组有一个值(特别是用于显示 "细微差别"),我们应该向终端指示它的多少。如果我们将数组数据替换为1,例如Close[shift],终端就不会设置任何硬约束,并会画出一幅 "alla MAKD"。
如果你不在一个单独的窗口中画直方图,而是在一般情况下,会有一点不同的画面。让我们为第一个指标阵列保留Close[shift]的值,只是改变参数。
我们再次得到同样的画面(图3,左)。数值是存在的,但没有显示。
终端需要一些自动计算条形高度的依据,由于最小和最大不能在一般窗口中固定,所以会出现第二个指标阵列。我们添加第二行并将其设置为0。
指示器阵列开始相对于对方显示。而一切都将如愿以偿(图4,右)。列是由SIMPLE[shift] 到 SIMPLE2[shift]绘制的。
最后,还有一个指标代码,它填补了蜡烛,如果是上升,则为蓝色,如果是下降,则为粉红色。同样,每种颜色有两个数组(画法是从原点到终点(从开到关))。
阅读那里的帮助。
comment - 订单评论文本。评论的最后部分可以由贸易服务器改变。
magic- 订单的magic number。可作为用户定义的标识符。
用魔法来帮助你
要检查一个订单,请执行以下操作。
如果(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
.......
任务:你需要 在不使用魔法的情况下 为这个特定的TS找到一个新出现的订单的勾。