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

pcs-02.mq4

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

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

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

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

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

НастройкаОписание
Lots Объём сделки — Объём позиции в лотах для открытия новой сделки.
StopLoss Стоп-лосс — Размер стоп-лосса в пунктах от цены входа.
TakeProfit Тейк-профит — Размер тейк-профита в пунктах от цены входа.
MagicNumber Магический номер — Уникальный идентификатор ордеров советника для их отслеживания и управления.
PCP Название индикатора — Текстовая строка, отображаемая в комментарии или на графике для идентификации используемого индикатора.
Risk Коэффициент риска — Множитель, определяющий ширину зоны канала для расчёта уровней стопов.
Price Channel Period (ChannelPeriod) Период канала — Количество баров, используемое для построения ценового канала.
Получить полный код

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

#include <stdlib.mqh>
#include <stderror.mqh>

extern double Lots          = 0.1;
extern int    StopLoss      = 1000;
extern int    TakeProfit    = 1000;
extern int    MagicNumber   = 6540123;
extern string PCP           = "   ---   ????????? PriceChannel_Stop_v6   ---   ";
extern double Risk          = 0.30;
extern int    ChannelPeriod = 9;   //Price Channel Period
       int    Slippage      = 3;
       double SL,TP;
       int    i,j,CBar,CTicket=0;
       string S; 
       double UpTrendSignal[];
       double DownTrendSignal[];

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

void PriceChannel_Stop_v6()
{
   double UpTrendBuffer[];
   double DownTrendBuffer[];
   double UpTrendLine[];
   double DownTrendLine[];
   double UpTrendBar[];
   double DownTrendBar[];
   int Signal=1;          //Display signals mode: 1-Signals & Stops; 0-only Stops; 2-only Signals;
   int Line=1;            //Display line mode: 0-no,1-yes  
   int ColorBar=1;        //Display color bars mode: 0-no,1-yes 
   int TimeFrame=0;   
   int Nbars=100;
   datetime TimeArray[];
   int    i,shift,trend,y=0;
   double high, low, price, sum, VolAverage,UpBar,DnBar;
   double smax[25000],smin[25000],bsmax[25000],bsmin[25000],Mid[25000],Vol[25000];
   double LowArray[],HighArray[];

   for (shift=Nbars-1;shift>=0;shift--)
   {
   UpTrendBuffer[shift]=0.0;
   DownTrendBuffer[shift]=0.0;
   UpTrendSignal[shift]=0.0;
   DownTrendSignal[shift]=0.0;
   UpTrendLine[shift]=EMPTY_VALUE;
   DownTrendLine[shift]=EMPTY_VALUE;
   UpTrendBar[shift]=0.0;
	DownTrendBar[shift]=0.0;
   }

   ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame); 
   ArrayCopySeries(LowArray,MODE_LOW,Symbol(),TimeFrame);     
   ArrayCopySeries(HighArray,MODE_HIGH,Symbol(),TimeFrame);  

   for(i=0,y=0;i<Nbars;i++)
   {
   if (Time[i]<TimeArray[y]) y++;  
   smin[i]=LowArray[Lowest(NULL,TimeFrame,MODE_LOW,ChannelPeriod,y)]; 
   smax[i]=HighArray[Highest(NULL,TimeFrame,MODE_HIGH,ChannelPeriod,y)];       
   Mid[i]=0.5*(smin[i]+smax[i]);
   }  

   for (shift=Nbars-ChannelPeriod-1;shift>=0;shift--)
   {	  

     bsmax[shift]=smax[shift]-(smax[shift]-smin[shift])*Risk;
	  bsmin[shift]=smin[shift]+(smax[shift]-smin[shift])*Risk;

     if(Risk>0)
     {
      if(Close[shift]>bsmax[shift])  trend=1; 
      if(Close[shift]<bsmin[shift])  trend=-1;
     }
     else
     {
      if(Close[shift]>bsmax[shift+1])  trend=1; 
      if(Close[shift]<bsmin[shift+1])  trend=-1;
     } 

	  if(trend>0)
     {
     if(Risk>0 && Close[shift]<bsmin[shift]) bsmin[shift]=bsmin[shift+1];
     if(bsmin[shift]<bsmin[shift+1]) bsmin[shift]=bsmin[shift+1];
     }
     if(trend<0)
     {
     if(Risk>0 && Close[shift]>bsmax[shift]) bsmax[shift]=bsmax[shift+1];
     if(bsmax[shift]>bsmax[shift+1]) bsmax[shift]=bsmax[shift+1];
     } 

	  UpBar=bsmax[shift];
	  DnBar=bsmin[shift];

	  if ( Risk == 0 ){UpBar=Mid[shift];DnBar=Mid[shift];}

	  if (trend>0) 
	  {
	     if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)
	     {

	        UpTrendSignal[shift]=bsmin[shift];
	        if(Line>0) UpTrendLine[shift]=bsmin[shift];

	     }
	     else
	     {
	     UpTrendBuffer[shift]=bsmin[shift];
	     if(Line>0) UpTrendLine[shift]=bsmin[shift];
	     UpTrendSignal[shift]=-1;
	     }
	  if(ColorBar>0)
	        {
	           if(Close[shift]>UpBar)
	           {
	              UpTrendBar[shift]=High[shift];
	              DownTrendBar[shift]=Low[shift];
	           }
	           else
	           {
	              UpTrendBar[shift]=EMPTY_VALUE;
	              Do

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

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

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

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

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

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

Стоимость полного кода
513,20₽ ≈ $6.27