Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Оцени его работу в терминале MetaTrader 5
Altarius RSI Stohastic - эксперт для MetaTrader 5
- Опубликовал:
- Vladimir Karputov
- Просмотров:
- 2082
- Рейтинг:
- Опубликован:
- 2016.12.20 11:55
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Советник использует два индикатора iStochastic (Stochastic Oscillator) и один iRSI (RSI, Relative Strength Index).
Автор идеи — cxa, автор кода mq5 — barabashkakvn.
Вычисляет размер лота исходя из анализа закрытых сделок:
//+------------------------------------------------------------------+
//| Расчет оптимальной величины лота |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int losses=0; // number of losses deals without a break
//--- select lot size
lot=NormalizeDouble(m_account.FreeMargin()*MaximumRisk/1000.0,2);
//--- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
//--- request trade history
HistorySelect(TimeCurrent()-86400,TimeCurrent()+86400);
//---
uint total=HistoryDealsTotal();
//--- for all deals
for(uint i=0;i<total;i++)
{
if(!m_deal.SelectByIndex(i))
{
Print("Error in history!");
break;
}
if(m_deal.Symbol()!=Symbol() || m_deal.Entry()!=DEAL_ENTRY_OUT)
continue;
//---
if(m_deal.Profit()>0)
break;
if(m_deal.Profit()<0)
losses++;
}
if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- return lot size
if(lot<0.1)
lot=0.1;
return(lot);
}
//| Расчет оптимальной величины лота |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int losses=0; // number of losses deals without a break
//--- select lot size
lot=NormalizeDouble(m_account.FreeMargin()*MaximumRisk/1000.0,2);
//--- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
//--- request trade history
HistorySelect(TimeCurrent()-86400,TimeCurrent()+86400);
//---
uint total=HistoryDealsTotal();
//--- for all deals
for(uint i=0;i<total;i++)
{
if(!m_deal.SelectByIndex(i))
{
Print("Error in history!");
break;
}
if(m_deal.Symbol()!=Symbol() || m_deal.Entry()!=DEAL_ENTRY_OUT)
continue;
//---
if(m_deal.Profit()>0)
break;
if(m_deal.Profit()<0)
losses++;
}
if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- return lot size
if(lot<0.1)
lot=0.1;
return(lot);
}
Результаты тестов на EURUSD и USDJPY:
SendClose
Советник открывает или закрывает позиции при пересечении линий.
Forex EntryИспользуются значения Parabolic SAR и трёх EMA (с периодами 10, 25 и 50).
gazonkos
Советник работает на поиске импульса: iClose(t2)-iClose(t1).
BigBarSoundСоветник выдает звуковой сигнал и алерт при превышении определенного размера свечи.