如何编码? - 页 202

 
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()函数的结果来发现这一点。

 

谁能帮帮我?

你好。

我正在尝试编写一个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 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;

谢谢你对这个问题的帮助。
 
 

隐藏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

}

}
 

买入止损单 之间的距离

大家好,我正试图实现一个被删除的买入止损单和下一个买入止损单之间的距离。

我已经写好了这段代码,除非最后一个订单是别的东西,否则它是有效的。我不确定如何从历史中选择已删除的买入止损单。如果有人能给我指出正确的方向,我将非常感激。

谢谢

// 下一个 "买入止损 "订单被删除的时间延时。

//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;

}

}

}

 
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;

}

}
 
Roger09:
我想,这样更好。

嗨,罗杰。

我对编码很陌生,为什么要在那里使用 "break"?语句结束后会自动中断吗?

另外,对于如何从历史记录中选择一个已删除的订单有什么线索吗?

谢谢

 

你给我们看的只是代码的一个片段,我只能猜测。

我想你是在最后一个订单关闭后开始检查 历史记录的,所以你需要知道订单关闭的时间。最新关闭的订单在历史记录的末尾,所以你不需要知道另一个和 "打破 "停止检查。

要在历史上找到合适的订单有很多方法,你有类型,神奇的数字,评论等。

 

需要编写简单的EA代码

盈利系统:每笔交易最小50点-200点利润

1小时系统

只使用一个指标和ATR(20)。

简单的EA,带TP/SL/追踪止损

EA程序员可以免费提供帮助,请将您的电子邮件发送给我。

原因: