← К каталогу
Исходный код · ID 690

trendlineorder.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Советник для платформы MetaTrader 4 предназначен для автоматической торговли на основе трендовой линии, нарисованной пользователем на графике. Он отслеживает пересечение цены относительно линии тренда и открывает рыночные позиции в соответствии с направлением пробоя. Советник управляет закрытием позиций через стоп-лосс и тейк-профит, а также реализует функцию трейлинг-стопа с несколькими режимами расчёта уровня.

Трейлинг-стоп поддерживает различные режимы определения уровня стоп-лосса, включая фиксированное расстояние и динамические методы, зависящие от волатильности инструмента. Каждый режим настраивается отдельными параметрами чувствительности и триггера, определяющими момент срабатывания. Советник уведомляет трейдера о событиях открытия и закрытия позиций через систему алертов.

Частота проверки торговых сигналов регулируется параметром интервала оценки, который позволяет выбрать анализ по каждому тику, по каждому новому бару или через заданный промежуток времени. Перед открытием позиции советник проверяет наличие достаточного свободного маржа на счёте. Идентификация ордеров осуществляется с помощью уникального магического номера, формируемого на основе текущего таймфрейма и торгового символа.

Настройки программы

НастройкаОписание
1 chart, 0 tick, > 0 specified min (Evaluate_Interval) Интервал оценки — Задаёт периодичность проверки торговых сигналов: по каждому тику, по каждому новому бару или через указанное количество минут.
Lots Объём позиции — Размер позиции в лотах для открытия новой сделки.
TP Тейк-профит — Уровень фиксированного тейк-профита в пунктах от цены входа.
SL Стоп-лосс — Уровень фиксированного стоп-лосса в пунктах от цены входа.
TS_Trigger Триггер трейлинг-стопа — Расстояние в пунктах от цены входа, при превышении которого трейлинг-стоп начинает отслеживать позицию.
0 = disabled, 1 = Fixed SL, 2 = ATR, 3 = Half Volatility (TS_Mode) Режим трейлинг-стопа — Режим расчёта трейлинг-стопа: отключён, фиксированное расстояние, на основе среднестатистического диапазона или на основе половины волатильности.
TS_Sensitivity Чувствительность трейлинг-стопа — Чувствительность трейлинг-стопа в пунктах, определяющая минимальное смещение уровня стоп-лосса для его изменения.
applied only if TrailingStopMode = 2 or 3 (TS_DynamicFactor) Динамический коэффициент — Множитель, применяемый при расчёте динамического уровня трейлинг-стопа в режимах, зависящих от волатильности.
Enable_Alert Включить уведомления — Включает или отключает отправку уведомлений о событиях открытия и закрытия позиций.
Получить полный код

Поиск по коду файла

/*
Because if trendline is diagonal, the order price must be constantly modified to go along with the line. 
So if order price is needed to be constantly modified, it's the job of Expert Advisor not script, because script, 
like you said, run only one-time when you double click on it.
By the time I described to you, I've coded the expert advisor for you already, so check it out in Forward Testing 
not Backtesting. You must draw a trendline and name it tx (case sensitive). Attach the expert to the same chart 
that trendline is drawn. Then you can choose to open only Long, Short, Both, or none in the settings window. When 
bid price crosses up the trendline, buy at market price. When bid price crosses down the trendline, sell at market price.
*/

extern int       Evaluate_Interval=1; // -1 chart, 0 tick, > 0 specified min

extern double    Lots=1;
extern int       TP=150;
extern int       SL=30;

extern int       TS_Trigger=15;
extern int       TS_Mode=1;       // 0 = disabled, 1 = Fixed SL, 2 = ATR, 3 = Half Volatility
extern int       TS_Sensitivity=5;
extern double    TS_DynamicFactor=0.5;   // applied only if TrailingStopMode = 2 or 3

extern bool      Enable_Alert=false;

string expert_name = "TrendlineOrder_v1";
int bars_count = 0;
int magicnum;
int open_slippage=5;
int close_slippage=10;
datetime dtNextEvaluate;
double value1;
double bid1;
bool executed;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {
   return(0);
  }

int start()
{
      // код доступен только после оплаты
   }

int EnterBuy()
{

  double TrueSL, TrueTP;
  if (SL > 0) TrueSL = Ask-(SL*Point);
  if (TP > 0) TrueTP = Ask+(TP*Point);

  int ret = OrderSendEx(Symbol(), OP_BUY, Lots, Ask, open_slippage*Point, TrueSL, TrueTP, "rsx_swinger_2p1 " + Symbol() + Period(), magicnum, 0, Yellow);
  return(ret);
}

int

Показано первые 50% кода (символов: 5948)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
594,80₽ ≈ $7.27