如何编码? - 页 210 1...203204205206207208209210211212213214215216217...347 新评论 sunshineh 2009.10.16 04:35 #2091 非常感谢!!!cockeyedcowboy,这真的很好!!。 现在错误信息已经消失了! 但是第二个指标没有被画出来,我不知道为什么 Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i)。 kossh 2009.10.16 05:10 #2092 你的第二个缓冲区有问题,因为它没有数据用于计算。 试着计算Buffer_Mom中的所有元素,然后是Buffer_Ma。 例子。 void start() { int counted_bars=IndicatorCounted(); int limit=Bars-counted_bars; if(counted_bars>0) limit++; for(int i=0; i<limit; i++) { Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i); } for( i=0; i<limit; i++) { Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i); } return(0); } 祝您好运。 Sadly 2009.10.18 20:08 #2093 寻找特定条形图的OHLC 谁能告诉我如何使用MQL代码找出一个特定条形的收盘价? 我可以通过它的时间来引用一个酒吧吗? 即:closing_price_of_bar = Close("04:59:00 AM") ......如果有这么简单就好了! 谢谢你 drhouse7 2009.10.18 20:27 #2094 大家好! 好吧,我有另一个大问题... 如何对这个条件进行编码。 只在第一时间输入多头或空头 (所以,如果我有许多如下的多头信号,EA只在第一时间输入)。 我希望大家能帮我解决这个问题。 这是我买入条件的简单代码。 //Buy if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (1000 * 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); } } 买/卖EA和指标 Experts: exad... 编码帮助 Roger09 2009.10.18 21:27 #2095 Sadly: 谁能告诉我,我如何使用MQL代码找出一个特定的酒吧的收盘价?我可以通过它的时间来引用一个酒吧吗? 即:closing_price_of_bar = Close("04:59:00 AM") ......如果有这么简单就好了! 谢谢你 试试这个。 closing_price_of_bar =iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59") )。 sparow21 2009.10.19 01:33 #2096 买或卖 大家好。 我有一个买入EA和卖出EA,它们总是开着一个以上的头寸。我希望得到一些帮助,如何改变或修改代码,只允许在一个(一个)账户内有一个(一个)买入头寸和一个(一个)卖出头寸。 SL和TP将使用价格目标,即如果买入价格达到价格目标,它将关闭该头寸。卖出价格也是如此。 我很感谢本论坛中的代码专家的帮助。 谢谢你。 =s21= 附加的文件: opensell.mq4 2 kb sparow21 2009.10.19 01:36 #2097 买和卖 呜呼... 这里是买入EA。 附加的文件: openbuy.mq4 2 kb Avalanche2k 2009.10.19 04:38 #2098 你好,如果你需要只开一个订单,你可以直接添加下一个条件。如果(OrdersTotal()==0)。 所以你的买入订单的规则将是这样的。 if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) [/CODE] So you will not get second-third-... orders opened until you current order open. dr.house7: hy folks ! ok i have another big problem... how to code this condition : enter long or short only first time (so if i have many following long signal ea enter only at first time) i'll pay everyone could help me on this this is my simple code for buy condition: [CODE] //Buy if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (1000 * 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); } } Sadly 2009.10.19 05:19 #2099 Roger09: 试试这个: closing_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59") )。 很好! 我不得不多加了一个小括号,以阻止解释器报错,但效果很好。 谢谢你,Roger09 drhouse7 2009.10.19 08:06 #2100 Avalanche2k: 你好,如果你需要只开一个订单,你可以添加下一个条件。如果(OrdersTotal()==0)。因此,你们的买单规则将是这样的。 if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) 这样你就不会得到第二-第三-......个订单,直到你当前的订单打开。 谢谢Avalanche。 但这对我来说不是一个解决方案,因为我有一个TP,我不会等到相反的条件。 其他想法?请给我发邮件,我将支付给你 1...203204205206207208209210211212213214215216217...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
非常感谢!!!cockeyedcowboy,这真的很好!!。
现在错误信息已经消失了!
但是第二个指标没有被画出来,我不知道为什么
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i)。
你的第二个缓冲区有问题,因为它没有数据用于计算。
试着计算Buffer_Mom中的所有元素,然后是Buffer_Ma。
例子。
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(int i=0; i<limit; i++)
{
Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);
}
for( i=0; i<limit; i++)
{
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
}
return(0);
}祝您好运。
寻找特定条形图的OHLC
谁能告诉我如何使用MQL代码找出一个特定条形的收盘价? 我可以通过它的时间来引用一个酒吧吗?
即:closing_price_of_bar = Close("04:59:00 AM") ......如果有这么简单就好了!
谢谢你
大家好!
好吧,我有另一个大问题...
如何对这个条件进行编码。
只在第一时间输入多头或空头
(所以,如果我有许多如下的多头信号,EA只在第一时间输入)。
我希望大家能帮我解决这个问题。
这是我买入条件的简单代码。
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * 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);
}
}谁能告诉我,我如何使用MQL代码找出一个特定的酒吧的收盘价?我可以通过它的时间来引用一个酒吧吗?
即:closing_price_of_bar = Close("04:59:00 AM") ......如果有这么简单就好了!
谢谢你试试这个。
closing_price_of_bar =iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59") )。
买或卖
大家好。
我有一个买入EA和卖出EA,它们总是开着一个以上的头寸。我希望得到一些帮助,如何改变或修改代码,只允许在一个(一个)账户内有一个(一个)买入头寸和一个(一个)卖出头寸。
SL和TP将使用价格目标,即如果买入价格达到价格目标,它将关闭该头寸。卖出价格也是如此。
我很感谢本论坛中的代码专家的帮助。
谢谢你。
=s21=
买和卖
呜呼...
这里是买入EA。
你好,如果你需要只开一个订单,你可以直接添加下一个条件。如果(OrdersTotal()==0)。
所以你的买入订单的规则将是这样的。
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
[/CODE]
So you will not get second-third-... orders opened until you current order open.
hy folks !
ok i have another big problem...
how to code this condition :
enter long or short only first time
(so if i have many following long signal ea enter only at first time)
i'll pay everyone could help me on this
this is my simple code for buy condition:
[CODE]
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * 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);
}
}试试这个: closing_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59") )。
很好! 我不得不多加了一个小括号,以阻止解释器报错,但效果很好。
谢谢你,Roger09
你好,如果你需要只开一个订单,你可以添加下一个条件。如果(OrdersTotal()==0)。
因此,你们的买单规则将是这样的。
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
谢谢Avalanche。
但这对我来说不是一个解决方案,因为我有一个TP,我不会等到相反的条件。
其他想法?请给我发邮件,我将支付给你