Форекс / Forex (Главная) Mini forex trading accounts in HSN
  Forex Форум | Форекс Евроклуб :: Ловля импульса (по просьбе Андрея) / Самый авторитетный Forex Forum
Вход Имя: Пароль:
Автоматически входить при каждом посещении    
Регистрация
Регистрация
Войти и проверить личные сообщения
Войти и проверить личные сообщения
Войти и проверить личные сообщения
Правила
Начать новую тему   Ответить на тему
Торговые стратегии и МТС >  Ловля импульса (по просьбе Андрея)
Предыдущая тема :: Следующая тема  
Автор Сообщение
mandor
знатный пермяк


Зарегистрирован: 19.09.2005
Сообщения: 406

СообщениеДобавлено: Сб Янв 14, 2006 6:48 pm    Заголовок сообщения: Ловля импульса (по просьбе Андрея) цитата

Недавно ночью ко мне в аську постучался Андрей и попросил нарисовать эксперт для MT4, который каждый час выставляет отложенные ордера и закрывает предыдущие ордера Buy и Sell. Я пообещал, что, если будет настроение, то нарисую.

Итак, следующая стратегия.
Как только рисуется новый бар на графике:
1. закрываются все открытые ордера Buy и Sell
2. если отложенных ордеров Buy Stop и Sell Stop нет, то они выставляютя на расстоянии Range от цены открытия нового бара
3. если отложенный ордер Buy Stop или Sell Stop есть, то он сдвигается до расстояния Range от цены открытия нового бара

По умолчанию, Range=25 (личный опыт) пипсов (пунктов).
Ниже приводится текст эксперта.
Желающие могут получить файлы эксперта по почте бесплатно.

_________________
[color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85]
Вернуться к началу
[профиль] [сообщение] [письмо]
mandor
знатный пермяк


Зарегистрирован: 19.09.2005
Сообщения: 406

СообщениеДобавлено: Сб Янв 14, 2006 6:48 pm    Заголовок сообщения: цитата

// Ловля импульса.mq4
// © 2003-2006 Mandor ®
// E-mail: mandor@bk.ru
// Рекомендуется период H1
extern int Range=25;
extern double Lots=0.1;
extern int MinStop=11;
// Стартовая функция
void start()
{
if(Bars<100 || IsTradeAllowed()==false) return;
// переменные
int i=0;
int res=0;
int nMagic=0;
int nTicket=0;
int nSlippage=2;
int nHour=0;
int nValue=0;
int nOpenPrice=0;
int nStopLoss=0;
int nTakeProfit=0;
int nAsk=MathRound(Ask/Point);
int nBid=MathRound(Bid/Point);
int nSpread=nAsk-nBid;
double dLots=0;
// уровни для ордеров
int nHighStop=MathRound(Open[0]/Point)+nSpread+Range;
int nLowStop =MathRound(Open[0]/Point)-Range;
// количество ордеров
int nTotalBuy=0,nTotalBuyStop=0,nTotalSell=0,nTotalSellStop=0;
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()!=Symbol()) continue;
{
if(OrderType()==OP_BUY) nTotalBuy++;
if(OrderType()==OP_BUYSTOP) nTotalBuyStop++;
if(OrderType()==OP_SELL) nTotalSell++;
if(OrderType()==OP_SELLSTOP) nTotalSellStop++;
}
}
// закрытие предыдущих ордеров Buy и Sell
if(nTotalBuy>0)
{
nTicket=0;
dLots=0.0;
nOpenPrice=0;
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()!=Symbol()) continue;
if(OrderType()!=OP_BUY) continue;
if(OrderOpenTime()>=Time[0]) continue;
nTicket=OrderTicket();
dLots=OrderLots();
nOpenPrice=MathRound(OrderOpenPrice()/Point);
break;
}
if(nTicket>0)
{
OrderClose(nTicket,dLots,nOpenPrice*Point,nSlippage,Blue);
return;
}
}
// закрытие предыдущих ордеров Sell
if(nTotalSell>0)
{
nTicket=0;
dLots=0.0;
nOpenPrice=0;
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()!=Symbol()) continue;
if(OrderType()!=OP_SELL) continue;
if(OrderOpenTime()>=Time[0]) continue;
nTicket=OrderTicket();
dLots=OrderLots();
nOpenPrice=MathRound(OrderOpenPrice()/Point);
break;
}
if(nTicket>0)
{
OrderClose(nTicket,dLots,nOpenPrice*Point,nSlippage,Red);
return;
}
}
// корректировка цены ордеров Buy Stop
if(nTotalBuyStop>0)
{
nOpenPrice=nHighStop;
if(nHighStop<nAsk+MinStop) nOpenPrice=nAsk+MinStop;
nTicket=0; nStopLoss=0; nTakeProfit=0;
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()!=Symbol()) continue;
if(OrderType()!=OP_BUYSTOP) continue;
nValue=MathRound(OrderOpenPrice()/Point);
if(nValue<=nOpenPrice) continue;
nTicket=OrderTicket();
break;
}
if(nTicket>0)
{
OrderModify(nTicket,nOpenPrice*Point,nStopLoss*Point,nTakeProfit*Point,0,Blue);
return;
}
}
// корректировка цены ордеров Sell Stop
if(nTotalSellStop>0)
{
nOpenPrice=nLowStop;
if(nLowStop>nBid-MinStop) nOpenPrice=nBid-MinStop;
nTicket=0; nStopLoss=0; nTakeProfit=0;
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()!=Symbol()) continue;
if(OrderType()!=OP_SELLSTOP) continue;
nValue=MathRound(OrderOpenPrice()/Point);
if(nValue>=nOpenPrice) continue;
nTicket=OrderTicket();
break;
}
if(nTicket>0)
{
OrderModify(nTicket,nOpenPrice*Point,nStopLoss*Point,nTakeProfit*Point,0,Red);
return;
}
}
// установка ордера Buy Stop
if(nTotalBuy==0 && nTotalBuyStop==0)
{
nOpenPrice=nHighStop;
if(nHighStop<nAsk+MinStop) nOpenPrice=nAsk+MinStop;
nStopLoss=0; nTakeProfit=0;
res=OrderSend(Symbol(),OP_BUYSTOP,Lots,nOpenPrice*Point,nSlippage,nStopLoss*Point,nTakeProfit*Point,"",nMagic,0,Blue);
return;
}
// установка ордера Sell Stop
if(nTotalSell==0 && nTotalSellStop==0)
{
nOpenPrice=nLowStop;
if(nLowStop>nBid-MinStop) nOpenPrice=nBid-MinStop;
nStopLoss=0; nTakeProfit=0;
res=OrderSend(Symbol(),OP_SELLSTOP,Lots,nOpenPrice*Point,nSlippage,nStopLoss*Point,nTakeProfit*Point,"",nMagic,0,Red);
return;
}
// конец функции
}

_________________
[color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85]
Вернуться к началу
[профиль] [сообщение] [письмо]
mandor
знатный пермяк


Зарегистрирован: 19.09.2005
Сообщения: 406

СообщениеДобавлено: Сб Янв 14, 2006 6:52 pm    Заголовок сообщения: цитата

Я сам пока не планирую тестирование этого эксперта в реальном времени на своих серверах.
Поэтому, просьба воспользовавшимся этим экспертом выслать мне по почте результаты его работы на ящик mandorr@gmail.com
Да прибудет с вами Профит и большой Депозит ... Wink

_________________
[color=indigo:82edf1fa85]По настоящему человек раскрывается только на операционном столе (Херург).[/color:82edf1fa85]
Вернуться к началу
[профиль] [сообщение] [письмо]
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Forex Форум | Форекс Евроклуб » Торговые стратегии и МТС Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщению
Вы можете загружать файлы

Поддержка он-лайн
331-126-670








Forex / Форекс - главнаяTradingDesk Pro 5TradingDesk LiteForex EuroclubРублевый ФорексMini ForexАналитика, новости ForexКонкурс ФорексО рынке ForexФорумF.A.Q.Котировки ФорексФилиалы и агентыДоверительное управление 50X50WAP Форекс

© 1999-2008, Forex EuroClub. All rights reserved