[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 304 1...297298299300301302303304305306307308309310311...652 新评论 costy_ 2011.10.30 11:09 #3031 pigvin: 问题是,EA不断地重新打开订单,即有一个买入信号--它打开了一个订单,然后在盈利时关闭了它,而条件仍然保留,它又打开了它。 我以为可以用传统的买入和卖出计数器来解决这个问题--如果买入订单打开后,计数器+1,在计数器高于0之前不能打开新的买入,只有在卖出后计数器才会重置。 也就是说,有一栏是有信号的,但已经被使用了? 你可以这样做 datetime save_time; int tf=0; старт ... if(total<1)//проверка количества ордеров { if(save_time!=iTime(0,tf, iBarShift(0,tf,Time[0]))) save_time =iTime(0,tf, iBarShift(0,tf,Time[0])); else return; ... if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("открыта позиция BUY : ",OrderOpenPrice()); else Print("Ошибка при открытии BUY позиции : ",GetLastError()); }else{ save_time =0;}// так как ошибка запретим ретурн (см. выше) costy_ 2011.10.30 11:14 #3032 Operr: 像这样试试吧。 if (OrderOpenTime()+2*1440*60 > Time[0]) //т.е. последнее время текушего графика а не локальное 它应该是双向的。 这对我来说更有意义。 if (Time[0]-OrderOpenTime() >= 2*1440*60 ) Вячеслав 2011.10.30 11:43 #3033 大家好! 对不起,离题了,这个话题有需求,所以我才在这里写,你能给我一个提示吗?卡住了。 如何只用基本的操作(+-*/%),对一个实数进行指数化(包括实数)?例如,风力计算器,当应用于1.2的功率时,给出的结果是1.2445647472073939777218169154111826。对算法感兴趣,语言并不重要,任何。我将亲自翻译。 ZS.有多少编程测试我没有做过,我第一次看到这样的问题,尽管它对某人来说可能是微不足道的? [Удален] 2011.10.30 12:35 #3034 大家下午好! 我搜索了很多论坛和谷歌 文章,但没有找到答案。 我决定编写一个EA,在М1上进行两个相反的订单交易。 这个想法很简单:把两个相反的订单与小的TP,然后,当其中一个为第二个激活的定时器的TP是条数(例如5),它将是临时SL。计算结果是,如果货币将向同一方向移动,当第二单触发临时SL时,损失将是最小的,但如果图表转向,我们在两个位置上是黑色的。 我 不知道如何写一个"当其中一个TP触发时,第二个TP的定时器会以一定的条数打开 " 的代码片段。 我目前只有一个同时下两个订单的计时器,但我不能从中得到什么。 PS一个多月都解决不了这个问题,请大家帮忙指点迷津或编码:) 这里是顾问的代码 extern int SL=100; extern int TP=100; extern double StartLot=0.1; extern double StopLot=1.0; extern int bar_time=20; double Lot() { double lt; if(OrdersHistoryTotal()==0) return (StartLot); if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)) { if(OrderProfit()<0) { lt=OrderLots()*2; if(lt>StopLot) return (StartLot); else return (lt); } else return (StartLot); } else return (StartLot); } int start() { double lot; if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False) { int order; { lot=Lot(); order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green); order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green); } } //вот здесь должно быть что-то что является решением проблемы и связующим звеном { int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ; if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; } if ( bars >= bar_time ) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White); } return(0); } 预先感谢 [ARCHIVE] Any rookie question, [存档!]我将免费撰写任何专家或指标。 EA: Lucky [Удален] 2011.10.30 12:59 #3035 不是在一个柱子上!原则上,在没有出现反转或市场动荡的信号之前,我们不应该在这种趋势中开盘!在这种情况下,我们应该有更多的机会。 costy_: 也就是说,有一栏是有信号的,但已经被使用了? 你可以这样做 Всеволод 2011.10.30 14:52 #3036 snail09: 大家好! 对不起,离题了,这个话题有需求,所以我才在这里写,你能给我一个提示吗?卡住了。 如何只用基本的操作(+-*/%),对一个实数进行指数化(包括实数)?例如,风力计算器,当应用于1.2的功率时,给出的结果是1.2445647472073939777218169154111826。对算法感兴趣,语言并不重要,任何。我将亲自翻译。 ZS.有多少编程测试我没有做过,这是我第一次看到这样的问题,虽然对有些人来说可能是微不足道的? https://docs.mql4.com/ru/math/MathPow 不?或者说初级运算是问题的一个条件。那么选项http://bpascal.ru/download/desc/436.php,如果你用手做所有事情,那么用自己的函数实现指数和对数。 Александр 2011.10.30 16:26 #3037 индикаторcosty_: 你用while(i>=0),所以当一个新的蜡烛出现时i=1(以确保前一个蜡烛的数据在固定数据上计算一次)。为什么输入some_time=D'1971.01.11 00:00';使用Bars, IndicatorCounted对我不起作用(好吧,错误可能是由于first_t_bar)。你的算法,你应该修复它。"我是编程新手。"我是2007年以来的编程新手)。 同样,我不明白为什么我的设计工作得很好,而标准的设计却不行。some_time=D'1971.01.11 00:00'; 这里是在启动时使用一次。但这与此无关,因为它在一种情况下有效,在另一种情况下无效。我以后会重新制作这个指标。这是另一个指标的修改版。谢谢你的答复 Artyom Trishkin 2011.10.30 17:20 #3038 Sonne:大家下午好!我搜索了很多论坛和谷歌 文章,但没有找到答案。我决定编写一个EA,在М1上进行两个相反的订单交易。 这个想法很简单:把两个相反的订单与小的TP,然后,当其中一个为第二个激活的定时器的TP是条数(例如5),它将是临时SL。计算结果是,如果货币将向同一方向移动,当第二单触发临时SL时,损失将是最小的,但如果图表转向,我们在两个位置上是黑色的。我 不知道如何写一个"当其中一个TP触发时,第二个TP的定时器会以一定的条数打开 " 的代码片段。我目前只有一个同时下两个订单的计时器,但我不能从中得到什么。PS 我已经有一个月没有解决这个问题了,请帮我提供建议或代码:)这里是代码 ................................................预先谢谢你1.如果有一个封闭的位置,在塔基... 1.1 如果其类型为OP_BUY,... 1.1.2 如果有一个开放的位置OP_SELL,... 1.1.3 如果当前柱子的时间减去打开卖出位置的柱子的时间,大于或等于延迟的柱子 数,....。 1.1.4 我们关闭卖出头寸 1.2 如果其类型为OP_SELL,... 1.2.2 如果有一个开放的位置OP_BUY,...。 1.2.3 如果当前条形的时间减去买入头寸的时间,大于或等于要保持的条形数量,....。 1.2.4 关闭买入位置 Sergey Diubakin 2011.10.30 17:32 #3039 你好,请问哪里可以得到正常的故事(无孔),MT5的分钟故事是否适用于MT4? [删除] 2011.10.30 18:22 #3040 大家晚上好,我为之前的愚蠢问题道歉) 我想知道是否有可能在EA中存在一个变量,例如 "A",在此刻被赋予一个价格值并进行交易。如果我们想把这个值改为任何历史值,例如,取任何月度值,从历史分析中得出所需的值。我试图在策略测试器中 做到这一点,但我对其正确性有很多疑问。还是我必须重做,用数组工作!?谢谢大家。 p.s. 我想知道,因为我在MQL手册和教程中没有找到它。 1...297298299300301302303304305306307308309310311...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
问题是,EA不断地重新打开订单,即有一个买入信号--它打开了一个订单,然后在盈利时关闭了它,而条件仍然保留,它又打开了它。
我以为可以用传统的买入和卖出计数器来解决这个问题--如果买入订单打开后,计数器+1,在计数器高于0之前不能打开新的买入,只有在卖出后计数器才会重置。
也就是说,有一栏是有信号的,但已经被使用了?
你可以这样做
像这样试试吧。
它应该是双向的。
这对我来说更有意义。
大家好!
对不起,离题了,这个话题有需求,所以我才在这里写,你能给我一个提示吗?卡住了。
如何只用基本的操作(+-*/%),对一个实数进行指数化(包括实数)?例如,风力计算器,当应用于1.2的功率时,给出的结果是1.2445647472073939777218169154111826。对算法感兴趣,语言并不重要,任何。我将亲自翻译。
ZS.有多少编程测试我没有做过,我第一次看到这样的问题,尽管它对某人来说可能是微不足道的?
大家下午好!
我搜索了很多论坛和谷歌 文章,但没有找到答案。
我决定编写一个EA,在М1上进行两个相反的订单交易。
这个想法很简单:把两个相反的订单与小的TP,然后,当其中一个为第二个激活的定时器的TP是条数(例如5),它将是临时SL。计算结果是,如果货币将向同一方向移动,当第二单触发临时SL时,损失将是最小的,但如果图表转向,我们在两个位置上是黑色的。
我 不知道如何写一个"当其中一个TP触发时,第二个TP的定时器会以一定的条数打开 " 的代码片段。
我目前只有一个同时下两个订单的计时器,但我不能从中得到什么。
PS一个多月都解决不了这个问题,请大家帮忙指点迷津或编码:)
这里是顾问的代码
extern int SL=100;
extern int TP=100;
extern double StartLot=0.1;
extern double StopLot=1.0;
extern int bar_time=20;
double Lot()
{
double lt;
if(OrdersHistoryTotal()==0) return (StartLot);
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()<0)
{
lt=OrderLots()*2;
if(lt>StopLot) return (StartLot);
else return (lt);
}
else
return (StartLot);
}
else
return (StartLot);
}
int start()
{
double lot;
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
{
int order;
{
lot=Lot();
order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);
}
}
//вот здесь должно быть что-то что является решением проблемы и связующим звеном
{
int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;
if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }
if ( bars >= bar_time )
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);
}
return(0);
}
预先感谢
也就是说,有一栏是有信号的,但已经被使用了?
你可以这样做
大家好!
对不起,离题了,这个话题有需求,所以我才在这里写,你能给我一个提示吗?卡住了。
如何只用基本的操作(+-*/%),对一个实数进行指数化(包括实数)?例如,风力计算器,当应用于1.2的功率时,给出的结果是1.2445647472073939777218169154111826。对算法感兴趣,语言并不重要,任何。我将亲自翻译。
ZS.有多少编程测试我没有做过,这是我第一次看到这样的问题,虽然对有些人来说可能是微不足道的?
https://docs.mql4.com/ru/math/MathPow 不?或者说初级运算是问题的一个条件。那么选项http://bpascal.ru/download/desc/436.php,如果你用手做所有事情,那么用自己的函数实现指数和对数。
你用while(i>=0),所以当一个新的蜡烛出现时i=1(以确保前一个蜡烛的数据在固定数据上计算一次)。
为什么输入some_time=D'1971.01.11 00:00';使用Bars, IndicatorCounted对我不起作用(好吧,错误可能是由于first_t_bar)。
你的算法,你应该修复它。
"我是编程新手。"我是2007年以来的编程新手)。
同样,我不明白为什么我的设计工作得很好,而标准的设计却不行。some_time=D'1971.01.11 00:00'; 这里是在启动时使用一次。但这与此无关,因为它在一种情况下有效,在另一种情况下无效。我以后会重新制作这个指标。这是另一个指标的修改版。谢谢你的答复
大家下午好!
我搜索了很多论坛和谷歌 文章,但没有找到答案。
我决定编写一个EA,在М1上进行两个相反的订单交易。
这个想法很简单:把两个相反的订单与小的TP,然后,当其中一个为第二个激活的定时器的TP是条数(例如5),它将是临时SL。计算结果是,如果货币将向同一方向移动,当第二单触发临时SL时,损失将是最小的,但如果图表转向,我们在两个位置上是黑色的。
我 不知道如何写一个"当其中一个TP触发时,第二个TP的定时器会以一定的条数打开 " 的代码片段。
我目前只有一个同时下两个订单的计时器,但我不能从中得到什么。
PS 我已经有一个月没有解决这个问题了,请帮我提供建议或代码:)
这里是代码
................................................
预先谢谢你
1.如果有一个封闭的位置,在塔基...
1.1 如果其类型为OP_BUY,...
1.1.2 如果有一个开放的位置OP_SELL,...
1.1.3 如果当前柱子的时间减去打开卖出位置的柱子的时间,大于或等于延迟的柱子 数,....。
1.1.4 我们关闭卖出头寸
1.2 如果其类型为OP_SELL,...
1.2.2 如果有一个开放的位置OP_BUY,...。
1.2.3 如果当前条形的时间减去买入头寸的时间,大于或等于要保持的条形数量,....。
1.2.4 关闭买入位置
大家晚上好,我为之前的愚蠢问题道歉)
我想知道是否有可能在EA中存在一个变量,例如 "A",在此刻被赋予一个价格值并进行交易。如果我们想把这个值改为任何历史值,例如,取任何月度值,从历史分析中得出所需的值。我试图在策略测试器中 做到这一点,但我对其正确性有很多疑问。还是我必须重做,用数组工作!?谢谢大家。
p.s. 我想知道,因为我在MQL手册和教程中没有找到它。