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

Trendline Trader

trendline.trader.mq4
Вы автор или правообладатель?

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

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

О программе

Trendline Trader — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник строит трендовые линии на графике для визуализации уровней стоп-ордеров и лимитных ордеров, а также управляет их размещением и модификацией через торговый API MetaTrader. Продукт позволяет отображать линии для ордеров типа BuyStop, SellStop, BuyLimit и SellLimit с настраиваемыми параметрами риска и размера лота.

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

НастройкаОписание
true allows orders to be placed (AllowLiveTrade) Разрешение реальной торговли — Переключатель, определяющий, разрешён ли советнику размещение реальных ордеров на счёте; при значении false ордера не отправляются.
%account balance to risk per position (MaximumRisk) Максимальный риск — Процент от свободного баланса счёта, который советник использует для расчёта размера лота при открытии позиции.
lot size divisor(reducer) during loss streak (DecreaseFactor) Фактор уменьшения лота — Делитель, уменьшающий рассчитанный размер лота при серии убыточных сделок; чем выше значение, тем сильнее снижение лота.
Получить полный код

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

extern bool    AllowLiveTrade                =false;//true allows orders to be placed
extern bool    Plot.Stop.Order.TrendLines    =false;//true allows stop order trendlines to be plotted
extern bool    Plot.Limit.Order.TrendLines   =false;//true allows limit order trendlines to be plotted

extern bool    Use.Money.Mgt                 =false;//if false, uses Minimum.Lot
extern double  Minimum.Lot                   =1.00; //Smallest lot size to trade, Use.MM true or false
extern double  MaximumRisk                   =0.02; //%account balance to risk per position
extern double  DecreaseFactor                =2;    //lot size divisor(reducer) during loss streak
extern double  Lot.Margin                    =50;   //Margin required to trade 1 lot

string         TradeSymbol;
int            total,cnt;
double         bs,bssl,bstp,ss,sssl,sstp,bl,blsl,bltp,sl,slsl,sltp,Slippage;

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

int deinit() { Print("Deinitialising"); return(0); }

int start() {
      // код доступен только после оплаты
   }
   TradeSymbol=Symbol();Slippage=Ask-Bid;

   if(Plot.Stop.Order.TrendLines) {
   double BuyStop    =ObjectGetValueByShift("BuyStop",0);
   double BuyStopSL  =ObjectGetValueByShift("BuyStopSL",0);
   double BuyStopTP  =ObjectGetValueByShift("BuyStopTP",0);
   double SellStop   =ObjectGetValueByShift("SellStop",0);
   double SellStopSL =ObjectGetValueByShift("SellStopSL",0);
   double SellStopTP =ObjectGetValueByShift("SellStopTP",0);
   double bs;     bs    =NormalizeDouble(BuyStop,Digits);
   double bssl;   bssl  =NormalizeDouble(BuyStopSL,Digits);
   double bstp;   bstp  =NormalizeDouble(BuyStopTP,Digits);
   double ss;     ss    =NormalizeDouble(SellStop,Digits);
   double sssl;   sssl  =NormalizeDouble(SellStopSL,Digits);
   double sstp;   sstp  =NormalizeDouble(SellStopTP,Digits);
   }//end if

   if(Plot.Limit.Order.TrendLines) {   
   double BuyLimit   =ObjectGetValueByShift("BuyLimit",0);
   double BuyLimitSL =ObjectGetValueByShift("BuyLimitSL",0);
   double BuyLimitTP =ObjectGetValueByShift("BuyLimitTP",0);
   double SellLimit  =ObjectGetValueByShift("SellLimit",0);
   double SellLimitSL=ObjectGetValueByShift("SellLimitSL",0);
   double SellLimitTP=ObjectGetValueByShift("SellLimitTP",0);
   double bl;     bl    =NormalizeDouble(BuyLimit,Digits);
   double blsl;   blsl  =NormalizeDouble(BuyLimitSL,Digits);
   double bltp;   bltp  =NormalizeDouble(BuyLimitTP,Digits);
   double sl;     sl    =NormalizeDouble(SellLimit,Digits);
   double slsl;   slsl  =NormalizeDouble(SellLimitSL,Digits);
   double sltp;   sltp  =NormalizeDouble(SellLimitTP,Digits);
   }//end if

   PrintComments();

   total=OrdersTotal();
   if(TotalTradesThisSymbol(TradeSymbol)==0) {  int BS=0,SS=0,BL=0,SL=0;   }
   if(TotalTradesThisSymbol(TradeSymbol)>0)  {
      for(cnt=0;cnt<total;cnt++) {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==TradeSymbol) {
            if(OrderMagicNumber()==11) { BS=OrderTicket(); }
            if(OrderMagicNumber()==22) { SS=OrderTicket(); }
            if(OrderMagicNumber()==33) { BL=OrderTicket(); }
            if(OrderMagicNumber()==44) { SL=OrderTicket(); }}}}

   int ticket=0;
   if(AllowLiveTrade)   {
      if(Plo

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

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

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

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

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

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

Стоимость полного кода
1 003,30₽ ≈ $12.26