CRYPTO S&R
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ea crypto hunter- new version 8.5.7.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
CRYPTO S&R — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с использованием скользящих средних (LWMA), индикатора MACD, моментума и уровней Фрактала, а также полос Боллинджера для формирования торговых сигналов на открытие длинных и коротких позиций. Поддерживаются функции управления рисками: автоматический расчёт размера лота с учётом свободного маржи и истории убытков, трейлинг-стоп, перемещение стоп-лосса в безубыток и стратегия принудительного закрытия позиций. Советник работает на каждом тике и при появлении новой свечи, отправляет уведомления и почтовые сообщения при открытии сделок.
Настройки программы
| Настройка | Описание |
|---|---|
| Enable Exit strategy (Exit) | Выход — Включает или отключает стратегию закрытия позиций по определённым условиям. |
| Enable "no loss" (USEMOVETOBREAKEVEN) | Перемещение в безубыток — Включает или отключает автоматическое перемещение стоп-лосса в безубыток при достижении заданного уровня прибыли. |
| When to move break even (WHENTOMOVETOBE) | Уровень для перемещения в безубыток — Прибыль в пунктах, при достижении которой стоп-лосс перемещается в точку входа. |
| How much pips to move sl (PIPSTOMOVESL) | Пункты для сдвига стоп-лосса — Расстояние в пунктах, на которое стоп-лосс сдвигается от цены входа при перемещении в безубыток. |
| Lots size (Lots) | Размер лота — Базовый размер лота для открытия новой позиции. |
| MaximumRisk | Максимальный риск — Максимальный процент свободного маржи, используемый для расчёта размера лота. |
| DecreaseFactor | Коэффициент уменьшения — Коэффициент, уменьшающий размер лота после серии убыточных сделок. |
| TrailingStop (TrailingStop) | Трейлинг-стоп — Расстояние в пунктах, при превышении которого стоп-лосс двигается вслед за ценой в прибыльную сторону. |
| Stop Loss (Stop_Loss) | Стоп-лосс — Стандартный уровень стоп-лосса в пунктах от цены входа в позицию. |
| MagicNumber (MagicNumber) | Магический номер — Уникальный идентификатор, присваиваемый ордерам и позициям советника для их фильтрации. |
| TakeProfit (Take_Profit) | Тейк-профит — Стандартный уровень тейк-профита в пунктах от цены входа в позицию. |
| FastMA (FastMA) | Быстрая скользящая средняя — Период быстрой скользящей средней, используемой для определения направления тренда. |
| SlowMA (SlowMA) | Медленная скользящая средняя — Период медленной скользящей средней, используемой для определения направления тренда. |
| Momentum_Sell (Mom_Sell) | Моментум для продажи — Пороговое значение моментума, при котором формируется сигнал на открытие короткой позиции. |
| Momentum_Buy (Mom_Buy) | Моментум для покупки — Пороговое значение моментума, при котором формируется сигнал на открытие длинной позиции. |
| Number Of High And Low (FractalNum) | Количество фракталов — Количество уровней Фрактала высоких и низких цен, используемых для анализа и отрисовки на графике. |
Поиск по коду файла
#property version "1.00"
#property strict
extern bool Exit=true;//Enable Exit strategy
extern bool USEMOVETOBREAKEVEN=true;//Enable "no loss"
extern double WHENTOMOVETOBE=10; //When to move break even
extern double PIPSTOMOVESL=5; //How much pips to move sl
extern double Lots=0.01; //Lots size
input double MaximumRisk =0;
input double DecreaseFactor=0;
extern double TrailingStop=40; //TrailingStop
extern double Stop_Loss=200; //Stop Loss
extern int MagicNumber=1234; //MagicNumber
input double Take_Profit=200; //TakeProfit
extern int FastMA=1; //FastMA
extern int SlowMA=5; //SlowMA
extern double Mom_Sell=0.3; //Momentum_Sell
extern double Mom_Buy=0.3; //Momentum_Buy
extern int FractalNum=10; // Number Of High And Low
int err;
int total=0;
double
Lot,Dmax,Dmin,// Amount of lots in a selected order
Lts, // Amount of lots in an opened order
Min_Lot, // Minimal amount of lots
Step, // Step of lot size change
Free, // Current free margin
One_Lot, // Price of one lot
Price, // Price of a selected order,
pips,
MA_1,MA_2,MACD_SIGNAL;
int Type,freeze_level,Spread;
double priceopen,stoploss,takeprofit;
int orderticket;
double Linenow=0;
double Lineprev=0;
double Linenow1=0;
double Lineprev1=0;
int
Period_MA_2, Period_MA_3, // Calculation periods of MA for other timefr.
Period_MA_02, Period_MA_03, // Calculation periods of supp. MAs
K2,K3,T,L;
datetime dt=0;
datetime dt1=0;
datetime dt2=0;
datetime dt12=0;
int First_Low_Candel=0,Secund_Low_Candel=3,First_High_Candel=0,Secund_High_Candel=3,FractalHCandel[],FractalLCandel[];
double FractalHigh[],FractalLow[],LineValLow=0,LineValHigh=0;
int First_Low_Candel1=0,Secund_Low_Candel1=3,First_High_Candel1=0,Secund_High_Candel1=3,FractalHCandel1[],FractalLCandel1[];
double FractalHigh1[],FractalLow1[],LineValLow1=0,LineValHigh1=0;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
del();
}
void OnTick(void)
{
// код доступен только после оплаты
}
int stop()
{
total=0;
HideTestIndicators(true);
double MA_1_t=iMA(NULL,L,FastMA,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_1
double MA_2_t=iMA(NULL,L,SlowMA,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_2
double middleBB=iBands(Symbol(),0,20, 2,0,0,MODE_MAIN,1);//middle
double lowerBB=iBands(Symbol(),0,20, 2,0,0,MODE_LOWER,1);//lower
double upperBB=iBands(Symbol(),0,20, 2,0,0,MODE_UPPER,1);//upper
double MacdMAIN=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
double MacdSIGNAL=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
double MacdMAIN0=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
double MacdSIGNAL0=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
double MA_3=iMA(NULL,L,3,0,MODE_EMA,PRICE_TYPICAL,0); // МА_3 DALYN GUPPY MMA
double MA_5=iMA(NULL,L,5,0,MODE_EMA,PRICE_TYPICAL,0); // МА_5 DALYN GUPPY MMA
double MA_8=iMA(NULL,L,8,0,MODE_EMA,PRICE_TYPICAL,0); // МА_8 DALYN GUPPY MMA
double MA_10=iMA(NULL,L,10,0,MODE_EMA,PRICE_TYPICAL,0); // МА_10 DALYN GUPPY MMA
double MA_12=iMA(NULL,L,12,0,MODE_EMA,PRICE_TYPICAL,0); // МА_12 DALYN GUPPY MMA
double MA_15=iMA(NULL,L,15,0,MODE_EMA,PRICE_TYPICAL,0); // МА_15 DALYN GUPPY MMA
double MA_30=iMA(NULL,L,30,0,MODE_EMA,PRICE_TYPICAL,0); // МА_30 DALYN GUPPY MMA
double MA_35=iMA(NULL,L,35,0,MODE_EMA,PRICE_TYPICAL,0); // МА_35 DALYN GUPPY MMA
double MA_40=iMA(NULL,L,40,0,MODE_EMA,PRICE_TYPICAL,0); // МА_40 DALYN GUPPY MMA
double MA_45=iMA(NULL,L,45,0,MODE_EMA,PRICE_TYPICAL,0); // МА_45 DALYN GUPPY MMA
double MA_50=iMA(NULL,L,50,0,MODE_EMA,PRICE_TYPICAL,0); // МА_50 DALYN GUPPY MMA
double MA_60=iMA(NULL,L,60,0,MODE_EMA,PRICE_TYPICAL,0); // МА_60 DALYN GUPPY MMA
HideTestIndicators(false);
for(int trade=OrdersTotal()-1; trade>=0; trade--)
{
if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol() || OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(((MA_3==MA_5 && MA_5==MA_8 && MA_8==MA_10 && MA_10==MA_12 && MA_12==MA_15)
||(MA_30==MA_35 && MA_35==MA_40 && MA_40==MA_45 && MA_45==MA_50 && MA_50==MA_60))
||(Close[1]<=lowerBB))
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Red))
Print("Did not close");
break;
Print(" CLOSE BY EXIT STRATEGY ");
}
else // go to short position
{
if(((MA_3==MA_5 && MA_5==MA_8 && MA_8==MA_10 && MA_10==MA_12 && MA_12==MA_15)
||(MA_30==MA_35 && MA_35==MA_40 && MA_40==MA_45 && MA_45==MA_50 && MA_50==MA_60))
||(Close[1]<=lowerBB))
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Red))
Print("Did not close");
break;
Print(" CLOSE BY EXIT STRATEGY ");
}
}
}
}
return(0);
}
void Trail1()
{
total=OrdersTotal();
for(int cnt=0; cnt<total; cnt++)
{
if(!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>pips*TrailingStop)
{
if(OrderStopLoss()<Bid-pips*TrailingStop)
{
RefreshRates();
stoploss=Bid-(pips*TrailingStop);
takeprofit=OrderTakeProfit();
double StopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL)+MarketInfo(Symbol(),MODE_SPREAD);
if(stoploss<StopLevel*pips)
stoploss=StopLevel*pips;
string symbol=OrderSymbol();
double point=SymbolInfoDouble(symbol,SYMBOLПоказано первые 50% кода (символов: 21511)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.