Как кодировать? - страница 150

 

Здравствуйте, у меня есть эксперт, который я использую, который должен быть в состоянии повторно отправить ордер на покупку или продажу, если есть проблема с открытием ордера, если сервер отключен, занят или что у вас есть. Сегодня утром он должен был открыть ордер, но не смог, потому что платформа была отключена. В коде сейчас он настроен на ожидание 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, когда рынок откроется в воскресенье. Еще раз спасибо за вашу работу. Вы и другие здесь, кто отдает свое время и опыт безвозмездно, - это то, что делает многих из нас более успешными трейдерами. Я сообщу вам о своих результатах с новым инди.

С наилучшими пожеланиями, Том.

 

помогите исправить этот индикатор

привет всем, когда я пытаюсь скомпилировать этот индикатор, появляется эта ошибка, можно ли ее исправить?

спасибо

Файлы:
 
zombie333:
Привет всем, когда я пытаюсь скомпилировать этот индикатор, у меня появляется эта ошибка, можно ли ее исправить, пожалуйста, спасибо.

Не волнуйтесь, это не ошибки, а только предупреждения. Они поместили всю библиотеку в индикатор, но использовали только часть.

 
Roger09:
Не волнуйтесь, это не ошибки, а только предупреждения. Они поместили всю библиотеку в индикатор, но использовали только часть.

Спасибо, Роджер, что объяснил мне, что это значит,

но почему он не появляется, когда я накладываю его на график?

Не могли бы вы проверить это?

 

Если вы поместили его в каталог /experts/indicators, а затем скомпилировали, перезапустите терминал и загляните в Navigator/Custom Indicators.

 
Roger09:
Если вы поместили его в каталог /experts/indicators, а затем скомпилировали, перезапустите терминал и зайдите в Navigator/Custom Indicators.

Нет, Роджер, вот что я имею в виду,

Файлы:
 

Когда вы запускаете свой индикатор, должен быть разрешен импорт DLL.

 
Roger09:
Когда вы запускаете свой индикатор, должен быть разрешен импорт DLL.

Спасибо Роджер , теперь все работает,

Причина обращения: