ordersend()编码的帮助...

 

嘿,伙计们。

真的很奇怪,但当我运行下面的代码时,它什么也没做。GetLastError()返回130。

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)


但是,如果使用同样的代码,去掉止损和目标信息,它就能很好地吐出订单。

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order #2",16384,0,Green);


我使用的是一个空的专家模板,只是在启动功能 中使用了这两行代码。

不知道是什么原因...


谢谢!

 
mugged:

嘿,伙计们。

真的很奇怪,但当我运行下面的代码时,它什么也没做。GetLastError()返回130。


但是,如果使用同样的代码,去掉止损和目标信息,它就能很好地吐出订单。


我使用的是一个空的专家模板,只是在开始函数中有这两行代码。

不知道是什么原因造成的...


谢谢!

什么样的经纪人?

小数点符号?

 
diostar:

什么类型的经纪人?

小数点符号?


我使用的是IBFX迷你账户。


我在欧洲/美元上运行它

 
此外,当我在策略测试器中 运行代码时,它工作得很好......当我在现实生活中运行它时,我得到了问题。
 

你的SL和TP计算有误

如果是买入。

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

如果是卖出。

SL = Ask + StopLoss* Point;

TP = Ask - TakeProfit* Point。

除此之外,在某些经纪商那里,你必须在没有SL和TP水平的情况下进行OrderSend(),然后进行OrderModify(),并输入TP和SL。

 
mugged:

我使用一个IBFX迷你账户。


我在欧洲/美元上运行它

Ok....对不起,我没有说清楚。

试试这个。

(1)在订单结束时:sl=tp=0.然后ordermodify sl=tp。

(2) 欧元/美元:什么数字?4还是5?

 
SDC:

你的SL和TP计算有误

如果是买入。

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

如果是卖出。

SL = Ask + StopLoss* Point;

TP = Ask - TakeProfit* Point;


嘿,伙计,我试着按照你的建议,把我用来定义SL和TP的 "Ask "换成 "Bid",但还是没有成功。
 

好吧,这可能只是因为你需要先做OrderSend(),再做OrderModify()。

 
diostar:

Ok....对不起,我没有说清楚。

试试这个。

(1)在ordersend: sl=tp=0. then ordermodify the sl=tp.

(2) 欧元/美元:什么数字?4还是5?



1)是的,这个方法是有效的!但是有什么办法可以解决这个问题吗?我讨厌想到最坏的情况,即最初的订单进去了,但修改却没有发生(连接死亡,发生错误,等等等等)。


2) 5位数的经纪人

 
对于5位数的经纪商,你可能需要将你的止损和止赢金额乘以10,否则你的止损或止赢为2.5点。
 
SDC:
对于5位数的经纪商,你可能需要将你的止损和止赢金额乘以10,否则你的止损或止赢为2.5点。

用先发送后修改的方法似乎可以顺利通过。有什么办法可以让订单和止损在同一时刻进入?我希望它们在生产 环境中一起进入。
原因: