Crypto Scalper
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «crypto scalper@amazing_owner.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Crypto Scalper — торговый советник для платформы MetaTrader 4, предназначенный для скальпинг-торговли на криптовалютных и фиатных парах. Советник анализирует рыночные данные с использованием нескольких технических индикаторов и формирует сигналы на открытие длинных и коротких позиций. Поддерживается автоматическое управление сделками: фиксация прибыли, трейлинг-стоп, перемещение стоп-лосса в безубыток и защита по средствам.
Советник работает в режиме реального времени, обрабатывая тиковые данные и новые бары. При открытии сделок учитываются допустимый размер лота, свободные средства на счёте и максимальное количество одновременных позиций. Система уведомлений отправляет алерты, push-уведомления и электронные письма при срабатывании сигналов.
Настройки программы
| Настройка | Описание |
|---|---|
| Use_TP_In_Money | Фиксация прибыли в деньгах — Включает или отключает режим фиксации прибыли в денежном эквиваленте |
| TP_In_Money | Сумма прибыли для закрытия — Целевая сумма прибыли в денежных единицах, при достижении которой все позиции закрываются |
| Use_TP_In_percent | Фиксация прибыли в процентах — Включает или отключает режим фиксации прибыли в процентах от баланса |
| TP_In_Percent | Процент прибыли для закрытия — Процент от текущего баланса, при достижении которого все позиции закрываются |
| every tick\open price (tick) | Обработка на каждом тике — Определяет, обрабатывать ли сигналы на каждом тике или только при новом баре |
| BarsToCount | Количество баров для анализа — Число баров, используемых для анализа ценовых данных |
| Enable Exit strategy (Exit) | Стратегия выхода — Включает или отключает стратегию выхода из позиции |
| IncreaseFactor (IncreaseFactor) | Коэффициент увеличения лота — Коэффициент, определяющий увеличение размера лота после серии убытков |
| Num.Of Candles For Divergence (CandlesToRetrace) | Свечей для расчёта дивергенции — Количество свечей, используемых для расчёта параметров дивергенции |
| Lots size (Lots) | Размер лота — Базовый размер лота для открытия сделок |
| TrailingStop (TrailingStop) | Трейл-стоп — Расстояние трейл-стопа в пунктах от текущей цены |
| Stop Loss (Stop_Loss) | Стоп-лосс — Размер стоп-лосса в пунктах от цены входа |
| MagicNumber (MagicNumber) | Магический номер — Уникальный идентификатор ордеров, открытых данным советником |
| TakeProfit (Take_Profit) | Тейк-профит — Размер тейк-профита в пунктах от цены входа |
| FastMA (FastMA) | Период быстрой MA — Период быстрой скользящей средней |
| SlowMA (SlowMA) | Период медленной MA — Период медленной скользящей средней |
| Momentum_Sell (Mom_Sell) | Порог импульса для продажи — Значение импульса, при котором формируется сигнал на открытие короткой позиции |
| Momentum_Buy (Mom_Buy) | Порог импульса для покупки — Значение импульса, при котором формируется сигнал на открытие длинной позиции |
| Use Equity Stop (UseEquityStop) | Защита по средствам — Включает автоматическое закрытие позиций при достижении лимита убытков по средствам |
| Total Equity Risk (TotalEquityRisk) | Максимальный риск средств — Максимальный допустимый процент убытков от средств для автоматического закрытия |
| Max_Trades | Максимум сделок — Максимальное количество одновременно открытых сделок |
| IF USE TRAILING STOP (USETRAILINGSTOP) | Использовать трейл-стоп — Включает или отключает трейлинг-стоп по расстоянию от цены |
| WHEN TO TRAIL (WHENTOTRAIL) | Расстояние для начала трейлинга — Расстояние в пунктах от цены входа, при достижении которого начинается трейлинг |
| TRAIL AMOUNT (TRAILAMOUNT) | Величина трейла — Величина сдвига трейл-стопа в пунктах |
| Distance From Candle (Distance_From_Candle) | Расстояние от свечи — Отступ от экстремума свечи для установки уровня стоп-лосса при свечном трейлинге |
| USE CANDEL TRAIL (USECANDELTRAIL) | Свечной трейл-стоп — Включает трейлинг-стоп на основе уровней свечей |
| NUMBER OF CANDLES (X) | Количество свечей для экстремумов — Число свечей для определения минимума и максимума при свечном трейлинге |
| Enable "no loss" (USEMOVETOBREAKEVEN) | Переход в безубыток — Включает автоматическое перемещение стоп-лосса в точку безубытка |
| When to move break even (WHENTOMOVETOBE) | Расстояние для перехода в безубыток — Расстояние в пунктах от цены входа, при достижении которого стоп-лосс перемещается в безубыток |
| How much pips to move sl (PIPSTOMOVESL) | Сдвиг стоп-лосса в пунктах — Величина сдвига стоп-лосса в пунктах при перемещении в безубыток |
Поиск по коду файла
#property version "1.00"
#property strict
extern bool Use_TP_In_Money=false;
extern double TP_In_Money=10;
extern bool Use_TP_In_percent=false;
extern double TP_In_Percent=10;
extern bool tick=true;//every tick\open price
extern int BarsToCount=10;
extern bool Exit=false;//Enable Exit strategy
extern double IncreaseFactor=0.001; //IncreaseFactor
extern int CandlesToRetrace=10; //Num.Of Candles For Divergence
extern double Lots=0.01; //Lots size
extern double TrailingStop=40; //TrailingStop
extern double Stop_Loss=20; //Stop Loss
extern int MagicNumber=1234; //MagicNumber
input double Take_Profit=50; //TakeProfit
extern int FastMA=6; //FastMA
extern int SlowMA=85; //SlowMA
extern double Mom_Sell=0.3; //Momentum_Sell
extern double Mom_Buy=0.3; //Momentum_Buy
input bool UseEquityStop = true; //Use Equity Stop
input double TotalEquityRisk = 1.0; //Total Equity Risk
input int Max_Trades=10;
extern bool USETRAILINGSTOP=true; //IF USE TRAILING STOP
extern int WHENTOTRAIL=40;//WHEN TO TRAIL
extern int TRAILAMOUNT=40;//TRAIL AMOUNT
extern int Distance_From_Candle=3;//Distance From Candle
extern bool USECANDELTRAIL=true;//USE CANDEL TRAIL
extern int X=3;//NUMBER OF CANDLES
extern bool USEMOVETOBREAKEVEN=true;//Enable "no loss"
extern double WHENTOMOVETOBE=30; //When to move break even
extern double PIPSTOMOVESL=30; //How much pips to move sl
int buyticket;
int selticket;
int BUYSTOPCANDLE;
int SELSTOPCANDLE;
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;
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;
double AccountEquityHighAmt,PrevEquity;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
void OnTick(void)
{
// код доступен только после оплаты
}
void adjustTrail()// CANDLE TRAIL
{
static datetime dtBarCurrent=WRONG_VALUE;
datetime dtBarPrevious=dtBarCurrent;
dtBarCurrent=(datetime) SeriesInfoInteger(_Symbol,_Period,SERIES_LASTBAR_DATE);
bool NewBarFlag=(dtBarCurrent!=dtBarPrevious);
BUYSTOPCANDLE=iLowest(Symbol(),0,1,X,0);//Lowest
SELSTOPCANDLE=iHighest(Symbol(),0,2,X,0);//Highest
for(int b=OrdersTotal()-1; b>=0; b--)
{
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol())//Symbol
if(OrderType()==OP_BUY)//OrderType
if(USECANDELTRAIL)
{
if(NewBarFlag)
{
RefreshRates();
stoploss=Low[BUYSTOPCANDLE]-Distance_From_Candle*pips;
takeprofit=OrderTakeProfit()+pips*TRAILAMOUNT;
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_POINT);
if(MathAbs(OrderStopLoss()-stoploss)>point)
if((pips*TRAILAMOUNT)>(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_FREEZE_LEVEL)*pips)
if(CheckStopLoss_Takeprofit(OP_BUY,stoploss,takeprofit))
if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),stoploss,takeprofit))
if(OrderStopLoss()<Low[BUYSTOPCANDLE]-Distance_From_Candle*pips)
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Low[BUYSTOPCANDLE]-Distance_From_Candle*pips,takeprofit,0,CLR_NONE))
Print("eror");
}
}
else
if(Bid-OrderOpenPrice()>WHENTOTRAIL*pips)
if(OrderStopLoss()<Bid-pips*TRAILAMOUNT)
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(pips*TRAILAMOUNT),OrderTakeProfit(),0,CLR_NONE))//ԿԿԿԿԿ ԿԿ STOPLOS
Print("eror");
}
for(int s=OrdersTotal()-1; s>=0; s--)
{
if(OrderSelect(s,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol())
if(OrderType()==OP_SELL)
if(USECANDELTRAIL)
{
if(NewBarFlag)
{
RefreshRates();
stoploss=High[SELSTOPCANDLE]+Distance_From_Candle*pips;
takeprofit=OrderTakeProfit()-pips*TRAILAMOUNT;
double StopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL)+MarketInfo(Symbol(),MODE_SPREAD);
if(stoploss<StopLevel*pips)
stoploss=StopLevel*pips;
if(takeprofit<StopLevel*pips)
takeprofit=StopLevel*pips;
string symbol=OrderSymbol();
double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
if(MathAbs(OrderStopLoss()-stoploss)>point)
if((pips*TRAILAMOUNT)>(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_FREEZE_LEVEL)*pips)
if(CheckStopLoss_Takeprofit(OP_SELL,stoploss,takeprofit))
if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),stoploss,takeprofit))
if(OrderStopLoss()>High[SELSTOPCANDLE]+Distance_From_Candle*pips)
if(!OrderModify(OrderTicket(),OrderOpenPrice(),High[SELSTOPCANDLE]+Distance_From_Candle*pips,takeprofit,0,CLR_NONE))
Print("eror");
}
}
else
if(OrderOpenPrice()-Ask>WHENTOTRAIL*pips)
if(OrderStopLoss()>Ask+pips*TRAILAMOUNT || OrderStopLoss()==0)
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(pips*TRAILAMOUNT),OrderTakeProfit(),0,CLR_NONE))
Print("eror");
}
}
void MOVETOBREAKEVEN()
{
for(int b=OrdersTotal()-1; b>=0; b--)
{
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol())
if(OrderType()==OP_BUY)
if(Bid-OrderOpenPrice()>WHENTOMOVETOBE*pips)
if(OrderOpenPrice()>OrderStopLoss())
if(CheckStopLoss_Takeprofit(OP_BUY,OrderOpenPrice()+(PIPSTOMOVESL*pips),OrderTakeProfit()))
if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+(PIPSTOMOVESL*pips),OrderTakeProfit()))
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+(PIPSTOMOVESL*pips),OrderTakeProfit(),0,CLR_NONE)Показано первые 50% кода (символов: 19268)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.