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

RIS SolarSystem

ris solarsystem.mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор для MetaTrader 4, рассчитывающий технические значения на основе ценовых данных и отображающий результаты в виде графических объектов на графике. Генерирует стрелки сигналов на покупку и продажу, отрисовывает целевые уровни и линии на графике, а также выводит информационные метки с текущей ценой, прибылью в пунктах, стоп-лоссом и статусом сигнала. Поддерживает popup-уведомления и отправку email при появлении новых сигналов.

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

НастройкаОписание
string1 Заголовок настроек робота — Текстовый заголовок, обозначающий группу параметров робота.
EnableRobo Включить робота — Переключатель активации режима робота; при включении в комментарии графика отображается «Activated».
Qty Количество — Целочисленное значение, используемое как размер позиции или количество лотов.
Alignment Выравнивание — Целочисленный параметр, связанный с выравниванием отображения или расчёта.
EnablePartialExit Включить частичный выход — Переключатель, активирующий механизм частичного закрытия позиции при достижении целевого уровня.
TargetType Тип цели — Вариант настройки типа целевого уровня: фиксированный или движущийся.
TGT_value Значение цели — Числовое значение, задающее величину целевого уровня.
toCheck Параметр проверки — Целочисленный параметр, используемый для условной проверки в логике индикатора.
string3 Заголовок настроек индикатора — Текстовый заголовок, обозначающий группу параметров индикатора.
period Период — Целочисленный период, определяющий диапазон расчёта экстремумов.
smooth Сглаживание — Целочисленный параметр, задающий степень сглаживания расчётных значений.
DoAlert Уведомления Alert — Переключатель включения popup-уведомлений при появлении сигналов.
alertMail Email-уведомления — Переключатель включения отправки email при появлении сигналов.
string4 Заголовок общих настроек — Текстовый заголовок, обозначающий группу общих параметров отображения.
Arrow Gap (ArrowGap) Отступ стрелок — Целочисленный параметр, задающий величину отступа стрелок сигналов от ценового уровня.
digits Количество знаков — Целочисленное значение, определяющее точность отображения ценовых значений.
Bid_Ask_Colors Цвета Bid/Ask — Переключатель, включающий смену цвета цены в зависимости от направления изменения Bid.
FontColorPrice Цвет цены — Цвет текстового объекта отображения текущей рыночной цены.
Corner Угол расположения — Целочисленный параметр, определяющий угол привязки графических объектов на графике.
FontSizePrice Размер шрифта цены — Размер шрифта для отображения текущей рыночной цены.
FontSize Размер шрифта — Размер шрифта для информационных меток индикатора.
FontName Имя шрифта — Строковое значение, задающее используемый шрифт для отображения текстовых меток.
Получить полный код

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

#property version   "1.00"
#property strict
#property indicator_chart_window

#property indicator_buffers 4
#property indicator_color1 Aqua
#property indicator_color2 Red
#property indicator_color3 Snow
#property indicator_color4 Magenta

enum targettype
  {
   Fixed=0,
   Moving=1
  };

input string               string1           = "=== Robo Settings ===";
input bool                 EnableRobo        = false;
input int                  Qty               = 1;
input int                  Alignment         = 1;
input bool                 EnablePartialExit = true;
input targettype           TargetType        = Moving;
input double               TGT_value         = 10;
extern int                 toCheck           = 0;

input string               string3="=== Indicator Settings ===";
extern int period=35;
extern int smooth=10;
extern bool DoAlert=false;
extern bool alertMail=false;

input string               string4="=== General Settings ===";
input int                  ArrowGap=2;                  //Arrow Gap
input int                  digits            = 2;
input bool                 Bid_Ask_Colors    = True;
extern color               FontColorPrice    = Yellow;
input int                  Corner            = 1;
input int                  FontSizePrice     = 26;
input int                  FontSize          = 12;
input string               FontName          = "Arial Black";

datetime lastAlertTime;

double         ExtBuffer0[];
double         ExtBuffer1[];
double         ExtBuffer2[];
double         ExtBuffer3[];
double         ExtBuffer4[];
double         ExtBuffer5[];
double         ExtBufferh1[];
double         ExtBufferh2[];

#define LinesIdentifier "signalLines"

double Up_Arrow_TK[],Dn_Arrow_TK[],SymTarget[],SymBreakEven[],SymExit[];
string sigType="",SigStatus="";
double Old_Price,OldCrossPrice,CrossPrice,BuyCrossPrice,SellCrossPrice,BuyCondPrice,SellCondPrice,points=0,nettPL=0,PartialCrossPrice,tgt,buyBE,sellBE,sl;
bool buyPartialExit=false,sellPartialExit=false,buyBEven=false,sellBEven=false;
bool TakeNewEntry=FALSE,FreshEntry=FALSE,FirstTime=TRUE,TimeExit=FALSE,FirstSignal=TRUE,readyToBuy=False,readyToSell=False,buySL=false,sellSL=false;
double buyCondition=0,sellCondition=0;
double TotalValue=0,AvgValue=0,AvgDiff=0,AvgPL=0,NettPL=0,Over_All_Pending_Lot=0;
int EntryCounter=0,unit=1,CrossTime=0,ss;

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

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
      // код доступен только после оплаты
   }

   int    limit;
   double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
   double price;
   double MinL=0;
   double MaxH=0;

   if(EnableRobo)
      Comment("Activated");
   else
      Comment("Not Activated");

   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars-1;
   string sAlertMsg;

/*
   string name="ChartScreenShot"+"CHART_BEGIN"+string(limit)+".gif";

   Comment(name);

   if(ChartScreenShot(0,name,800,600,ALIGN_LEFT))
      Print("We've saved the screenshot ",name);
*/
   for(int i=limit; i>=0; i--)
     {
      MaxH=High[Highest(NULL,0,MODE_HIGH,period,i)];
      MinL= Low[Lowest(NULL,0,MODE_LOW,period,i)];
      price = (High[i]+Low[i])/2;
      Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
      Value=MathMin(MathMax(Value,-0.999),0.999);
      ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];
      if(ExtBuffer0[i]>0) ExtBuffer1[i]=10; else ExtBuffer1[i]=-10;
     }

   for(int i=limit; i>=0; i--)
     {
      double sum  = 0;
      double sumw = 0;

      for(int k=0; k<smooth && (i+k)<Bars; k++)
        {
         double weight=smooth-k;
         sumw  += weight;
         sum   += weight*ExtBuffer1[i+k];
        }
      if(sumw!=0)
         ExtBuffer2[i]=sum/sumw;
      else  ExtBuffer2[i]=0;
     }
   for(int i=limit; i>=0; i--)
     {
      double sum  = 0;
      double sumw = 0;

      for(int k=0; k<smooth && (i-k)>=0; k++)
        {
         double weight=smooth-k;
         sumw  += weight;
         sum   += weight*ExtBuffer2[i-k];
        }
      if(sumw!=0)
         ExtBuffer3[i]=sum/sumw;
      else  ExtBuffer3[i]=0;
     }
   for(int i=limit; i>=0; i--)
     {
      ExtBuffer4[i]=EMPTY_VALUE;
      ExtBuffer5[i]=EMPTY_VALUE;
      ExtBufferh1[i]=EMPTY_VALUE;
      ExtBufferh2[i]=EMPTY_VALUE;
      if(ExtBuffer3[i]>0) { ExtBuffer4[i]=ExtBuffer3[i]; ExtBufferh1[i]=ExtBuffer3[i]; }
      if(ExtBuffer3[i]<0) { ExtBuffer5[i]=ExtBuffer3[i]; ExtBufferh2[i]=ExtBuffer3[i]; }

      if(ExtBuffer3[i+1]<0 && ExtBuffer3[i]>0 && ss!=12 && (int)Time[i]>CrossTime)
        {
         ss=12;
         Up_Arrow_TK[i]=Low[i]*(1-0.0001*ArrowGap);
         sigType="BUY";
         OldCrossPrice=CrossPrice;
         CrossTime=(int)Time[i];
         CrossPrice=Open[i];

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

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

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

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

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

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

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