TRUE_SCALPER
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «truescalper_ron_mt4_v02a ts.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
TRUE_SCALPER — это торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на основе технических индикаторов и управления ордерами.
Логика открытия позиций основана на сравнении двух экспоненциальных скользящих средних (EMA с периодами 3 и 7) и индикатора RSI с периодом 2. При условии, что короткая EMA выше длинной и RSI находится ниже 50, советник открывает покупку; при обратных условиях — продажу.
Советник поддерживает фиксированные уровни тейк-профита и стоп-лосса, задаваемые пользователем в пунктах, а также функцию трейлинг-стоп для отслеживания прибыльных позиций. При достижении целевой прибыли открытые ордера закрываются.
Дополнительно советник определяет дневные экстремумы цен на основе заданного времени начала торговой сессии и отрисовывает на графике дневной канал для визуализации диапазона цены.
Настройки программы
| Настройка | Описание |
|---|---|
| start time (HourSetOrder) | Час установки ордера — Время начала торговой сессии, используемое для определения дневных экстремумов цен. |
| Lots | Объём лота — Размер торгового лота для открытия позиций. |
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах для фиксации прибыли. |
| StopLoss | Стоп-лосс — Уровень стоп-лосса в пунктах для ограничения убытков. |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах для отслеживания прибыльных позиций. |
| Slippage | Проскальзывание — Допустимое проскальзывание цены при исполнении ордеров в пунктах. |
| ProfitMade | Целевая прибыль — Целевая прибыль в пунктах, при достижении которой открытые ордера закрываются. |
Поиск по коду файла
#define MAGIC 20050817
extern int HourSetOrder = 9; // start time
extern double Lots=1;
extern int TakeProfit=50;
extern int StopLoss=25;
extern int TrailingStop=15;
extern int Slippage=2;
extern int ProfitMade=25;
double dHigh, dLow; // day extrema
int WidthChannel; // width of channel
int init()
{
// код доступен только после оплаты
}
int DefineDayExtremums() {
int CurrentDay=Day(), sb=0;
dHigh=0; dLow=500;
while (TimeDay(Time[sb])==CurrentDay && sb<1500) {
if (TimeHour(Time[sb])<=HourSetOrder) {
dHigh = MathMax(dHigh, High[sb]);
dLow = MathMin(dLow, Low[sb]);
}
sb++;
}
WidthChannel = (dHigh - dLow) / Point;
Comment("Width of channel: " + WidthChannel);
}
int DrawDayChannel() {
if (!IsTesting()) {
ObjectSet("HDayBorder", OBJPROP_TIME1, StrToTime(TimeToStr(Time[0], TIME_DATE)+" 00:00"));
ObjectSet("HDayBorder", OBJPROP_TIME2, Time[0]);
ObjectSet("HDayBorder", OBJPROP_PRICE1, dHigh);
ObjectSet("HDayBorder", OBJPROP_PRICE2, dHigh);
ObjectSet("HDayBorder", OBJPROP_COLOR, Blue);
ObjectSet("HDayBorder", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("LDayBorder", OBJPROP_TIME1, StrToTime(TimeToStr(Time[0], TIME_DATE)+" 00:00"));
ObjectSet("LDayBorder", OBJPROP_TIME2, Time[0]);
ObjectSet("LDayBorder", OBJPROP_PRICE1, dLow);
ObjectSet("LDayBorder", OBJPROP_PRICE2, dLow);
ObjectSet("LDayBorder", OBJPROP_COLOR, Red);
ObjectSet("LDayBorder", OBJPROP_STYLE, STYLE_DASH);
}
}
int deinit()
{
ObjectDelete("HDayBorder");
ObjectDelete("LDayBorder");
}
Comment("");
return(0);
int start()
{
// код доступен только после оплаты
}
DefineDayExtremums();
DrawDayChannel();
double p=Point();
int cnt=0;
int OrdersPerSymbol=0;
double bull=0;
double bear=0;
double RSI=0;
bool RSIPOS=0;
bool RSINEG=0;
double lobar=0;
double hibar=0;
double slBUY=0,tpBUY=0;
double slSEL=0,tpSEL=0;
if(AccountFreeMargin()<(1000*Lots)) {Print("-----NO MONEY"); return(0);}
if(Bars<100) {Print("-----NO BARS "); return(0);}
bull=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);
bear=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);
RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);
if(RSI>50) RSIPOS=true; else RSINEG=false;
if(RSI<50) RSIPOS=false; else RSINEG=true;
OrdersPerSymbol=0;
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbolПоказано первые 50% кода (символов: 3608)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.