基本问题... - 页 9

 
Zen_Leow:
matrixebiz,你是否考虑过在同一根蜡烛上,在蜡烛收盘前,交易开盘和收盘的可能性? 你可能也应该检查一下历史列表。

我总是把我写的这个小函数移植到我所有的EA中,也许你也会发现它很有用。

bool DecideToOpenTrade()

{

int total = OrdersTotal();

if (total > 0)

{

for(int cnt=0;cnt<total;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

return (false);

}

}

}

}

// in case trades has already opened and closed within the candle

int histotal = OrdersHistoryTotal();

if (histotal > 0)

{

for(cnt=0;cnt<histotal;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

if (Time[0] <= OrderOpenTime()) // don't open a new position if we're still on the same candle

{

return (false);

}

}

}

}

}

return (true);

}

int start()

{

// some time check codes first.. blah blah

// ...

// ...

// ...

// check signals

if (Should_Buy())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

if (Should_Sell())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

}

注意:这个函数假定你已经为EA_MAGIC_NUM设置了一个唯一的值。这样一来,检查就不会看其他EA所开的交易。

Should_Buy()和Should_Sell()是我在所有的EA中创建的函数,用于确定是否发生了买入或卖出信号。

希望这有帮助。如果你需要进一步澄清,请给我发邮件。

问候。

禅宗

谢谢你,Zen 我想这对我很有帮助 只是可能需要做一些改变,因为我的EA是一个多货币交易的EA,所以这就是为什么我不能检查特定的货币,不知道EA用哪种货币对 进行交易,因此我必须改变代码来寻找特定的OrderComment(),而不是你的OrderSymbol()的原因。我使用下面这段代码来检查当前是否已经存在交易,但在检查是否已经在同一条线上关闭交易时遇到了麻烦。

for(int i=totalorders-1;i>=0;i-)

{

OrderSelect(i, SELECT_BY_POS)。

如果(OrderComment() == EA_Name + MagicNumber) GoOrders = false; }

如果(GoOrders){orders();}。

 

每个信号1次交易

你好,谁能帮帮我?

我是一个编码新手,我正在做的一个EA有一个问题,我很想让这个EA下一笔交易,然后等待另一个信号,再进入另一个交易。

现在,它下了一笔交易,一旦交易结束,它就重新进入另一笔交易,而不等待下一个信号。

感谢任何帮助。

 

请帮助我清除这个错误

我最近在研究这个专家,但仍然无法清除这个错误,所以我真的希望这里的任何人可以帮助我,使这个专家在条件相反的情况下关闭一个订单,请...

以下是错误信息。

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: OrderClose函数 的未知票197

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: OrderClose error 4108

先谢谢了。

int start()

{

if( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0) <iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_SELL, Lots,Bid, 0,Bid+StopLoss* Point,Bid- TakeProfit* Point,"", SystemMagicNumbe r,0,Red)。

返回(0)。

}

如果( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_BUY, Lots,Ask, 0,Ask-StopLoss* Point,Ask+ TakeProfit* Point,"", SystemMagicNumbe r,0,Blue) 。

返回(0)。

}

如果(OrderType() ==OP_SELL)

{

如果(iMA(NULL,0, 5,0,MODE_ EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) 。

返回(0)。

}

}

如果(OrderType() ==OP_BUY)

{

如果(iMA(NULL,0, 5,0,MODE_ EMA, PRICE_CLOSE, 0)<iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) 。

返回(0)。

}

}

 

如何创建有限的直线对象

创建无限的趋势线对象是可能的。但我怎样才能从一个点到另一个点绘制有限的线?谢谢你的答复。

 
MetaMaster:
可以创建无限的趋势线_对象。但我怎样才能把有限的线从一个点画到另一个点?谢谢你的回答。

设置OBJPROP_RAY为false

 

EA在信号发出后每隔一格 就发送一次订单。请帮助我。

现在我正在学习制作EA。

如何让EA明白,我只想在每一个信号出现时发送一个订单。

其逻辑是

在它发出信号之前,它保持平静。

信号出现后,它立即发送订单,一次。

然后等待另一个信号。

问题是

这个Ea应该能够发送订单,无论之前的订单是否被清算。

所以,我不能对它进行编码,只有在前一个订单关闭后才能发送订单。

谢谢你。

 

对基于指标的EA的帮助

--------------------------------------------------------------------------------

亲爱的各位

我有一个指标(带信号的3ma交叉),我需要把它改成EA,我可以把ind init()复制到 expert init(),ind start()复制到 expert start(),然后在箭头给我信号时加上卖出和买入功能 吗?

我这样做了,但它不工作

附加的文件:
 

帮助解决编码问题

你好

我想写一个非常简单的EA,在固定的时间间隔内打开一些挂单。 在使用过程中,它打开了订单,但却一直在无休止地打开它们。 我如何编写代码,使订单只打开一次,而且如果一个订单成为实时订单并击中TP或SL,那么它将被替换为原始列表中的一个新的挂单?

非常感谢提供的任何帮助。

 

每一个神奇的数字有一个交易?

我正在编写一个EA的脚本,它将根据手动交易 决定自动打开交易。例如,我将查看图表并决定我想在什么价位开单,止损和止盈是什么,等等...。然后,我将设置EA,当达到该价格时,它将打开交易。

我需要使EA在每个魔法数字上只开一个交易。我将手动设置魔法数字,每个数字都是唯一的。这样一来,如果交易被打开,然后被止损,如果再次达到交易价格,EA将不会尝试打开另一笔交易。

对于如何实现这一目标有什么想法吗?一些代码例子也会有帮助

 

...

jerzzhere:
我正在编写一个EA脚本,它将根据人工交易的决定自动打开交易。例如,我将查看图表并决定我想在什么价位开单,止损和止盈是什么,等等。然后,我将设置EA,当达到该价格时,它将打开交易。

我需要让EA对每个魔法数字只开一次交易。我将手动设置魔法数字,每个数字将是唯一的。这样一来,如果交易被打开,然后被止损,如果再次达到交易价格,EA将不会尝试打开另一笔交易。

有什么想法可以实现这个目标吗?一些代码例子也会有帮助

我曾在这个论坛上发表过一篇文章,其中有一个神奇数字的解决方案......不幸的是,Davidke和Walander讨厌我的创新想法,并在论坛上大肆宣传......因此,我的文章被删除了。