после OrderSend(...); Print(GetLastError()); и посмотри сам в чём проблема...
int OpenLong() { int tic = OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-1500*Point,Bid+1500*Point); int err = GetLastError(); if (err==0) return (tic); else return(-err); }Примерно так: если OpenLong()>=0 то это тикет ордера если нет - ошибка см. доку...
Ну вот не открывается ордер *WALL*
int OpenLong() // Функция открытия длинной позиции
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-1500*Point,Bid+1500*Point);
}
return;
При обращении к функции "OpenLong();" ничего не происходит. Подскажите пж чего недодумал а?
Может дело в том, что функция описана как int, а ничего не возвращает return;
Ну вот не открывается ордер *WALL*
int OpenLong() // Функция открытия длинной позиции
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-1500*Point,Bid+1500*Point);
}
return;
При обращении к функции "OpenLong();" ничего не происходит. Подскажите пж чего недодумал а?
Попробуйте так:
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-1500*Point,Bid+1500*Point,"",0,0,CLR_NONE);
И еще - зачем Вам такие большие стопы по 1500???
Дааааааааааа да да да
Спасибо, Вы мой кумир!!!
....ммм теперь не работает другая функция :( Вчера работала вроде, я ее тут поднимал
int WhatOpen() // Функция проверки наличия открытых ордеров
{
int Order;
if (OrdersTotal()>0) // Если есть хоть один открытый ордер
{
for(int i=0;i<OrdersTotal();i++) // До тех пор пока есть открытые ордеры
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == Magic)
{
Order=1;
}
if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == Magic)
{
Order=2;
}
}
}
return(Order);
}
Вроде как переменная принимает нужное значение, а функцию вызываю IF (WhatOpen()==1), например, тогда не открывать повторно...
после OrderSend(...); Print(GetLastError()); и посмотри сам в чём проблема...
Примерно так: если OpenLong()>=0 то это тикет ордера если нет - ошибка см. доку...Нашел ошибку Спасибо :)
AYuBelov писал(а) >>
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == Magic)
{
Order=1;
}
if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == Magic)
{
Order=2;
}
********************
1 вариант
делаем так:
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == 0)
********************
2 вариант
в предыдущей
делаем так:
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,"",Magic,0,CLR_NONE);
********************
Любой вариант - на выбор. (Попробуйте сначала второй вариант.)
********************
1 вариант
делаем так:
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == 0)
********************
2 вариант
в предыдущей
делаем так:
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,"",Magic,0,CLR_NONE);
********************
Любой вариант - на выбор. (Попробуйте сначала второй вариант.)
Все потер что написал....
Мне вчера посоветовали переменную Magic описать как глобальную с значением 123321.
В этом то и была загвоздка...
Спасибо большое
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ну вот не открывается ордер *WALL*
int OpenLong() // Функция открытия длинной позиции
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-1500*Point,Bid+1500*Point);
}
return;
При обращении к функции "OpenLong();" ничего не происходит. Подскажите пж чего недодумал а?