做了一个2个EMA交叉的EA,需要建议 - 页 2

 
prupru:

对不起,我不明白这部分。

你能解释一下这段代码吗?

 int tic = OrderSend(Symbol(),Cmd,Lot,PR,Slippage,SL,TP,"",0,0,clr);
 if(tic < 0) Print("Open order error: ",GetLastError());

. . .特别是变量tic

 

当我使用时发生了这种情况

        static datetime Time0;
        if (Time0 == Time[0]) return;
        Time0 = Time[0];

交易不是发生在蜡烛的开盘价,而是发生在蜡烛的内部

当我使用条形图时,一切都很正常

为什么会发生这种情况?

 
deVries:

我认为这是不对的

你是如何获得100点止盈和150点止损的?


这个市场上的价格波动真的很疯狂

http://bitcoincharts.com/charts/mtgoxUSD#rg60zig6-hourztgSzm1g10zm2g25

所以在这个市场上,当价格在一天内从500美元移动到800美元或从1100美元移动到800美元时,使用点数是没有意义的。

 
RaptorUK:

你能解释一下这段代码吗?

. . .特别是变量tic


我认为 tic 是OrderSend函数返回的订单号,如果出错则为-1。

是的!我是对的))下面是MT4的帮助说明(我刚刚检查过)。

返回交易服务器分配给订单的票据号码,如果失败则返回-1。要获得额外的错误信息,必须调用 GetLastError() 函数。

那么,这有什么问题吗?

 
prupru:


我认为 tic 是OrderSend函数返回的订单号,如果出错则为-1。

是的!我是对的))下面是MT4的帮助说明(我刚刚检查过)。

返回交易服务器分配给订单的票据号码,如果失败则返回-1。要获得额外的错误信息,必须调用 GetLastError() 函数。

那么,它有什么问题吗?

没什么,你说你不明白 . . .

prupru:

对不起,我不明白这部分。

. . . 也许你现在明白了?

我猜你没有写这段代码 .. .

 
deVries:

更新看到"所以止损和止盈不是以点为单位,而是以买入或卖出的百分比为单位"。

这样你还能得到一个有效的价格吗......如果你的符号有5位数,结果往往是2位数以上。

好的,我可以理解)

所以我需要将Ask*Takeprofit/100 的数字规范化,使其与Ask有相同的数字,我正在努力,谢谢你

 
RaptorUK:

没什么,你说过你不明白 . . .

. . . 也许你现在明白了?

我猜你没有写这个代码 .. .


你是对的,我不是凭空写的代码,我只是把我在互联网上找到的不同例子的碎片拼凑在一起。

是的,我现在明白你在说什么了,但最初我认为

"很高兴看到有人在没有提示的情况下检查交易函数 返回值 ..."

是在讽刺我,指出我的一些错误。

好吧,别介意,再次感谢您的帮助。

 
prupru:

当我使用时发生了这种情况

交易不是发生在蜡烛的开盘价,而是发生在蜡烛的内部

当我使用条形图时,一切都很正常

为什么会发生这种情况?


蜡烛的开盘价 是一个买入价

你买入交易的开盘价是一个卖出价

 
deVries:


蜡烛的开盘价是买入价

买入交易的开盘价是卖出价


但是,当我使用时间和条形图来决定何时开单时,这应该是一样的,为什么会有这样的不同?
 
prupru:

但当我用时间和条数来决定何时开单时,应该是一样的,为什么会有这样的不同呢?


如果你用目前的价差进行测试,那就不是了,这是非常疯狂的运动,所以价差会变得非常大。

那么你是如何进行测试的呢?

固定点差还是当前点差?