Практически все советники, которые я до сих пор встречал работают
по приходу нового тика. Может быть есть возможность организовать
в советнике что-то вроде тактового генератора, для управления
ордерами не ожидая прихода нового тика, а сразу по выполнении
условия ?
- Общие принципы - Торговые операции
- Типы ордеров - Принципы трейдинга - Торговля - MetaTrader 5 для Android
- Типы ордеров - Принципы трейдинга - Торговля - MetaTrader 5 для iPhone
Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем
внутри. В начале каждого такта RefreshRates().
Digger писал (а):
Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем внутри. В начале каждого такта RefreshRates().
Ну выкинет флажок, по истечении N-миллисекунд и опять будет ждать
новый тик. Может организовать как-нибудь через CurTime(), то есть
привязаться к секундам внутренних часиков.
Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем внутри. В начале каждого такта RefreshRates().
int init(){start();}
int start(){
while(!IsStopped()){
RefreshRates();
//--------------------------
if (IsConnected)
{
// advisor code
}
else
{
//no connection alert
}
//--------------------------
Sleep(1000);
}return(0);}
Нужно вот такую структуру советника использовать.В таком случае советник вообще не зависит от поступления тиков и запускается раз в секунду.
Ronen:
int start(){ while(!IsStopped()){ RefreshRates(); //-------------------------- if (IsConnected) { // advisor code } else { //no connection alert } //-------------------------- Sleep(1000); }return(0);}Можно вот такую структуру советника использовать...
Спасибо, будем пробовать.
FION писал (а):
Не будет он ждать нового тика если Вы не вышли из цикла. Digger писал (а):
Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем внутри. В начале каждого такта RefreshRates().
Ну выкинет флажок, по истечении N-миллисекунд и опять будет ждать
новый тик. Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем внутри. В начале каждого такта RefreshRates().
extern TimeSlice;
int start() {
TQ=GetTickCount();
while(true) {
if(GetTickCount-TQ==TimeSlice) {
RefreshRates();
.
.
.
TQ=GetTickCount();
}
}
Тоже самое можно делать и со Sleep() но Sleep()-TimeOut Timer а GetTickCount- Interval Timer и поэтому предпочтительнее
Необходимо упомянуть, что зацикленные эксперты нельзя протестировать
на истории.
Digger писал (а):
extern TimeSlice;
int start() {
TQ=GetTickCount();
while(true) {
if(GetTickCount-TQ==TimeSlice) {
RefreshRates();
.
.
.
TQ=GetTickCount();
}
}
Тоже самое можно делать и со Sleep() но Sleep()-TimeOut Timer а GetTickCount- Interval Timer и поэтому предпочтительнее
В принципе все понятно, спасибо. Кстати это неплохой метод избежать
реквотов.
FION писал (а):
Не будет он ждать нового тика если Вы не вышли из цикла. Digger писал (а):
Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем внутри. В начале каждого такта RefreshRates().
Ну выкинет флажок, по истечении N-миллисекунд и опять будет ждать
новый тик. Очевидно такая возможность есть с помощью GetTickCount() . Видимо можно с первым же тиком построить Loop c тактовым распределителем внутри. В начале каждого такта RefreshRates().
extern TimeSlice;
int start() {
TQ=GetTickCount();
while(true) {
if(GetTickCount-TQ==TimeSlice) {
RefreshRates();
.
.
.
TQ=GetTickCount();
}
}
Тоже самое можно делать и со Sleep() но Sleep()-TimeOut Timer а GetTickCount- Interval Timer и поэтому предпочтительнее
FION писал (а):
Практически все советники, которые я до сих пор встречал работают по приходу нового тика. Может быть есть возможность организовать в советнике что-то вроде тактового генератора, для управления ордерами не ожидая прихода нового тика, а сразу по выполнении условия ?
Практически все советники, которые я до сих пор встречал работают по приходу нового тика. Может быть есть возможность организовать в советнике что-то вроде тактового генератора, для управления ордерами не ожидая прихода нового тика, а сразу по выполнении условия ?
А какое условие может выполниться, если не поступил тик (не изменилась цена)? Может только выйти какой-то timeout.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь