Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, у меня есть эксперт, который я использую, который должен быть в состоянии повторно отправить ордер на покупку или продажу, если есть проблема с открытием ордера, если сервер отключен, занят или что у вас есть. Сегодня утром он должен был открыть ордер, но не смог, потому что платформа была отключена. В коде сейчас он настроен на ожидание 3 секунд и повторную попытку, что он и сделал, но он попробовал только 3 раза, а затем прекратил попытки отправить ордер. Моя программа не скальпирует, а скорее торгует в среднесрочной перспективе, поэтому я получаю только 1-3 сделки в неделю на пару. Как я могу закодировать его так, чтобы он ждал 10 секунд перед повторной попыткой, а затем продолжал пытаться отправить ордер, пока он не пройдет, я хотел бы иметь возможность регулировать в коде, сколько секунд он ждет для повторной попытки, а затем также сколько раз он будет продолжать попытки.
Я приложил фрагмент кода, чтобы кто-то мог посмотреть, что можно изменить. Заранее спасибо за помощь!
Майк
RefreshRates();
int ticket=OrderSend(Symbol(),OP_BUY,ManagedLotSize(),Ask,Slippage,sl,tp, "Expert" + " - " + Period(),MagicNumber,0,Lime);
if(ticket<0)
{
Print("Ошибка открытия ордера BUY : ",GetLastError());
Sleep(3000); //---- подождите 3 секунды
}
else
{
break;
}
}
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Открыт ордер BUY : ",OrderOpenPrice());
}
else
{
Print("Ошибка при открытии ордера BUY : ",GetLastError());
}
}
void ManageSell()
{
double tp,sl;
if (TakeProfit==0) { tp=0; } else { tp=Bid-TakeProfit*Point; }
if (StopLoss==0) { sl=0; } else { sl=Bid+StopLoss*Point; }
for (int i = 1; i <=5; i++) //---- Loop if requote
{
RefreshRates();
int ticket=OrderSend(Symbol(),OP_SELL,ManagedLotSize(),Bid,Slippage,sl,tp, "Expert" + " - " + Period(),MagicNumber,0,Red);
if(ticket<0)
{
Print("Ошибка открытия ордера SELL : ",GetLastError());
Sleep(3000); //---- подождите 3 секунды
}
else
{
break;
}
}
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("Открыт ордер SELL : ",OrderOpenPrice());
}
else
{
Print("Ошибка при открытии ордера SELL : ",GetLastError());
}
Используйте включаемый файл OrderReliable.
Люкс
Привет, kevin07,
Я протестирую новую версию алертного сигнала nonlagzigzag, когда рынок откроется в воскресенье. Еще раз спасибо за вашу работу. Вы и другие здесь, кто отдает свое время и опыт безвозмездно, - это то, что делает многих из нас более успешными трейдерами. Я сообщу вам о своих результатах с новым инди.
С наилучшими пожеланиями, Том.
помогите исправить этот индикатор
привет всем, когда я пытаюсь скомпилировать этот индикатор, появляется эта ошибка, можно ли ее исправить?
спасибо
Привет всем, когда я пытаюсь скомпилировать этот индикатор, у меня появляется эта ошибка, можно ли ее исправить, пожалуйста, спасибо.
Не волнуйтесь, это не ошибки, а только предупреждения. Они поместили всю библиотеку в индикатор, но использовали только часть.
Не волнуйтесь, это не ошибки, а только предупреждения. Они поместили всю библиотеку в индикатор, но использовали только часть.
Спасибо, Роджер, что объяснил мне, что это значит,
но почему он не появляется, когда я накладываю его на график?
Не могли бы вы проверить это?
Если вы поместили его в каталог /experts/indicators, а затем скомпилировали, перезапустите терминал и загляните в Navigator/Custom Indicators.
Если вы поместили его в каталог /experts/indicators, а затем скомпилировали, перезапустите терминал и зайдите в Navigator/Custom Indicators.
Нет, Роджер, вот что я имею в виду,
Когда вы запускаете свой индикатор, должен быть разрешен импорт DLL.
Когда вы запускаете свой индикатор, должен быть разрешен импорт DLL.
Спасибо Роджер , теперь все работает,