如何编码? - 页 202 1...195196197198199200201202203204205206207208209...347 新评论 Kale 2009.08.31 04:02 #2011 asgard2: 你好。我无法编译它,因为有一个不平衡的括号错误,谁能告诉我为什么这些括号不平衡? 谢谢 如果你得到这个错误,那么你就缺少了[或{或()]中的一个。 可能在你的代码中的某个地方,有一个函数你放了太多的{[( 我检查了你的部分代码,发现了一些错误。试试这个。 if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order { int hstTotal=OrdersHistoryTotal(); for(i=0;i<hstTotal;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false) { Print("Access to history failed ("+GetLastError()+")"); break; } else { if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false; } } 另外,我认为你的代码的最后一部分(OrderDelete)不会起作用,因为OrderDelete函数不检查任何东西--它只是删除选定的订单。所以你需要把订单票的参数传递给它。取而代之的是,你可以通过检查他们的注释来识别已删除的订单。每个被删除的订单都会有 "canceled "的注释 - 你可以比较OrderComment()函数的结果来发现这一点。 How to code? HistoryTotalOrder Function request ForExTryo 2009.08.31 07:18 #2012 谁能帮帮我? 你好。 我正在尝试编写一个EA,我需要有人帮助我编写一个公式。 我希望这个公式能计算出前一根蜡烛的收盘价(PCC1)和后两根蜡烛的收盘价(PCC2)之间的差异(我将在多个货币对上运行这个公式)。 HoL=(PCC1-PCC2) 我的目标是发出买入或卖出的信号。 bool BuySignal=false。 bool SellSignal=false。 如果(HoL>0) BuySignal=true。如果(HoL<0) SellSignal=true。 谢谢你对这个问题的帮助。 Mladen Rakic 2009.08.31 08:06 #2013 ... 如果你想从EA的一个实例中使用多个符号,你可以使用像这样的东西。 double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code int symbolShift1 = iBarShift(symbolName,0,Time[1]); int symbolShift2 = iBarShift(symbolName,0,Time[2]); double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2); If you are going to use it only on symbol that your EA is attached to than this [php] double HoL=Close[1]-Close[2]; 即可 PS:"symbolName"应该被设置为您选择的符号。 问候 mladen ForExTryo: 你好。我正在尝试编写一个EA,我需要一些帮助来编写一个公式。 我希望这个公式能计算出前一根蜡烛的收盘价(PCC1)和后两根蜡烛的收盘价(PCC2)之间的差异(我将在多个货币对上运行这个公式)。 HoL=(PCC1-PCC2) 我的目标是发出买入或卖出的信号。 bool BuySignal=false。 bool SellSignal=false。 如果(HoL>0) BuySignal=true。if(HoL<0) SellSignal=true; 谢谢你对这个问题的帮助。 How to code? Multi Timeframe Indicators Coding help sparow21 2009.08.31 12:32 #2014 Roger09 2009.08.31 13:43 #2015 隐藏TP 替换 void OpenBuy() { int ticket,err; if (!GlobalVariableCheck("InTrade")) { GlobalVariableSet("InTrade", CurTime()); // set lock indicator ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red); GlobalVariableDel("InTrade"); // clear lock indicator } } void OpenSell() { int ticket,err; if (!GlobalVariableCheck("InTrade")) { GlobalVariableSet("InTrade", CurTime()); // set lock indicator ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red); GlobalVariableDel("InTrade"); // clear lock indicator } }[/CODE] to [CODE]void OpenBuy() { int ticket,err; if (!GlobalVariableCheck("InTrade")) { GlobalVariableSet("InTrade", CurTime()); // set lock indicator ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red); GlobalVariableDel("InTrade"); // clear lock indicator } } void OpenSell() { int ticket,err; if (!GlobalVariableCheck("InTrade")) { GlobalVariableSet("InTrade", CurTime()); // set lock indicator ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red); GlobalVariableDel("InTrade"); // clear lock indicator } } How to code? [WARNING CLOSED!] Any newbie OrderSend and stops asgard 2009.08.31 22:06 #2016 买入止损单 之间的距离 大家好,我正试图实现一个被删除的买入止损单和下一个买入止损单之间的距离。 我已经写好了这段代码,除非最后一个订单是别的东西,否则它是有效的。我不确定如何从历史中选择已删除的买入止损单。如果有人能给我指出正确的方向,我将非常感激。 谢谢 // 下一个 "买入止损 "订单被删除的时间延时。 //Time Delay for the next Buy Stop Order if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0)) { total = OrdersHistoryTotal(); for(e = total - 1; e >= 0; e--) { OrderSelect(e, SELECT_BY_POS,MODE_HISTORY); if(OrderSymbol() != Symbol()) continue; { if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false; } } } How to code? 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. How to 'Stop' an Roger09 2009.09.01 01:32 #2017 asgard2: 大家好。 我想,这样更好。 //Time Delay for the next Buy Stop Order if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0)) { total = OrdersHistoryTotal(); for(e = total - 1; e >= 0; e--) { OrderSelect(e, SELECT_BY_POS,MODE_HISTORY); if(OrderSymbol() != Symbol()) continue; if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false; break; } } How to code? 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. How to 'Stop' an asgard 2009.09.01 02:05 #2018 Roger09: 我想,这样更好。 嗨,罗杰。 我对编码很陌生,为什么要在那里使用 "break"?语句结束后会自动中断吗? 另外,对于如何从历史记录中选择一个已删除的订单有什么线索吗? 谢谢 Roger09 2009.09.01 04:10 #2019 你给我们看的只是代码的一个片段,我只能猜测。 我想你是在最后一个订单关闭后开始检查 历史记录的,所以你需要知道订单关闭的时间。最新关闭的订单在历史记录的末尾,所以你不需要知道另一个和 "打破 "停止检查。 要在历史上找到合适的订单有很多方法,你有类型,神奇的数字,评论等。 happyfx 2009.09.01 10:46 #2020 需要编写简单的EA代码 盈利系统:每笔交易最小50点-200点利润 1小时系统 只使用一个指标和ATR(20)。 简单的EA,带TP/SL/追踪止损 EA程序员可以免费提供帮助,请将您的电子邮件发送给我。 1...195196197198199200201202203204205206207208209...347 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。
我无法编译它,因为有一个不平衡的括号错误,谁能告诉我为什么这些括号不平衡?
谢谢如果你得到这个错误,那么你就缺少了[或{或()]中的一个。
可能在你的代码中的某个地方,有一个函数你放了太多的{[(
我检查了你的部分代码,发现了一些错误。试试这个。
if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order
{
int hstTotal=OrdersHistoryTotal();
for(i=0;i<hstTotal;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false)
{
Print("Access to history failed ("+GetLastError()+")");
break;
}
else
{
if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;
}
}
另外,我认为你的代码的最后一部分(OrderDelete)不会起作用,因为OrderDelete函数不检查任何东西--它只是删除选定的订单。所以你需要把订单票的参数传递给它。取而代之的是,你可以通过检查他们的注释来识别已删除的订单。每个被删除的订单都会有 "canceled "的注释 - 你可以比较OrderComment()函数的结果来发现这一点。
谁能帮帮我?
你好。
我正在尝试编写一个EA,我需要有人帮助我编写一个公式。
我希望这个公式能计算出前一根蜡烛的收盘价(PCC1)和后两根蜡烛的收盘价(PCC2)之间的差异(我将在多个货币对上运行这个公式)。 HoL=(PCC1-PCC2)
我的目标是发出买入或卖出的信号。
bool BuySignal=false。
bool SellSignal=false。
如果(HoL>0) BuySignal=true。如果(HoL<0) SellSignal=true。
谢谢你对这个问题的帮助。
...
如果你想从EA的一个实例中使用多个符号,你可以使用像这样的东西。
double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code
int symbolShift2 = iBarShift(symbolName,0,Time[2]);
double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2);
If you are going to use it only on symbol that your EA is attached to than this
[php]
double HoL=Close[1]-Close[2];
即可
PS:"symbolName"应该被设置为您选择的符号。
问候
mladen
你好。
我正在尝试编写一个EA,我需要一些帮助来编写一个公式。
我希望这个公式能计算出前一根蜡烛的收盘价(PCC1)和后两根蜡烛的收盘价(PCC2)之间的差异(我将在多个货币对上运行这个公式)。 HoL=(PCC1-PCC2)
我的目标是发出买入或卖出的信号。
bool BuySignal=false。
bool SellSignal=false。
如果(HoL>0) BuySignal=true。if(HoL<0) SellSignal=true;
谢谢你对这个问题的帮助。隐藏TP
替换
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}
void OpenSell()
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}[/CODE]
to
[CODE]void OpenBuy()
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}
void OpenSell()
{
int ticket,err;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", CurTime()); // set lock indicator
ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red);
GlobalVariableDel("InTrade"); // clear lock indicator
}
}买入止损单 之间的距离
大家好,我正试图实现一个被删除的买入止损单和下一个买入止损单之间的距离。
我已经写好了这段代码,除非最后一个订单是别的东西,否则它是有效的。我不确定如何从历史中选择已删除的买入止损单。如果有人能给我指出正确的方向,我将非常感激。
谢谢
// 下一个 "买入止损 "订单被删除的时间延时。
//Time Delay for the next Buy Stop Order
if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))
{
total = OrdersHistoryTotal();
for(e = total - 1; e >= 0; e--)
{
OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol() != Symbol()) continue;
{
if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;
}
}
}
大家好。
我想,这样更好。
if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))
{
total = OrdersHistoryTotal();
for(e = total - 1; e >= 0; e--)
{
OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol() != Symbol()) continue;
if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;
break;
}
}我想,这样更好。
嗨,罗杰。
我对编码很陌生,为什么要在那里使用 "break"?语句结束后会自动中断吗?
另外,对于如何从历史记录中选择一个已删除的订单有什么线索吗?
谢谢
你给我们看的只是代码的一个片段,我只能猜测。
我想你是在最后一个订单关闭后开始检查 历史记录的,所以你需要知道订单关闭的时间。最新关闭的订单在历史记录的末尾,所以你不需要知道另一个和 "打破 "停止检查。
要在历史上找到合适的订单有很多方法,你有类型,神奇的数字,评论等。
需要编写简单的EA代码
盈利系统:每笔交易最小50点-200点利润
1小时系统
只使用一个指标和ATR(20)。
简单的EA,带TP/SL/追踪止损
EA程序员可以免费提供帮助,请将您的电子邮件发送给我。