Советник на основании индикатора ForexOFFTrend3 - Форум о заработке, инвестициях и криптовалюте
Форум о заработке, инвестициях и криптовалюте

Вернуться   Форум о заработке, инвестициях и криптовалюте > Практический трейдинг > Каталог Советников

Каталог Советников Советники, с описанием функциональных возможностей, представлены практикующими трейдерами. Отзывы. Файлы доступны к скачиванию. Тестирование, настройки, оптимизация.

 
 
Опции темы Опции просмотра
Старый 28.03.2013, 19:19   #11
madman
Любитель
 
Аватар для madman
 
Регистрация: 17.02.2013
Сообщений: 469
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для madman с помощью ICQ
По умолчанию

Закрываем все сделки в пятницу



Цитата:



extern int MyHour=22;

extern int MyMinute=00;



// 5 - Friday

#define MyDay 5



datetime LastTradeTime;

//+------------------------------------------------------------------+

int init()

{

// установим время последней торговой операции вчерашним днем

LastTradeTime = CurTime()-24*60*60;

return(0);

}

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

int start()

{

//----

// проверим, не закрывали ли мы все уже сегодня

// если да - выходим

if (TimeDayOfYear(CurTime())==TimeDayOfYear(LastTrade Time)) return(0);



// если не пятница - выходим

if (DayOfWeek()!=MyDay) return(0);



// проверим, не наступило ли время закрывать позиции

if (((TimeHour(CurTime())==MyHour)&&(TimeMinute(CurTi me())>=MyMinute))

||(TimeHour(CurTime())>MyHour))

{

// закроем все позиции и удалим ордера

while (OrdersTotal()>0)

{

// выделим первую позицию или ордер в списке

if (!OrderSelect(0, SELECT_BY_POS)) break; // в случае неудачи выйти из цикла



// если отложенный ордер, то удалить

if (OrderType()>OP_SELL)

{

if (!OrderDelete(OrderTicket()))

{

Print("Ошибка ", GetLastError()," при удалении отложенного ордера ",

OrderTicket());

break;

}

}

// если открытая позиция, то закрыть

else

{

double price;

if (OrderType()==OP_SELL)

price = MarketInfo(OrderSymbol(), MODE_ASK);

else

price = MarketInfo(OrderSymbol(), MODE_BID);





if (!OrderClose(OrderTicket(), OrderLots(), price, 3))

{

Print("Ошибка ", GetLastError()," при закрытии позиции ", OrderTicket());

break;

}

}



// пауза 10 секунд

Sleep(10000);

}

if (OrdersTotal()==0) LastTradeTime = CurTime();

}

return(0);

}

//+------------------------------------------------------------------+


А слвиг в 7 баров не сможем убрать, иначе смысл во второй линии (красной) теряется.
madman вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Загрузка...


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
vB.Sponsors

© 2009-2020 «ACRYPTOINVEST.COM»
сообщество трейдеров, инвесторов и игроков