编码帮助 - 页 13 1...67891011121314151617181920...786 新评论 [删除] 2011.07.20 22:49 #121 快速修改EA 你好。 需要一些帮助,我试着修改下面的代码,但EA一直让MT4崩溃。 我希望订单在当前条形图(即执行订单的条形图)收盘时关闭。基本上是交易一个柱子。 这是原来的代码,它从信号到信号进行交易。 //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY; //+------------------------------------------------------------------+ //| Signal End(Exit Buy) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderOpenPrice() > Point * TrailingStop) { if(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); if (!EachTickMode) BarCount = Bars; continue; } } } } else { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Sell) | //+------------------------------------------------------------------+ if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL; //+------------------------------------------------------------------+ //| Signal End(Exit Sell) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } //+------------------------------------------------------------------+ //| Signal Begin(Entry) | //+------------------------------------------------------------------+ //if (timeprev!=Time[0]){ // timeprev = Time[0]; if (signalup!=EMPTY_VALUE&&signalup!=0) { Order = SIGNAL_BUY; } if (signaldown!=EMPTY_VALUE&&signaldown!=0){ Order = SIGNAL_SELL; } // } //+------------------------------------------------------------------+ //| Signal End | //+------------------------------------------------------------------+ //Buy if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (100 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else { Print("Error opening BUY order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } //Sell if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (100 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else { Print("Error opening SELL order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } if (!EachTickMode) BarCount = Bars; return(0); } //+------------------------------------------------------------------+ 谁能帮帮我? 如何编码? 问吧! Coding help slavko1969 2011.08.12 12:09 #122 请帮助!!!!! 我需要一个EA来做以下事情 在一定时间内设置4个买入或卖出订单 功能。 订单开放时间(变量00-24) 订单1卖出或买入很多(0.01 .0,02...1) TP (+ xx pips from oppen) SL (- xx pips from open) order2 卖出或买入一手 (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) order3 卖出或买入一手 (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) order4 卖出或买入一手 (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) 谢谢 Coding help Help with VERY simple Auto trading everyday sando4x 2011.08.18 21:37 #123 需要在我的EA中添加一个代码,以便在某些价格水平上禁用它 你好。 我需要在我的EA中添加一个代码,以便在特定的价格水平上禁用和启用它。 我搜索了一下,发现我可以通过以下方式实现 # iclude<WinUser32mqh extern bool Disable Ea = true // 从X(examply1.4420)到Y(examply1.4380),从Z(examply1.4480)到N(examply1.4520)// extern bool Enable Ea = true // 从R(examply -1.4420)到T(examply -1.4480) 请帮助我把这些条件翻译成代码,这样我就可以在EA的对话框里输入禁用/启用EA的价格水平了。 sando4x 2011.08.20 00:40 #124 经过一些搜索和研究,我发现在EA的启动功能 中写一个代码可以在某些条件下启动它。 所以我在专家启动函数中写了以下内容。 if(PRICE_MEDIAN (SellLevel-Point*BufferPips)) 返回 (0) ------------------------------------------------------------------------------------------------------------------ 我把BufferPips加到了extern double中,所以在对话框中我可以改变它的值。 我不知道PRICE_MEDIAN是否是一个好的选择。 我得到了编译错误--不平衡的左括号。 希望得到帮助 mario86 2011.09.14 10:48 #125 帮助我进行自动交易 你好,Guru先生! 我有自动交易,但它没有运行,请帮助我! 附加的文件: auto_me.mq4 4 kb mikhail 2011.10.07 12:44 #126 你好,马里奥。 我认为这个条件if(current_shortEma == current_longEma)绝不是真的。 绝不是真的。通常情况下,为了检测一个交叉点,你需要这样做 如果(current_shortEma > current_longEma && last_shortEma < last_longEma){ //从底部交叉 } 如果(current_shortEma last_longEma){ //从上而下 } 更详细的信息在这里。 https://www.mql5.com/en/forum/trading_systems 谢谢 米哈伊尔 xx3xxx 2011.10.07 20:39 #127 我也有一个编码请求 ---- 需要一个编码员(非常简单的任务)。 我们知道HA -- henki ashi很少会出错 在盘整期间,或几乎是转折,它将变得越来越短。 而当趋势仍然强劲时,该条的HA将是长的。 因此 如果我们有一个指标来告诉我们趋势的强度,那会不会很好? 这个想法很简单 --- 首先,任何一个HA都可以(我只附上我的ex4,但必须找到一个MQ4--HA),并对其进行修改(我想这是很简单的任务)。 只有两种颜色的HA,一种是蓝色*上---- + ----,一种是粉色/紫色*下 -- 第二,当HA必须在图表中画出HA的东西时,有LENGTH -- 该HA的长度 --- 第三,当它接近U-turn时,HA条会越来越短。 让我们假设,当HA条的长度(通过试验和错误)短于0.4厘米时,我们就把它画成黑色(即不是蓝色/粉色)。 它将警告我们不要进入并很快退出。 这样一来,我们只需根据HA的趋势强度进入(不用担心)--就像我的其他想法一样,非常简单,非常有帮助。 编码者 -- 请不要使用我附上的ex4,只需在论坛上点击[SEARCH],输入henki ashi,搜索一些带有所有代码的MQ4 ------ 当你完成后,或在你把它改为3至4色后(可能是3色,而不是4色)。 请给我发一个PM私信,并附上链接,这样我就可以上传,在你开始之后,如果你愿意,我可以给你另一个指标,告诉你什么是最好的时机来改变颜色为黑色 -- 黑色是一种警告的颜色 -----,也就是说,你可以下载我所附的ex4,但要用另一个MQ4,也就是------。 谢谢,这对我们所有人来说都是一个很好的指标,而且编码应该很简单,很直接。 代码在开头,与上图类似。 如果我的猜测是正确的,g_ibuf_##控制HA条的长度。 我们只需用名为 "comment "的函数打印出所有的g_ibuf值。 然后运行图表几天,看看g_ibuf的值,当它变小的时候,注意该变量的VALUE。 然后,当我们有一个时间段需要编码时,我们只需在编码中加入1到2种颜色 -- 比方说,黑色和深灰色,当直方图中的g_ibuf小于某个注意到的值时 所以,这应该是很简单的 -- 否则,可以通过尝试和错误来找到最合适的值(小于)。 诚然 xx3xxx -- 我在那里上传了我的MQ4的第四版,我想你可以使用这个,这个似乎比我的其他HA更长更厚。 附加的文件: 4x_2011_xard_ha-alert_v4.mq4 4 kb jake8055 2011.10.16 14:00 #128 William Snyder 2011.10.16 22:17 #129 附加的文件: lsma_nrp.mq4 5 kb chuckee 2011.10.20 18:51 #130 特里克斯指标需要警报 Coder Guru或其他任何人,你能不能在这个Trix指标中设置声音、通知警报和t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e 邮件警报,只要长期或短期Trix线的颜色从红色变为绿色,反之亦然。谢谢 附加的文件: t3_trix_x2roc_clr_nrp_mtf.mq4 9 kb 1...67891011121314151617181920...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
快速修改EA
你好。
需要一些帮助,我试着修改下面的代码,但EA一直让MT4崩溃。
我希望订单在当前条形图(即执行订单的条形图)收盘时关闭。基本上是交易一个柱子。
这是原来的代码,它从信号到信号进行交易。
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
//if (timeprev!=Time[0]){
// timeprev = Time[0];
if (signalup!=EMPTY_VALUE&&signalup!=0)
{
Order = SIGNAL_BUY;
}
if (signaldown!=EMPTY_VALUE&&signaldown!=0){
Order = SIGNAL_SELL;
}
// }
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+谁能帮帮我?
请帮助!!!!!
我需要一个EA来做以下事情
在一定时间内设置4个买入或卖出订单
功能。
订单开放时间(变量00-24)
订单1卖出或买入很多(0.01 .0,02...1) TP (+ xx pips from oppen) SL (- xx pips from open)
order2 卖出或买入一手 (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
order3 卖出或买入一手 (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
order4 卖出或买入一手 (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
谢谢
需要在我的EA中添加一个代码,以便在某些价格水平上禁用它
你好。
我需要在我的EA中添加一个代码,以便在特定的价格水平上禁用和启用它。
我搜索了一下,发现我可以通过以下方式实现
# iclude<WinUser32mqh
extern bool Disable Ea = true // 从X(examply1.4420)到Y(examply1.4380),从Z(examply1.4480)到N(examply1.4520)//
extern bool Enable Ea = true // 从R(examply -1.4420)到T(examply -1.4480)
请帮助我把这些条件翻译成代码,这样我就可以在EA的对话框里输入禁用/启用EA的价格水平了。
经过一些搜索和研究,我发现在EA的启动功能 中写一个代码可以在某些条件下启动它。
所以我在专家启动函数中写了以下内容。
if(PRICE_MEDIAN (SellLevel-Point*BufferPips))
返回 (0)
------------------------------------------------------------------------------------------------------------------
我把BufferPips加到了extern double中,所以在对话框中我可以改变它的值。
我不知道PRICE_MEDIAN是否是一个好的选择。
我得到了编译错误--不平衡的左括号。
希望得到帮助
帮助我进行自动交易
你好,Guru先生!
我有自动交易,但它没有运行,请帮助我!
你好,马里奥。
我认为这个条件if(current_shortEma == current_longEma)绝不是真的。
绝不是真的。通常情况下,为了检测一个交叉点,你需要这样做
如果(current_shortEma > current_longEma && last_shortEma < last_longEma){
//从底部交叉
}
如果(current_shortEma last_longEma){
//从上而下
}
更详细的信息在这里。
https://www.mql5.com/en/forum/trading_systems
谢谢
米哈伊尔
我也有一个编码请求 ---- 需要一个编码员(非常简单的任务)。
我们知道HA -- henki ashi很少会出错
在盘整期间,或几乎是转折,它将变得越来越短。
而当趋势仍然强劲时,该条的HA将是长的。
因此
如果我们有一个指标来告诉我们趋势的强度,那会不会很好?
这个想法很简单
--- 首先,任何一个HA都可以(我只附上我的ex4,但必须找到一个MQ4--HA),并对其进行修改(我想这是很简单的任务)。
只有两种颜色的HA,一种是蓝色*上---- + ----,一种是粉色/紫色*下
-- 第二,当HA必须在图表中画出HA的东西时,有LENGTH -- 该HA的长度
--- 第三,当它接近U-turn时,HA条会越来越短。
让我们假设,当HA条的长度(通过试验和错误)短于0.4厘米时,我们就把它画成黑色(即不是蓝色/粉色)。
它将警告我们不要进入并很快退出。
这样一来,我们只需根据HA的趋势强度进入(不用担心)--就像我的其他想法一样,非常简单,非常有帮助。
编码者 -- 请不要使用我附上的ex4,只需在论坛上点击[SEARCH],输入henki ashi,搜索一些带有所有代码的MQ4
------
当你完成后,或在你把它改为3至4色后(可能是3色,而不是4色)。
请给我发一个PM私信,并附上链接,这样我就可以上传,在你开始之后,如果你愿意,我可以给你另一个指标,告诉你什么是最好的时机来改变颜色为黑色 -- 黑色是一种警告的颜色
-----,也就是说,你可以下载我所附的ex4,但要用另一个MQ4,也就是------。
谢谢,这对我们所有人来说都是一个很好的指标,而且编码应该很简单,很直接。
代码在开头,与上图类似。
如果我的猜测是正确的,g_ibuf_##控制HA条的长度。
我们只需用名为 "comment "的函数打印出所有的g_ibuf值。
然后运行图表几天,看看g_ibuf的值,当它变小的时候,注意该变量的VALUE。
然后,当我们有一个时间段需要编码时,我们只需在编码中加入1到2种颜色 -- 比方说,黑色和深灰色,当直方图中的g_ibuf小于某个注意到的值时
所以,这应该是很简单的 -- 否则,可以通过尝试和错误来找到最合适的值(小于)。
诚然
xx3xxx -- 我在那里上传了我的MQ4的第四版,我想你可以使用这个,这个似乎比我的其他HA更长更厚。
特里克斯指标需要警报
Coder Guru或其他任何人,你能不能在这个Trix指标中设置声音、通知警报和t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e 邮件警报,只要长期或短期Trix线的颜色从红色变为绿色,反之亦然。谢谢