[存档!]免费撰写顾问文章 - 页 11 1...456789101112131415161718...94 新评论 [删除] 2009.05.14 17:05 #101 skylord писал(а)>> 你好。 我刚刚开始学习MQL,我正在尝试编写一个EA... 我想在sidus v.2指标的基础上写一个EA,我想让它在我指定的方向上开仓,只有当一个新的条形图诞生时,也就是说,在第一个刻度上,它应该检查信号是否在前一个条形图上,以及什么样的订单--有一个停止和一个采取。附上指标文件。 我没能找到这个信号((。 帮助,或者至少告诉我如何去做...... 一个关于Sidus指标的专家顾问 也许这对你有帮助,或者搜索会有帮助! 或第二风! [删除] 2009.05.14 18:48 #102 感谢vvavva。我有一个很好的想法,但它跳过了,而且发出了很多的左信号,但这不是我所需要的( 我怎样才能问别人,如何向EA 申请前一棒的指标缓冲区的状态? if (sigCurrent==1 && sigPrevious==2) { ExtMapBuffer4[i-1] = High[i-1]-5*Point; //ExtMapBuffer3[i] = Ask; entry=true; entry_point=Ask; } else if (sigCurrent==2 &&sigPrevious==1) { ExtMapBuffer3[i-1] = Low[i-1]-5*Point; //ExtMapBuffer4[i] = Bid; entry=true; entry_point=Bid; } 一个EA需要这样的一个匹配条件 double Up; double Down; int res; Up=iCustom(NULL, 0, "sidus_v.2", 3,1); Down=iCustom(NULL,0, "sidus_v.2")",2,1); //---- 卖出条件 if(Down==Low) { res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,",MAGICMA,0,Red); return; } //---- 买入条件 if(Up==High) { res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0," ,MAGICMA,0,Blue); return; } 但这是不对的!!!。 请告知在这种情况下如何行动... [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 [Archive!] Writing an advisor [WARNING CLOSED!] Any newbie Владимир 2009.05.14 20:19 #103 你好。 我在安静地交易,我使用4个诱因,阻力支撑线,趋势,等等,等等......我的眼睛在屏幕上坏了,你能帮我在箭头上插入声音信号吗(买入,卖出),同样的箭头在历史上也有虚线(重新切割过的)。 附加的文件: zigandzag.mq4 16 kb [删除] 2009.05.15 14:56 #104 skylord писал(а)>> 你好。 我刚刚开始学习MQL,我正在尝试编写一个EA... 我想在sidus v.2指标的基础上写一个EA,我想让它在我指定的方向上开仓,只有当一个新的条形图诞生时,也就是说,在第一个刻度上,它应该检查信号是否在前一个条形图上,以及什么样的订单--有一个停止和一个采取。附上指标文件。 我没能找到这个信号((。 帮助,或者至少告诉我如何去做...... 你好,刚刚用我的眼睛运行了代码,对不起,我是个糟糕的蹩脚的人,当然我可能是错的,但指标是否超额完成?让我们试着从逻辑上思考 for(int i=0; i<limit; i++) { 从零条数到历史上的所有条数,增加计数器。 ExtMapBuffer1[ i]=iMA(NULL,0, FastEMA,0,MODE_EMA,PRICE_CLOSE, i); ExtMapBuffer2[ i]=iMA(NULL,0, SlowEMA,0,MODE_EMA,PRICE_CLOSE, i); rsi_sig = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i); 这里的一切都很清楚。 pipdiffCurrent=(ExtMapBuffer1[i]-ExtMapBuffer2[i]); 去他妈的MACDAK。 if ( pipdiffCurrent>0 && rsi_sig>50) { sigCurrent = 1; //Up } else if ( pipdiffCurrent<0 && rsi_sig<50) { sigCurrent = 2; //Down 如果macdac大于0,RSI大于50,则sig为1,如果小于,则为2。 到目前为止,一切都很好。 if (sigCurrent==1 && sigPrevious==2) { 这里我不明白......如果macdak是正的,RSI大于50,macdak是负的,RSI小于50......因为在下面的代码中有一个条件 sigPrevious=sigCurrent; 那么我们就可以把它们等同起来... 和偷窃未来是一个坏主意...... ExtMapBuffer3[i-1] 不,让我们用这个来代替它,或者说完全修改它,因为我们已经知道了这个逻辑。 #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 1 #property indicator_width2 1 //---- extern int FastEMA=14; extern int SlowEMA=21; extern int RSIPeriod=17; //---- double BuyBuffer[], SellBuffer[]; int pre_signal = 0; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { //---- SetIndexBuffer(0, BuyBuffer); SetIndexLabel(0, "Buy"); SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 1); SetIndexArrow(0, 241); //---- SetIndexBuffer(1, SellBuffer); SetIndexLabel(1, "Sell"); SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 1); SetIndexArrow(1, 242); //---- return(0); } int deinit() { } int start() { int counted_bars = IndicatorCounted(); int limit = Bars - 17; if( counted_bars > 17) { limit = Bars - counted_bars; } for(int i = limit; i >= 0; i --) { BuyBuffer[ i] = EMPTY_VALUE; SellBuffer[ i] = EMPTY_VALUE; double a = iMA(NULL,0, FastEMA,0,MODE_EMA,PRICE_CLOSE, i+1); double s = iMA(NULL,0, SlowEMA,0,MODE_EMA,PRICE_CLOSE, i+1); double a1 = iMA(NULL,0, FastEMA,0,MODE_EMA,PRICE_CLOSE, i); double s1 = iMA(NULL,0, SlowEMA,0,MODE_EMA,PRICE_CLOSE, i); double d1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i)-50; //---- if( a< s && a1> s1 && d1>0) { BuyBuffer[ i] = Low[ i] - iATR(NULL, 0, 14, i); } if( a> s && a1< s1 && d1<0) { SellBuffer[ i] = High[ i] + iATR(NULL, 0, 14, i); } } return(0); } 现在看,这是一幅悲伤的画面。 比较一下。 虽然我可能是错的,当然,指标没有重新绘制,但请原谅我,也许你可以使用开盘价(特别是在RSI中),但不使用收盘价,这样信号就会出现在条形图上,它应该在那里=( [删除] 2009.05.15 18:03 #105 谢谢你的关心vtoroe_dyxanie))))我不写指标,它不根据我的观察重新绘制。我从下一个条形图的第一个刻度开始使用它,当时它已经锁定。这就是为什么我需要知道在第一个钩上的前一个条形上有什么。而它为什么要窃取未来呢?在我看来,在一个给定的tick上,如果有这样的匹配,它就给sigCurrent分配一个,在变量sigPrevious的末尾,它分配同样的sigCurrent。 sigPrevious=sigCurrent; 然后在下一个tick上,如果sigCurrent已经是2,而sigPrevious变量自然会将缓冲区填成1。 if (sigCurrent==1 && sigPrevious==2) { ExtMapBuffer4[i-1] = High[i-1]-5*Point; //ExtMapBuffer3[i] = Ask; entry=true; entry_point=Ask; } 而至于这个。 ExtMapBuffer3[i-1] 我自己也不太明白...... 但它似乎工作得很好,箭头在信号出现的条形上画出来了!这就是所谓的信号。 但当我去掉-1时,出现了很多惊喜( [删除] 2009.05.15 18:45 #106 skylord >> : 谢谢你的关心vtoroe_dyxanie))))我没有写这个指标,它没有根据我的观察重新绘制。我从下一个条形图的第一个刻度开始使用它,当时它已经锁定。这就是为什么我需要知道在第一个钩上的前一个条形上有什么。而它为什么要窃取未来?在我看来,在一个给定的tick上,如果有这样的匹配,它就给sigCurrent分配一个,在变量sigPrevious的末尾,它分配同样的sigCurrent。 sigPrevious=sigCurrent; 然后在下一个tick上,如果sigCurrent已经是2,而sigPrevious变量自然会将缓冲区填成1。 if (sigCurrent==1 && sigPrevious==2) { ExtMapBuffer4[i-1] = High[i-1]-5*Point; //ExtMapBuffer3[i] = Ask; entry=true; entry_point=Ask; } 而至于这个。 ExtMapBuffer3[i-1] 我自己也不太明白...... 但它似乎工作得很好,箭头在信号出现的条形上画出来了!这就是所谓的信号。 但当我去掉-1时,有很多惊喜(。 但它还有一个副作用。有时,当条件得到满足时,它会发出信号,但不会画出箭头。但当我再次把它放在图表上时,所有的箭头都会回到它们的位置。有没有办法让它再次在图表上 "编译",或再次更新其Befer? [删除] 2009.05.15 19:25 #107 skylord писал(а)>> 为什么它能偷走未来?如果有这样的匹配,它似乎会在给定的tick上给sigCurrent分配一个,并且在最后给sigPrevious变量分配相同的sigCurrent。 sigPrevious=sigCurrent; 然后在下一个tick上,如果sigCurrent已经是2,而sigPrevious变量自然会将缓冲区填成1。 if (sigCurrent==1 && sigPrevious==2) { ExtMapBuffer4[i-1] = High[i-1]-5*Point; //ExtMapBuffer3[i] = Ask; entry=true; entry_point=Ask; } 你真实的、不专心的我... 关于。"我从下一个条形图的第一个刻度开始使用它,当时它已经固定了。这就是为什么我需要在第一个刻度上知道前一个柱子上的情况。" 而我真的想知道,我们是否可以用 doubleiCustom( ....int shift) 全知的参考说 移位 - 从指标缓冲区获得的数值的索引(相对于当前条形图,向后移动指定的周期数)。 我想知道你是否可以这样写(我自己也想知道)。 for (i=0; i<limit;i++){ 如果(iCustom(NULL, 0, "sidus_v.2", 3, i+1)<0 && iCustom(NULL, 0, "sidus_v.2", 3,i)>0) .... 因为ooooopsie Wise论坛的用户很难屈尊于两个书呆子,让我自己去提高技能,因为它可能会派上用场。 [删除] 2009.05.15 19:32 #108 vtoroe_dyxanie писал(а)>> 诚然,我是不专心的......。 关于。"我从下一个条形图的第一个刻度开始使用,当时它已经被锁定。这就是为什么我需要在第一个刻度上知道前一个柱子的情况。" 而我真的想知道,我们是否可以用 doubleiCustom( ....int shift) 全知全能的帮助说 移位 - 从指标缓冲区获得的数值的索引(相对于当前条形图,向后移动指定的周期数)。 我想知道你是否可以这样写(我自己也想知道)。 for (i=0; i<limit;i++){ 如果(iCustom(NULL, 0, "sidus_v.2", 3,1)<0 && iCustom(NULL, 0, "sidus_v.2", 3,0)>0) .... 作为ooooovery智者论坛的参与者不太可能屈尊于这两个小家伙,让他们自己去提高技能,因为这可能会派上用场。 不可以 =( 废话,那么如何解决这个问题呢?好吧,既然你已经提出来了:https://www.mql5.com/ru/forum/117268,我们将继续关注它=) [删除] 2009.05.16 05:32 #109 vtoroe_dyxanie писал(а)>> 没有办法 =( 人,那么你如何解决这个问题呢?好吧,既然你已经开始了一个主题:"如何从EA中找出方向", 我们会继续关注的=) >>我将为公司做一些追踪工作!?) [删除] 2009.05.17 19:47 #110 vtoroe_dyxanie писал(а)>> 没有办法 =( 人,那么你如何解决这个问题呢?好吧,既然你已经开始了一个主题:"如何从EA中知道方向", 我们会继续关注的=) >> 嘿!记得我向你寻求帮助吗?如果不难,你能告诉我更多吗?你为我做的就是我现在写的(我想让指标在一个窗口中显示最接近的时间段),这是???? 附加的文件: test1.mq4 6 kb 1...456789101112131415161718...94 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。
我刚刚开始学习MQL,我正在尝试编写一个EA...
我想在sidus v.2指标的基础上写一个EA,我想让它在我指定的方向上开仓,只有当一个新的条形图诞生时,也就是说,在第一个刻度上,它应该检查信号是否在前一个条形图上,以及什么样的订单--有一个停止和一个采取。附上指标文件。
我没能找到这个信号((。
帮助,或者至少告诉我如何去做......
一个关于Sidus指标的专家顾问
也许这对你有帮助,或者搜索会有帮助!
或第二风!
感谢vvavva。我有一个很好的想法,但它跳过了,而且发出了很多的左信号,但这不是我所需要的(
我怎样才能问别人,如何向EA 申请前一棒的指标缓冲区的状态?
if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
else if (sigCurrent==2 &&sigPrevious==1)
{
ExtMapBuffer3[i-1] = Low[i-1]-5*Point;
//ExtMapBuffer4[i] = Bid;
entry=true;
entry_point=Bid;
}
一个EA需要这样的一个匹配条件
double Up;
double Down;
int res;
Up=iCustom(NULL, 0, "sidus_v.2", 3,1);
Down=iCustom(NULL,0, "sidus_v.2")",2,1);
//---- 卖出条件
if(Down==Low)
{
res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,",MAGICMA,0,Red);
return;
}
//---- 买入条件
if(Up==High)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0," ,MAGICMA,0,Blue);
return;
}
但这是不对的!!!。
请告知在这种情况下如何行动...
你好。
我在安静地交易,我使用4个诱因,阻力支撑线,趋势,等等,等等......我的眼睛在屏幕上坏了,你能帮我在箭头上插入声音信号吗(买入,卖出),同样的箭头在历史上也有虚线(重新切割过的)。
你好。
我刚刚开始学习MQL,我正在尝试编写一个EA...
我想在sidus v.2指标的基础上写一个EA,我想让它在我指定的方向上开仓,只有当一个新的条形图诞生时,也就是说,在第一个刻度上,它应该检查信号是否在前一个条形图上,以及什么样的订单--有一个停止和一个采取。附上指标文件。
我没能找到这个信号((。
帮助,或者至少告诉我如何去做......
你好,刚刚用我的眼睛运行了代码,对不起,我是个糟糕的蹩脚的人,当然我可能是错的,但指标是否超额完成?让我们试着从逻辑上思考
从零条数到历史上的所有条数,增加计数器。
这里的一切都很清楚。
去他妈的MACDAK。
如果macdac大于0,RSI大于50,则sig为1,如果小于,则为2。
到目前为止,一切都很好。
这里我不明白......如果macdak是正的,RSI大于50,macdak是负的,RSI小于50......因为在下面的代码中有一个条件
那么我们就可以把它们等同起来...
和偷窃未来是一个坏主意......
不,让我们用这个来代替它,或者说完全修改它,因为我们已经知道了这个逻辑。
现在看,这是一幅悲伤的画面。 比较一下。
虽然我可能是错的,当然,指标没有重新绘制,但请原谅我,也许你可以使用开盘价(特别是在RSI中),但不使用收盘价,这样信号就会出现在条形图上,它应该在那里=(
谢谢你的关心vtoroe_dyxanie))))我不写指标,它不根据我的观察重新绘制。我从下一个条形图的第一个刻度开始使用它,当时它已经锁定。这就是为什么我需要知道在第一个钩上的前一个条形上有什么。而它为什么要窃取未来呢?在我看来,在一个给定的tick上,如果有这样的匹配,它就给sigCurrent分配一个,在变量sigPrevious的末尾,它分配同样的sigCurrent。
sigPrevious=sigCurrent;
然后在下一个tick上,如果sigCurrent已经是2,而sigPrevious变量自然会将缓冲区填成1。
if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
而至于这个。
ExtMapBuffer3[i-1]
我自己也不太明白......
但它似乎工作得很好,箭头在信号出现的条形上画出来了!这就是所谓的信号。
但当我去掉-1时,出现了很多惊喜(
谢谢你的关心vtoroe_dyxanie))))我没有写这个指标,它没有根据我的观察重新绘制。我从下一个条形图的第一个刻度开始使用它,当时它已经锁定。这就是为什么我需要知道在第一个钩上的前一个条形上有什么。而它为什么要窃取未来?在我看来,在一个给定的tick上,如果有这样的匹配,它就给sigCurrent分配一个,在变量sigPrevious的末尾,它分配同样的sigCurrent。
sigPrevious=sigCurrent;
然后在下一个tick上,如果sigCurrent已经是2,而sigPrevious变量自然会将缓冲区填成1。
if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
而至于这个。
ExtMapBuffer3[i-1]
我自己也不太明白......
但它似乎工作得很好,箭头在信号出现的条形上画出来了!这就是所谓的信号。
但当我去掉-1时,有很多惊喜(
。
但它还有一个副作用。有时,当条件得到满足时,它会发出信号,但不会画出箭头。但当我再次把它放在图表上时,所有的箭头都会回到它们的位置。有没有办法让它再次在图表上 "编译",或再次更新其Befer?
为什么它能偷走未来?如果有这样的匹配,它似乎会在给定的tick上给sigCurrent分配一个,并且在最后给sigPrevious变量分配相同的sigCurrent。
sigPrevious=sigCurrent;
然后在下一个tick上,如果sigCurrent已经是2,而sigPrevious变量自然会将缓冲区填成1。
if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
你真实的、不专心的我...
关于。"我从下一个条形图的第一个刻度开始使用它,当时它已经固定了。这就是为什么我需要在第一个刻度上知道前一个柱子上的情况。" 而我真的想知道,我们是否可以用
全知的参考说
我想知道你是否可以这样写(我自己也想知道)。
for (i=0; i<limit;i++){
如果(iCustom(NULL, 0, "sidus_v.2", 3, i+1)<0 && iCustom(NULL, 0, "sidus_v.2", 3,i)>0)
....
因为ooooopsie Wise论坛的用户很难屈尊于两个书呆子,让我自己去提高技能,因为它可能会派上用场。
诚然,我是不专心的......。
关于。"我从下一个条形图的第一个刻度开始使用,当时它已经被锁定。这就是为什么我需要在第一个刻度上知道前一个柱子的情况。" 而我真的想知道,我们是否可以用
全知全能的帮助说
我想知道你是否可以这样写(我自己也想知道)。
for (i=0; i<limit;i++){
如果(iCustom(NULL, 0, "sidus_v.2", 3,1)<0 && iCustom(NULL, 0, "sidus_v.2", 3,0)>0)
....
作为ooooovery智者论坛的参与者不太可能屈尊于这两个小家伙,让他们自己去提高技能,因为这可能会派上用场。
不可以 =(
废话,那么如何解决这个问题呢?好吧,既然你已经提出来了:https://www.mql5.com/ru/forum/117268,我们将继续关注它=)
没有办法 =(
人,那么你如何解决这个问题呢?好吧,既然你已经开始了一个主题:"如何从EA中找出方向", 我们会继续关注的=)
>>我将为公司做一些追踪工作!?)
没有办法 =(
人,那么你如何解决这个问题呢?好吧,既然你已经开始了一个主题:"如何从EA中知道方向", 我们会继续关注的=)
>> 嘿!记得我向你寻求帮助吗?如果不难,你能告诉我更多吗?你为我做的就是我现在写的(我想让指标在一个窗口中显示最接近的时间段),这是????