有谁知道我为什么会出现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)
空头=卖出价+(止损*点)。
短线=卖出价-(限价*点)
空头进入=买入
短线=卖出价+(止损*点)。
海狼
试试这个...我认为你混淆了什么时候使用出价和要价
如果(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位。
有谁知道我为什么会出现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标识符检查可接受的值。
我可以明确地说,Seawolf和Ruptor是在说他们的集体后方。
对于OP_BUY订单,你使用卖出价来生成你的进入价格和止损是完全正确的。
你需要做的是,在发送订单之前,直接使用Print("realSL=, "DoubleToStr(realSL,Digits)," realTP=",DoubleToStr(realTP,Digits))语句来检查你的止损值,以确保这些值是你期望的。如果它们是你所期望的,那么你应该使用MarketInfo()函数和MODE_STOPLEVEL标识符检查可接受的值。
谢谢你cloudbreaker,我知道我在支付卖价方面是正确的,我没有在任何地方说明我也在支付交易中的卖价,打印SL值是一个好主意,谢谢你的所有意见。
有谁知道我为什么会出现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")。
谢谢大家。
帕特