Показывает ошибку OrderSend(Symbol()
1. Код ошибки в журнале посмотрите.
2. extern double TPforSymbol = 0;
extern double SLforSymbol = 0;
переменные равны нулю.
То что переменные равны нулю - это ограничение прибыли и убытка, я думаю это здесь значение не имеет....
Всем привет! Кто сможет помочь с роботом, почему не работает?
extern double lots = 0.01;
extern double TPforSymbol = 0;
extern double SLforSymbol = 0;
int last_bar = 0;
int start(){
if (last_bar == Bars) return(0);
last_bar = Bars;
if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Ask+ SLforSymbol * Point, Bid - TPforSymbol * Point, 0, Red);
}
return(0);
}
Нельзя по правилам языка проглатывать параметры со значениями по умолчанию. Если надо задавать цвет стрелочек, то пишите все параметры левее цвета. B slippage 3 мало, ели это 5-знак, будут реквоты, я написал 50. И значения СЛ и ТП надо задать не равными нулю, тут уже Aleksey Vakhrushev написал об этом.
OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, "", 1, 0, clrBlue);
верно =)
а то ордер пытается поставить стоп и тп на том же самом месте что и сама цена -что невозможно
- либо делаешь как написано внизу если нужны 0
либо указать TPforSymbol, SLforSymbol
OrderSend(Symbol(), OP_BUY, lots ,Ask, 50,0, 0, "", 1, 0, clrBlue);
Всем привет! Кто сможет помочь с роботом, почему не работает?
Вам функция открытия надо правильная или хотите разобраться почему ошибки ?
Надо чтоб открывал сделки.
Разберитесь с переменными
extern double TPforSymbol = 0;extern double SLforSymbol = 0;
С таким значением переменных вы будете получать 130 ошибку.
И вам Alexey Volchanskiy написал, что вы не все параметры указываете для функции OrderSend().
extern double TPforSymbol = 100;
extern double SLforSymbol = 1000;
extern int stop_loss = 76;
extern int take_profit = 750;
int last_bar = 0;
int start(){
if (last_bar == Bars) return(0);
last_bar = Bars;
if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - stop_loss * Point, Ask + take_profit * Point, "", 1, 0, clrBlue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 50, Ask+ stop_loss * Point, Bid - take_profit * Point, "", 1, 0, clrRed);
}
return(0);
}
Вот так исправил, но все равно что то не то.....

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет! Кто сможет помочь с роботом, почему не работает?
extern double lots = 0.01;
extern double TPforSymbol = 0;
extern double SLforSymbol = 0;
int last_bar = 0;
int start(){
if (last_bar == Bars) return(0);
last_bar = Bars;
if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Ask+ SLforSymbol * Point, Bid - TPforSymbol * Point, 0, Red);
}
return(0);
}