[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 130 1...123124125126127128129130131132133134135136137...631 新评论 [删除] 2012.05.16 17:45 #1291 alex12:但在EA中还有一个代码。例如,在这个函数中放入Print("close by CloseMarket", j);以及你发布的前一个函数中的类似内容。运行它并查看日志,看哪些打印出现,分析哪一个触发。然后类似地记录关闭执行条件中检查的变量值,找到它们触发的原因。 Boris 2012.05.16 18:51 #1292 alsu: 又是什么阻止了你把EA放在你想画的确切窗口上? 我的EA在M1上工作得更好,因为它在M1上的表现更好,在M5开盘时开出1笔交易,如果条件允许,它还会补仓。我也在M5和其他TFs上使用指标。而且在开盘时测试M1更好,而在其他TFs上测试所有的ticks则不好。 我不画画,我只是看到EA所做的计算结果,并在某些地方显示,以确保一切正常。谢谢您的关注和帮助! Alexey Subbotin 2012.05.16 19:09 #1293 borilunad: 我的EA在M1上工作得更好,因为它在M1上的拖曳效果更好,并在M5开盘时开出1笔交易,如果条件允许,还可以补仓。而我在M5和其他TFs上使用指标。而且在开盘时测试M1更好,而在其他TFs上测试所有的ticks则不好。 我不画画,我只是看到EA的计算结果,并在某些方面显示出来,以确保一切都在有序进行。谢谢您的关注和帮助! 在M1和M5上的ticks取自同一来源,你可以使用任何图表中的任何时间框架,只需用iClose代替Close[],等等。为了更好地测试,你必须从ticks中制作更好的fxt文件,这里有 一个例子,但在一般的google中,有很多关于这个问题的信息。 Boris 2012.05.16 19:28 #1294 alsu: 在M1和M5上,点数都来自同一来源,你可以使用任何图表中的任何时间框架,只要用iClose替换Close[],等等。为了更好地测试,你必须从ticks中制作更好的fxt文件,这里有 一个例子,但在一般的google中,有很多关于这个问题的信息。 实践表明,在Op上开盘比在ticks上开盘要好,而且测试效果也更好。我对蜱虫一点也不热衷。当Depo允许时,我可能会转到更高的TF,这将在一天内显示出更好的效果。我不离开交易,晚上才能睡得好。再次感谢! alex 2012.05.16 20:06 #1295 smshev: Print(" CloseMarket", j);在这个函数中,以及你发布的前一个函数中的类似内容。 运行它并通过日志查看这些打印机的结果,分析哪一个触发。 然后类似地记录收盘条件中检查的变量的值,并找到它们触发的原因... 谢谢你。 Alexey Subbotin 2012.05.16 22:42 #1296 borilunad: 实践证明,在奥雷普上开盘,也比在提克上开盘要好。而且我对蜱虫一点也不感兴趣。当Depo允许时,我可能会改用更高的TF,这将在一天内显示出更好的效果。我不离开交易,晚上才能睡得好。再次感谢! 我不是说这个,我是说EA在哪里有什么区别?如果编写得当,它位于何处并不重要:即使它是在蒙古国交易所的图表上,但如果它被设置为在欧元兑美元1分钟上操作,它就会这样做。而且编程也不难,只要按规定改几行就可以了。 [Удален] 2012.05.16 23:01 #1297 亲爱的程序员先生!我不能按MACD指标窗口的最大数值画一条水平线。 编码 #属性 indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Lime #property indicator_color2 Red //--- 缓冲区 双倍ExtMapBuffer1[]。 双倍ExtMapBuffer2[]。 double topBuffer[]。 bool initFinished=false; // 添加一个变量,它将记住初始化的状态。 // false - 初始化还没有发生。 // true - 已被初始化 //+------------------------------------------------------------------+ //|自定义指标初始化函数 //+------------------------------------------------------------------+ int init() { //---- 指标 SetIndexStyle(0,DRAW_LINE)。 SetIndexBuffer(0,ExtMapBuffer1)。 SetIndexStyle(1,DRAW_LINE)。 SetIndexBuffer(1,ExtMapBuffer2)。 SetIndexStyle(2,DRAW_NONE)。 SetIndexBuffer(2,topBuffer)。 //---- return(0); } //+------------------------------------------------------------------+ //|自定义指标去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted()。 限度。 如果(counted_bars>0) counted_bars--。 limit=Bars-counted_bars。 //---- 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) 。 如果(initFinished==false) { IndicatorShortName("MACD_max-min")。 int win_idx=WindowFind("MACD_max-min")。 //找到我们的指标子窗口的编号 如果(win_idx<0) { // 如果子窗口编号为-1,则有一个错误 Print("Window not found")。 return(0); } double top=WindowPriceMax(win_idx)。 //找到当前图表的指定子窗口的垂直刻度的最大值 ObjectCreate("max",OBJ_HLINE,win_idx,0,top)。 //在我们的指标的一个子窗口中画一条水平线 ObjectSet("max",OBJPROP_COLOR,Yellow)。 ObjectSet("max",OBJPROP_WIDTH,0)。 WindowRedraw()。 //重新绘制窗口以看到这条线路 initFinished=true。 // 绘图完成了 } topBuffer[i]=top。 } //---- return(0); } //+------------------------------------------------------------------+ 它看起来像在行 double top=WindowPriceMax(win_idx)。 顶层变量没有得到任何值,在 ObjectCreate("max",OBJ_HLINE,win_idx,0,top)。 因此,我在所需的窗口和所需的颜色中得到一个零线。 topBuffer[]也是空的。如果在这一行中用一个数字代替变量top,这一行就取这个固定值。 附加的文件: macd_max-min.mq4 4 kb [ARCHIVE!] Any rookie question, 编码帮助 Ojala EA Alexey Subbotin 2012.05.17 05:08 #1298 IndicatorShortName最好移至init()。 [Удален] 2012.05.17 06:15 #1299 alsu: IndicatorShortName应该被移到init() 。 当你打开指标时,对象没有出现,你应该另外打开有指标属性的窗口,关闭它,然后对象就可以看到了。 Alexey Subbotin 2012.05.17 06:27 #1300 win_idx是正确的吗? 1...123124125126127128129130131132133134135136137...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但在EA中还有一个代码。
例如,在这个函数中放入Print("close by CloseMarket", j);以及你发布的前一个函数中的类似内容。运行它并查看日志,看哪些打印出现,分析哪一个触发。然后类似地记录关闭执行条件中检查的变量值,找到它们触发的原因。
又是什么阻止了你把EA放在你想画的确切窗口上?
我的EA在M1上工作得更好,因为它在M1上的表现更好,在M5开盘时开出1笔交易,如果条件允许,它还会补仓。我也在M5和其他TFs上使用指标。而且在开盘时测试M1更好,而在其他TFs上测试所有的ticks则不好。
我不画画,我只是看到EA所做的计算结果,并在某些地方显示,以确保一切正常。谢谢您的关注和帮助!
我的EA在M1上工作得更好,因为它在M1上的拖曳效果更好,并在M5开盘时开出1笔交易,如果条件允许,还可以补仓。而我在M5和其他TFs上使用指标。而且在开盘时测试M1更好,而在其他TFs上测试所有的ticks则不好。
我不画画,我只是看到EA的计算结果,并在某些方面显示出来,以确保一切都在有序进行。谢谢您的关注和帮助!
在M1和M5上,点数都来自同一来源,你可以使用任何图表中的任何时间框架,只要用iClose替换Close[],等等。为了更好地测试,你必须从ticks中制作更好的fxt文件,这里有 一个例子,但在一般的google中,有很多关于这个问题的信息。
实践表明,在Op上开盘比在ticks上开盘要好,而且测试效果也更好。我对蜱虫一点也不热衷。当Depo允许时,我可能会转到更高的TF,这将在一天内显示出更好的效果。我不离开交易,晚上才能睡得好。再次感谢!
Print(" CloseMarket", j);在这个函数中,以及你发布的前一个函数中的类似内容。 运行它并通过日志查看这些打印机的结果,分析哪一个触发。 然后类似地记录收盘条件中检查的变量的值,并找到它们触发的原因...
实践证明,在奥雷普上开盘,也比在提克上开盘要好。而且我对蜱虫一点也不感兴趣。当Depo允许时,我可能会改用更高的TF,这将在一天内显示出更好的效果。我不离开交易,晚上才能睡得好。再次感谢!
亲爱的程序员先生!我不能按MACD指标窗口的最大数值画一条水平线。
编码
#属性 indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Red
//--- 缓冲区
双倍ExtMapBuffer1[]。
双倍ExtMapBuffer2[]。
double topBuffer[]。
bool initFinished=false; // 添加一个变量,它将记住初始化的状态。
// false - 初始化还没有发生。
// true - 已被初始化
//+------------------------------------------------------------------+
//|自定义指标初始化函数
//+------------------------------------------------------------------+
int init()
{
//---- 指标
SetIndexStyle(0,DRAW_LINE)。
SetIndexBuffer(0,ExtMapBuffer1)。
SetIndexStyle(1,DRAW_LINE)。
SetIndexBuffer(1,ExtMapBuffer2)。
SetIndexStyle(2,DRAW_NONE)。
SetIndexBuffer(2,topBuffer)。
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
限度。
如果(counted_bars>0)
counted_bars--。
limit=Bars-counted_bars。
//----
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) 。
如果(initFinished==false)
{
IndicatorShortName("MACD_max-min")。
int win_idx=WindowFind("MACD_max-min")。
//找到我们的指标子窗口的编号
如果(win_idx<0)
{
// 如果子窗口编号为-1,则有一个错误
Print("Window not found")。
return(0);
}
double top=WindowPriceMax(win_idx)。
//找到当前图表的指定子窗口的垂直刻度的最大值
ObjectCreate("max",OBJ_HLINE,win_idx,0,top)。
//在我们的指标的一个子窗口中画一条水平线
ObjectSet("max",OBJPROP_COLOR,Yellow)。
ObjectSet("max",OBJPROP_WIDTH,0)。
WindowRedraw()。
//重新绘制窗口以看到这条线路
initFinished=true。
// 绘图完成了
}
topBuffer[i]=top。
}
//----
return(0);
}
//+------------------------------------------------------------------+
它看起来像在行
double top=WindowPriceMax(win_idx)。
顶层变量没有得到任何值,在
ObjectCreate("max",OBJ_HLINE,win_idx,0,top)。
因此,我在所需的窗口和所需的颜色中得到一个零线。 topBuffer[]也是空的。如果在这一行中用一个数字代替变量top,这一行就取这个固定值。
IndicatorShortName应该被移到init() 。