该死的错误130到地狱

 

有谁知道我为什么会出现130的错误,我已经确保我的SL足够宽,而且它在市场的右边(即低于买入)。 如果有任何帮助,我将非常感激,并感到非常欣慰* 叹息

if(BUYING)
{
if(stoploss > 0) //SL被设置为35
realSL = Ask - (stoploss * Point);
if(takeprofit > 0)
realTP = Ask + takeprofit * Point;
//买入!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red) 。

如果(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
Alert("CODE_TEST: BUY BUY")。

谢谢大家。

帕特

 
FXpipclash:

有谁知道我为什么会出现130的错误,我已经确保我的SL足够宽,而且它在市场的右边(即低于买入)。 如果有任何帮助,我将非常感激,并感到非常欣慰* 叹息

如果(BUYING)
{
if(stoploss > 0) //SL被设定为35
realSL = Ask - (stoploss * Point);
if(takeprofit > 0)
realTP = Ask + takeprofit * Point;
//买入!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red) 。

如果(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
Alert("CODE_TEST: BUY BUY")。

谢谢大家。

帕特

试试这个...我认为你混淆了什么时候使用买入和卖出。


如果(BUYING)
{
if(stoploss > 0) //SL被设置为35
realSL =Bid- (stoploss * Point);
if(takeprofit > 0)
realTP =Bid+ takeprofit * Point;
//买入!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red) 。

如果(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
Alert("CODE_TEST: BUY BUY BUY")。



************************************

经验法则......如果你在卖出价上输入,你就以买入价退出,如果你在买入价上输入,你就以卖出价退出。


LongStop = Bid-(stoploss*Point)

LongLimit=Bid+(limit*Point)

LongEntry= ASK

LongTrail = Bid-(stoploss*Point)



空头=卖出价+(止损*点)。

短线=卖出价-(限价*点)

空头进入=买入

短线=卖出价+(止损*点)。




海狼

 
seawolf wrote>>

试试这个...我认为你混淆了什么时候使用出价和要价

如果(BUYING)
{
if(stoploss > 0) //SL被设置为35
realSL =Bid- (stoploss * Point);
if(takeprofit > 0)
realTP =Bid+ takeprofit * Point;
//买入!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red) 。

如果(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
Alert("CODE_TEST: BUY BUY")。

************************************

经验法则......如果你在卖出价上进场,你就以买入价出场,如果你在买入价上进场,你就以卖出价出场

多头止损 = 买入价-(止损*点)

LongLimit=Bid+(limit*Point)

长线进入= ASK

LongTrail = Bid-(止损*Point)

空头=卖出价+(止损*点)。

短线=卖出价-(限价*点)

空头进入=买入

短线=出价+(止损*点)。

海狼

谢谢你的回答,seawolf,那么在我原来的那段代码中,如果我要买入,我是不是应该用卖出价来计算,因为那将是我要支付的价格?

 
谁是你的经纪人?
 

它是你进去时支付的价格,但你必须弥补价差,所以你出来时要支付另一个价格......事实上,你用要价进场和出场是绝对错误的。


遵循我给你的经验法则,一切都会顺利进行......我知道这可能非常令人困惑,这就是为什么我把它写在我的白板上,经过多年的交易和编程,我仍然几乎每天都在参考它。我发现很多文章甚至没有把它写对,所以不要感到难过。

 

尊敬的先生

虽然原来的代码是错误的,因为你使用的是Bid而不是Ask来购买,但如果止损真的是35点的话,还是应该起作用的。请确保你所运行的系统没有改变到小数点后5位,否则止损应该是350点。Interbank在演示系统上运行的是5位小数,但在实际系统上一度是4位。

 
FXpipclash:

有谁知道我为什么会出现130的错误,我已经确保我的SL足够宽,而且它在市场的右边(即低于买入)。如果有任何帮助,我将不胜感激,并感到非常欣慰*叹息

if(BUYING)
{
if(stoploss > 0) //SL被设置为35
realSL = Ask - (stoploss * Point);
if(takeprofit > 0)
realTP = Ask + takeprofit * Point;
//BUYING!
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, realSL, realTP, nameEA, 887722,0,Red);

if(ticket < 0)
Print("OrderSend (",nameEA,") failed with error #", GetLastError());
Alert("CODE_TEST: BUY BUY" ) 。

谢谢大家。

帕特

我可以明确地说,Seawolf和Ruptor是在说他们的集体后方。

对于一个OP_BUY订单,你使用卖出价来生成你的进入价格和止损是完全正确的。

你需要做的是,在发送订单之前,直接使用Print("realSL=, "DoubleToStr(realSL,Digits)," realTP=",DoubleToStr(realTP,Digits))语句来检查你的止损值,以确保这些值是你期望的。如果它们是你所期望的,那么你应该使用MarketInfo()函数 和MODE_STOPLEVEL标识符检查可接受的值。

 
你是否使用5位数的经纪人?如果是,你的 "点 "变量将使你所有的SL/TP的实际价值的1/10。
 
cloudbreaker wrote>>

我可以明确地说,Seawolf和Ruptor是在说他们的集体后方。

对于OP_BUY订单,你使用卖出价来生成你的进入价格和止损是完全正确的。

你需要做的是,在发送订单之前,直接使用Print("realSL=, "DoubleToStr(realSL,Digits)," realTP=",DoubleToStr(realTP,Digits))语句来检查你的止损值,以确保这些值是你期望的。如果它们是你所期望的,那么你应该使用MarketInfo()函数和MODE_STOPLEVEL标识符检查可接受的值。

谢谢你cloudbreaker,我知道我在支付卖价方面是正确的,我没有在任何地方说明我也在支付交易中的卖价,打印SL值是一个好主意,谢谢你的所有意见。

 
eacoder wrote>>
你使用的是5位数的经纪商吗?如果是,你的 "点 "变量将使你所有的SL/TP的实际值的1/10。

不,我使用的是FXDD,这是一个4位数的经纪商,整个事情对我来说是相当神秘的,我想试试

 
FXpipclash wrote>>

谢谢你cloudbreaker,我知道我在支付要价方面是正确的,我没有在任何地方说明我也在支付交易出来的要价,打印SL值是个好主意,谢谢你的所有意见。

好吧,云,这个问题让我很头疼,但我想我解决了,由于某些原因,TP和SL都被重新调整为1.0(太小了),所以我通过整个过程追踪我的变量,发现我把takeprofit和stoploss的值声明为双数,把realSL realTP的值声明为整数,把realTP和realSL改为双数就解决了这个问题,再次感谢。