159753>>: Уважаемые господа, я столкнулся с проблемой, связанной с функцией OrderSend, а именно у меня не открывается ордер. К примеру, если присоединить этот советник к графику - extern double StopLoss = 30; extern double TakeProfit = 30; extern double lot = 0.1; double SL,TP; string Symb; int start() { Symb=Symbol(); SL =Bid - (StopLoss*Point); TP =Bid + (TakeProfit*Point); OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP); if(OrdersTotal()>0) Alert("Ордер Buy открыт"); if(OrdersTotal()==0) Alert("Ордер Buy открыть не удалось т.к. возникла ошибка №",GetLastError()); Alert("Point = ",Point); return; } то терминал выдаст ошибку № 130 (неправильные стопы), а значение Point будет = 0. Я думаю, что всё из-за возвращаемого значения Point (хотя кто его знает). В общем кто знает "где собака зарыта " помогите. Кстати, значение Point должно = 0 или нет?
Вы не моглы бы весь скрипт выложить? Я имею ввиду вместе с объявлениями переменных массивов и т.д.
这是脚本,我检查了它的工作情况,它在侧边栏和双侧都能正常阅读。
专家立即告诉我,要看数组,不要看类型转换......
StatBars,Vinin,所有回复的人,非常感谢。
问题是我的数组是动态的。而那里的类型转换有一定的特殊性。
调整为确定长度的数组,用StrToDouble进行类型转换,效果非常好。
再次感谢。
与文件一起工作是一件很有用的事情。我现在正试图弄清楚。
Джентльмены, вопрос такой:
В тестере вот такая штука:
в журнале выдает "0.0000".
А в терминале в реал-тайме выдает правильные значения.
Как с этим бороться?
А?
А?
>>放出代码,并给我所有的细节。выкладывай код, и все подробней
Vinin, Bicus.
谢谢你对.csv的更新。
我已经有点......混淆了)。
例如,如果我把这个EA附加到一个图表上 -
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0。1;
double SL,TP;
string Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot, Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("买单打开");
if(OrdersTotal()==0) Alert("买单失败是因为。error #",GetLastError());
Alert("Point = ",Point);
return;
}
终端将显示错误#130(错误的停止),Point值将为0。
我认为这是因为返回的点值(虽然谁知道)。
一般来说,谁知道 "狗被埋在哪里 "的帮助。
顺便问一下,点值是否应该=0?
亲爱的先生们,我在OrderSend功能中遇到了一个问题,即我的订单无法打开。
例如,如果我把这个EA附在一个图表上------。
外置双倍止损=30。
外部双倍TakeProfit = 30;
外来的双倍lot = 0.1。
双重SL,TP。
字符串 Symb;
int start()
{
Symb=Symbol()。
SL=出价-(StopLoss*Point)。
TP=出价+(TakeProfit*Point)。
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP)。
如果(OrdersTotal()>0) Alert("Buy order opened")。
如果(OrdersTotal()==0) Alert("由于错误#,买入订单未能打开",GetLastError())。
Alert("Point = ",Point);
返回。
}
终端将显示错误#130(错误的停止),并且点值将为=0。
我认为这是因为返回的点值(虽然谁知道)。
一般来说,谁知道 "狗被埋在哪里 "的帮助。
顺便问一下,点值是否应该=0?
一切运作正常。至少对我来说是这样Уважаемые господа, я столкнулся с проблемой, связанной с функцией OrderSend, а именно у меня не открывается ордер.
К примеру, если присоединить этот советник к графику -
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0.1;
double SL,TP;
string Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("Ордер Buy открыт");
if(OrdersTotal()==0) Alert("Ордер Buy открыть не удалось т.к. возникла ошибка №",GetLastError());
Alert("Point = ",Point);
return;
}
то терминал выдаст ошибку № 130 (неправильные стопы), а значение Point будет = 0.
Я думаю, что всё из-за возвращаемого значения Point (хотя кто его знает).
В общем кто знает "где собака зарыта " помогите.
Кстати, значение Point должно = 0 или нет?
点不可能是0,你可能有第5个数字,所以当你打印(Alert)时,你得到的是0(打印(Alert)最多输出4个字,除非你把它转换成DoubleToStr字符串......)。
试着把获利和止损乘以10。