[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 132 1...125126127128129130131132133134135136137138139...631 新评论 Виктор 2012.05.17 13:05 #1311 MK07: 技术更正--使用顶部面板上的SRC按钮来插入代码,就像你的顾问所做的那样。它将更容易阅读。 P.S. 要清除评论行,在deinit()中插入Comment(")。 [删除] 2012.05.17 13:31 #1312 granit77: 技术更正--使用顶部面板上的SRC按钮来插入代码,就像你的顾问所做的那样。它将更容易阅读。 P.S. 要清除注释行,在deinit()中插入Comment(")。 谢谢你提供的信息,这是我第一次来论坛,特别感谢你提供的代码片段。 Евгений 2012.05.17 13:48 #1313 #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red double ExtMapBuffer1[],ExtMapBuffer2[]; int init(){SetIndexStyle(0,DRAW_LINE);SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(1,DRAW_LINE);SetIndexBuffer(1,ExtMapBuffer2); IndicatorShortName("MACD_max-min");return(0);} int deinit(){Comment("");return(0);} //+------------------------------------------------------------------+ int start(){int counted_bars=IndicatorCounted(),limit,win_idx;double top; if(counted_bars>0)counted_bars--;limit=Bars-counted_bars;win_idx=WindowFind("MACD_max-min"); for(int i=0;i<limit;i++){ExtMapBuffer1[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i); ExtMapBuffer2[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);} top=WindowPriceMax(win_idx);ObjectDelete("max"); if(ObjectFind("max")!=win_idx){ObjectCreate("max",OBJ_HLINE,win_idx,Time[0],top); ObjectSet("max",OBJPROP_COLOR,Yellow);ObjectSet("max",OBJPROP_WIDTH,0);} Comment( "\n"," top = ",DoubleToStr(top,5));return(0);} //+------------------------------------------------------------------+ Евгений 2012.05.17 13:58 #1314 https://docs.mql4.com/ru/common/Comment 空白注释(. ...) 该函数在图表的左上角打印一个用户定义的注释。参数可以是任何类型的。参数的数量不能超过64。 数组不能被传递给Comment()。数组必须一个元素一个元素地打印。 双重类型的数据在打印时,在点之后有4位小数。.要输出精度更高的数字,请使用DoubleToStr()。 bool、datetime和color类型将被打印成数字。 要将日期时间数据输出为字符串,请使用TimeToStr() 函数。 为了将输出分成多行,您可以使用换行符"\n "或"\r\n"。 另见 Alert() 和Print()。 russcand 2012.05.17 14:39 #1315 你能告诉我如何写: 价格已经越过水平线 上升.... 那么这条线路应该如何描述呢? [删除] 2012.05.17 15:49 #1316 Roll: 谢谢你的科学。 mario 2012.05.17 16:32 #1317 你好。 我遇到的问题是这样的。 在PERIOD_H1上工作。 为了在一小时后结束,我这样做。 for(j = OrdersTotal()-1; j >= 0; j--){ if(OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){ OpenTime= OrderOpenTime(); if(OrderType() == OP_BUY){ if(TimeCurrent()>Time[0]+3580){ OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),0,Red);} } else if(OrderType() == OP_SELL){ if(TimeCurrent()>Time[0]+3580){ OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),0,Blue);} } } } 为了在一小时开始的时候开仓,我做了以下工作 if(TimeCurrent()<Time[0]+3500 && HaveBuy==false && HaveSell==false) if(Ask <= EnBuy && IsFreeLevel==true){ ticket = OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),0,0,forecast-5*MyPoint,"",MagicNumber,0,Blue); } if(Bid >= EnSel && IsFreeLevel==true){ ticket = OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),0,0,forecast+5*MyPoint,"",MagicNumber,0,Red); } 但对于测试来说,它是这样的 我搞不清楚我在哪里出了问题。 并非所有时候都是如此,但它有这样的时刻。 谢谢你,谁会回答呢:)。 Boris 2012.05.17 17:15 #1318 alsu: 我不是说这个,我是说EA在哪里有什么区别?如果写得正确,放在哪里都没有区别--只要放在蒙古国汇率的图表上就可以了,但如果设置为在欧元兑美元1分钟上操作,它就会这样做。而且编程也不难,只要改几行就可以了。 非常感谢您的澄清! 只是我担心测试仪模拟一分钟的条形图,在每个一分钟的条形图的开口处进行修改。 我将尝试把Open[0]改为iOpen(NULL,1,0),并添加一个函数来检查一分钟柱的开盘情况。 几分钟过去了,在此期间,我调整了代码,并在M5的测试器上进行了尝试,并确保在这种情况下,测试器不会打开1分钟的条形图,虽然是规定的,而且每5分钟才修改一次,这是我所担心的。在所有刻度模式下,它要好一点,因为它修改的频率更高。但在M1上,只有在开条时才会有同样的效果,无论是用Open[0]还是用iOpen(NULL,1,0),对此我还是很感激的! 现在我将始终使用绿色的iOpen,因为我看到我可以不使用红色的Open。绿色的利润比红色的损失要好。(:)) mario 2012.05.17 17:46 #1319 mario065: 你好。 我遇到的问题是这样的。 在PERIOD_H1上工作。 为了在一小时后结束,我这样做。 要在一小时开始时开仓,我这样做 但对于测试来说,它是这样的 我搞不清楚我在哪里出了问题。 并非所有时候都是如此,但它有这样的时刻。 谢谢,谁来回应 :) 一个朋友给了我一个提示。 而不是TimeCurrent() TimeSeconds(TimeCurrent()) 而且还很有效。 Виктор 2012.05.17 18:34 #1320 russcand: 你能告诉我如何写: 价格已经越过水平线上升....那么这条线路应该如何描述呢? 如果第一个条形图上的指标值大于水平线的 值,并且,第二个条形图上的指标值小于水平线的值,那么指标线已经向上越过水平线。 水平线的描述是一个常数,即它在指标窗口尺寸中的值。让我们把鼠标光标放在它上面,看看这个值。 1...125126127128129130131132133134135136137138139...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
P.S.
要清除评论行,在deinit()中插入Comment(")。
技术更正--使用顶部面板上的SRC按钮来插入代码,就像你的顾问所做的那样。它将更容易阅读。
P.S.
要清除注释行,在deinit()中插入Comment(")。
数组不能被传递给Comment()。数组必须一个元素一个元素地打印。
双重类型的数据在打印时,在点之后有4位小数。.要输出精度更高的数字,请使用DoubleToStr()。
bool、datetime和color类型将被打印成数字。
要将日期时间数据输出为字符串,请使用TimeToStr() 函数。
为了将输出分成多行,您可以使用换行符"\n "或"\r\n"。
另见 Alert() 和Print()。
价格已经越过水平线 上升....
那么这条线路应该如何描述呢?
你好。
我遇到的问题是这样的。
在PERIOD_H1上工作。
为了在一小时后结束,我这样做。
为了在一小时开始的时候开仓,我做了以下工作但对于测试来说,它是这样的
我搞不清楚我在哪里出了问题。
并非所有时候都是如此,但它有这样的时刻。
谢谢你,谁会回答呢:)。
我不是说这个,我是说EA在哪里有什么区别?如果写得正确,放在哪里都没有区别--只要放在蒙古国汇率的图表上就可以了,但如果设置为在欧元兑美元1分钟上操作,它就会这样做。而且编程也不难,只要改几行就可以了。
非常感谢您的澄清!
只是我担心测试仪模拟一分钟的条形图,在每个一分钟的条形图的开口处进行修改。
我将尝试把Open[0]改为iOpen(NULL,1,0),并添加一个函数来检查一分钟柱的开盘情况。
几分钟过去了,在此期间,我调整了代码,并在M5的测试器上进行了尝试,并确保在这种情况下,测试器不会打开1分钟的条形图,虽然是规定的,而且每5分钟才修改一次,这是我所担心的。在所有刻度模式下,它要好一点,因为它修改的频率更高。但在M1上,只有在开条时才会有同样的效果,无论是用Open[0]还是用iOpen(NULL,1,0),对此我还是很感激的!
现在我将始终使用绿色的iOpen,因为我看到我可以不使用红色的Open。绿色的利润比红色的损失要好。(:))
你好。
我遇到的问题是这样的。
在PERIOD_H1上工作。
为了在一小时后结束,我这样做。
要在一小时开始时开仓,我这样做但对于测试来说,它是这样的
我搞不清楚我在哪里出了问题。
并非所有时候都是如此,但它有这样的时刻。
谢谢,谁来回应 :)
一个朋友给了我一个提示。
而不是TimeCurrent()
TimeSeconds(TimeCurrent())
而且还很有效。
你能告诉我如何写: 价格已经越过水平线上升....那么这条线路应该如何描述呢?
水平线的描述是一个常数,即它在指标窗口尺寸中的值。让我们把鼠标光标放在它上面,看看这个值。