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

Caio Trader

!caio trader.mq5

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

oozaru pro(1).mq4MQL4 / MetaTrader 4 · 2 общих теговoverdraftspazm v6.mq4MQL4 / MetaTrader 4 · 2 общих теговturtletraderv1_0_1.mq4MQL4 / MetaTrader 4 · 2 общих тегов#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Caio Trader — это пользовательский индикатор для MetaTrader 4, отображающий торговые сигналы на графике в виде стрелок и линий. Индикатор рассчитывает несколько технических анализаторов, включая скользящие средние, торговые полосы и Value Chart, комбинируя их для формирования сигналов CALL и PUT. На графике отображаются стрелки возможных входов, подтверждённых сигналов и результатов сделок.

Индикатор включает встроенную панель бэктеста, отслеживающую количество выигрышей, убытков и ничьих, процент выигрышей и серии последовательных результатов. Поддерживаются уведомления: звуковые сигналы, email и push-уведомления.

Продукт позволяет интегрировать внешние индикаторы через механизм комбинеров и подключать автоматизированные торговые роботы (MT2, MX2, PricePro, TopWin) для отправки сигналов по таймеру. Доступны настройки фильтрации по тренду, пипсовым уровням, типу экспирации и параметрам мартингейла.

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

НастройкаОписание
________BACKTESTE____________________ Группа бэктеста — Разделитель группы настроек бэктеста.
backtest_bars Бары бэктеста — Количество баров для расчёта истории бэктеста на графике.
exp_bars Экспирация баров — Количество баров экспирации для оценки результата сделки.
block_candles Блок свечей — Максимальное количество свечей блока для предотвращения повторных сигналов.
AlertsMessage Уведомления о сигналах — Включает или отключает звуковые и текстовые уведомления о появлении новых торговых сигналов.
_________MODOOPERACIONAL___________________ Группа операционных настроек — Разделитель группы операционных настроек.
Filtro Фильтр тренда — Включает фильтр средней скользящей в пользу текущего тренда.
pips Пипсы фильтра — Количество пипсов для фильтрации сигналов по ценовому расстоянию.
periodoEMA Период EMA тренда — Период экспоненциальной скользящей средней для определения тренда.
metodo Метод скользящей средней — Метод расчёта скользящей средней для определения тренда (SMA, EMA и др.).
preco Тип цены EMA — Тип цены для расчёта экспоненциальной скользящей средней тренда.
HalfLength Период TMA — Период центрированной скользящей средней (TMA) для расчёта полос.
Price Тип цены TMA — Тип цены, используемый для расчёта центрированной скользящей средней (TMA).
period Период полос TMA — Период расчёта центрированных торговых полос (TMA).
Multiplier Множитель отклонения — Множитель отклонения для расчёта верхней и нижней границ полос.
Type Метод расчёта отклонения — Метод расчёта отклонения для торговых полос (ATR, стандартная ошибка, стандартное отклонение с коррекцией или без).
DevLookBack Период отклонения назад — Количество баров назад для расчёта отклонения в системе полос.
_________VALUE___________________ Группа Value Chart — Разделитель группы настроек Value Chart.
HabilitarValueChart Активация Value Chart — Включает или отключает анализ Value Chart для формирования сигналов.
VC_Overbough Зона перекупленности — Пороговая зона перекупленности Value Chart для формирования сигнала PUT.
VC_Oversolde Зона перепроданности — Пороговая зона перепроданности Value Chart для формирования сигнала CALL.
_________OPERACIONAL7___________________ Группа торговых полос — Разделитель группы настроек торговых полос.
Bandas Активация полос — Включает или отключает использование торговых полос в стратегии.
BB_Period Период полос — Период расчёта торговых полос (настройка Bandas).
BB_Dev Отклонение полос — Задаёт величину отклонения для торговых полос (настройка Bandas).
BB_Shift Сдвиг полос — Сдвиг торговых полос относительно текущей свечи (настройка Bandas).
__________INDICADOR_EXTERNO_0_______________________ Группа индикатора 0 — Разделитель группы первого внешнего индикатора.
COMBINER0 Активация комбинера 0 — Включает или отключает первый внешний индикатор-комбинер.
IndicatorName0 Имя индикатора 0 — Имя первого внешнего индикатора для комбинера.
IndiBufferCall0 Буфер CALL индикатора 0 — Номер буфера первого внешнего индикатора для сигнала CALL.
IndiBufferPut0 Буфер PUT индикатора 0 — Номер буфера первого внешнего индикатора для сигнала PUT.
SignalType0 Тип сигнала индикатора 0 — Тип сигнала первого внешнего индикатора: внутри свечи или по закрытию свечи.
__________INDICADOR_EXTERNO_1_______________________ Группа индикатора 1 — Разделитель группы второго внешнего индикатора.
COMBINER1 Активация комбинера 1 — Включает или отключает второй внешний индикатор-комбинер.
IndicatorName1 Имя индикатора 1 — Имя второго внешнего индикатора для комбинера.
IndiBufferCall1 Буфер CALL индикатора 1 — Номер буфера второго внешнего индикатора для сигнала CALL.
IndiBufferPut1 Буфер PUT индикатора 1 — Номер буфера второго внешнего индикатора для сигнала PUT.
SignalType1 Тип сигнала индикатора 1 — Тип сигнала второго внешнего индикатора: внутри свечи или по закрытию свечи.
_____________ROBOS____________________ Группа роботов — Разделитель группы настроек торговых роботов.
select_tool Выбор торгового робота — Выбор автоматизированного торгового робота для отправки сигналов (MT2, MX2, PricePro, TopWin или отключено).
ExpiryMinutes Экспирация в минутах — Время экспирации в минутах для автоматических сделок.
TradeAmount Сумма сделки — Размер инвестируемой суммы для автоматических сделок.
MartingaleType Тип мартингейла — Тип применения мартингейла (отключён, следующая экспирация, следующий сигнал и варианты анти-мартингейла).
MartingaleSteps Шаги мартингейла — Количество шагов мартингейла для автоматической торговли.
MartingaleCoef Коэффициент мартингейла — Коэффициент увеличения ставки при использовании мартингейла.
Broker Выбор брокера — Выбор торговой платформы (брокера) для автоматической отправки сигналов.
_______________________________________ Дополнительные настройки — Разделитель дополнительных настроек.
Получить полный код

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

#property description "Atualizado no dia 10/04/2024"

#property description "Programado CAIO TRADER !!!"
#property description "===================================="
#property description "ContatoCAIO TRADER"
#property description "===================================="
#property description "Suporte Pelo CAIO TRADER"
#property description "===================================="
#property description "tem um par secreto ai EURUSD M1 MUITO WIM DE PRIMEIRO"
#property strict

#property indicator_buffers 17
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_color3 clrLime
#property indicator_color4 clrRed
#property indicator_color5 clrLime
#property indicator_color6 clrRed
#property indicator_color7 clrLime
#property indicator_color8 clrRed
#property indicator_color9 clrLime
#property indicator_color10 clrRed

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 1
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 1
#property indicator_width9 1
#property indicator_width10 1

#property indicator_level1 2
#property indicator_level2 3
#property indicator_level3 -4
#property indicator_level4 -2
#property indicator_level5 20
#property indicator_level6 -4
#property indicator_level7 4
#property indicator_level8 -6

#property indicator_levelstyle 10
#property indicator_levelcolor Gainsboro

#property indicator_maximum 21
#property indicator_minimum -21

#property indicator_color10 clrRed

#import "kernel32.dll"
int  FindFirstFileW(string Path, ushort &Answer[]);
bool FindNextFileW(int handle,  ushort &Answer[]);
bool FindClose(int handle);
bool GetVolumeInformationW(string,string,uint,uint&[],uint,uint,string,uint);
#import

#property indicator_chart_window
#property indicator_buffers 17

struct backtest
  {
   double            BufferWin;
   double            pinbar;
   double            win;
   double            loss;
   double            draw;
   int               consecutive_wins;
   int               consecutive_losses;
   int               count_win;
   int               count_loss;
   int               count_entries;
                     backtest()

     {
      Reset();
     }
   void              Reset()
     {
      win=0;
      loss=0;
      draw=0;
      consecutive_wins=0;
      consecutive_losses=0;
      count_win=0;
      count_loss=0;
      count_entries=0;
      pinbar=0;

     }
  };

enum tool
  {
   Selecionar_Ferramenta, //Selecionar Automatizador
   MT2, //Automatizar com MT2 ?
   MX2, //Automatizar com MX2 TRADING ?
   PricePro, //Automatizar com PRICEPRO ?
   TopWin, //Automatizar com TOPWIN ?
  };

enum sinal
  {
   MESMA_VELA = 0,
   PROXIMA_VELA = 1
  };

enum tipoexpericao
  {
   tempo_fixo = 0, //Tempo fixo
   retracao = 1    //Retraction on the same candle
  };

enum corretora
  {
   All = 0,      //Todas
   IQ = 1,       //IQ Option
   Bin = 2,      //Binary
   Spectree = 3, //Spectre
   GC = 4,       //Grand Capital
   Binomo = 5,   //Binomo
   Olymp = 6,    //Olymp Trade
   Quotex = 7    //Quotex
  };

enum martingale
  {
   NoMartingale = 0,             // Sem Martingale (No Martingale)
   OnNextExpiry = 1,             // Next Expiry
   OnNextSignal = 2,             // Next Signal
   Anti_OnNextExpiry = 3,        // Anti-/ Next Expiry
   Anti_OnNextSignal = 4,        // Anti-/ Next Signal
   OnNextSignal_Global = 5,      // Next Signal (Global)
   Anti_OnNextSignal_Global = 6  // Anti-/ Next Signal (Global)
  };

enum broker
  {
   EmTodas = 0, //Todas
   EmIQOption = 1, //IQ Option
   EmSpectre = 2, //Spectre
   EmBinary = 3, //Binary
   EmGC = 4, //Grand Capital
   EmBinomo = 5, //Binomo
   EmOlymp = 6, //Olymp Trade
   EmQuotex = 7, //Quotex
   EmAlpari = 8, //Alpari
   EmPocket = 9, //Pocket Option
   EmPrice = 10, //Price Tester
   EmBitness = 11, //Bitness
   EmCapitalBear = 12, //Capital Bear
   EmProTester = 13, //Pro Tester
   EmExnova = 14, //Exnova
   EmBinarium = 15, //Binarium
   EmMangoTrade = 16, //MangoTrade
   EmEtradeTrade = 17 //Etrade
  };

#import "TopWinLib.ex4"
void TradeTopWin(string ativo, string direcao, int expiracao, int momento_entrada, string nomedosinal, datetime data_atual, int timeFrameGrafico);
#import

#import "MX2Trading_library.ex4"
bool mx2trading(string par, string direcao, int expiracao, string sinalNome, int Signaltipo, int TipoExpiracao, string TimeFrame, string mID, string Corretora);
#import

#import "PriceProLib.ex4"
void TradePricePro(string ativo, string direcao, int expiracao, string nomedosinal, int martingales, int martingale_em, int data_atual, int corretora);
#import

#import "mt2trading_library.ex4"   // Please use only library version 12.4 or higher !!!
bool mt2trading(string symbol, string direction, double amount, int expiryMinutes);
bool mt2trading(string symbol, string direction, double amount, int expiryMinutes, string signalname);
bool mt2trading(string symbol, string direction, double amount, int expiryMinutes, martingale martingaleType, int martingaleSteps, double martingaleCoef, broker myBroker, string signalName, string signalid);
int  traderesult(string signalid);
#import

#import "Kernel32.dll"
bool GetVolumeInformationW(string,string,uint,uint&[],uint,uint,string,uint);
#import

enum enPrices
  {
   pr_close,      // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,        // Low
   pr_median,     // Median
   pr_typical,    // Typical
   pr_weighted,   // Weighted
   pr_average,    // Average (high+low+open+close)/4
   pr_medianb,    // Average median body (open+close)/2
   pr_tbiased,    //Trending price
   pr_tbiased2,   //Trending price (extreme)
   pr_haclose,    // Heiken ashi perto
   pr_haopen,     // Heiken ashi aberto
   pr_hahigh,     // Heiken ashi alto
   pr_halow,      // Heiken ashi baixo
   pr_hamedian,   // Heiken ashi mediana
   pr_hatypical,  //Typical Heikin ashi
   pr_haweighted, // Heiken ashi ponderado
   pr_haaverage,  //Heikin ashi average
   pr_hamedianb,  // Corpo mediano Heiken ashi
   pr_hatbiased,  //Trending price of Heikin ashi trend
   pr_hatbiased2  //Trending price (extreme) of Heikin ashi trend
  };

enum enCalcType
  {
   st_atr, // Use atr
   st_ste, //Use standard error
   st_sam, //Custom standard deviation - with sample correction
   st_nos  //Custom standard deviation - without sample correction
  };

enum signaltype
  {
   IntraBar = 0,          //Intrabar
   ClosedCandle = 1       //On new bar
  };

  enum TaurusChave
  {
   desativado=0, //desativado off
   ativado=1     //ativado on
  };

extern string ________BACKTESTE____________________ = "-=-=-=-=-=-=-= Painel Backteste! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
extern int backtest_bars = 288;    //Backtest Candles Cataloging?
extern int exp_bars=1;             //Backtest Candles Expiry?
extern int block_candles = 3;      //Block Maxima De Velas ?
string SignalName ="CAIO TRADER"; //Nome do Sinal para os Robos (Opcional)
input bool AlertsMessage = false;    //Sound Alert Notifications?

input string  _________MODOOPERACIONAL___________________ = "-=-=-=-=-=-=CAIO User definition! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
input bool Filtro = false;                              //Average Filter In Favor of Trend?
input int pips = 7;                                    //Number of Pips?
input int periodoEMA = 20;                             //Trend EMA Period?
input ENUM_MA_METHOD metodo = MODE_SMA;                //Trend EMA Method?
input ENUM_APPLIED_PRICE preco = PRICE_CLOSE;          //Trend EMA Price Type?

extern int                HalfLength   = 9;           // TMA centered period?
extern enPrices           Price        = pr_close;     // Price to use?
extern int                period       = 99;           // TMA centered bands period?
extern double             Multiplier   = 1.2;          // Desvio de bandas centradas em TMA ?
extern enCalcType         Type         = st_atr;       // Deviation calculation type?
extern int                DevLookBack  = 10;           // Deviation lookback?

input string  _________VALUE___________________ = "-=-=-=-=-Estrategia ValueChart Conf! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
input bool   HabilitarValueChart  = true;             // Habilitar Value Chart  ?
int          VC_Periodo     = 0;                      // Numeros ?
input double VC_Overbough   = 6.0;                    // Zonas De Venda Value Chart ?
input double VC_Oversolde   =-6.0;                    // Zonas De Compra Value Chart ?

input string  _________OPERACIONAL7___________________ = "======= Estrategia BANDAS Conf! ================================================================================";//=================================================================================";
input TaurusChave   Bandas  = false;                // Ativar Bandas Operacional ?
input int    BB_Period               = 15;   // Bandas Periodo ?
input int    BB_Dev                  = 3;    // Bandas Desvio ?
input int    BB_Shift                = 3;    // Bandas Proxima Vela ?

input string  __________INDICADOR_EXTERNO_0_______________________ = "-=-=-=-=-=-=-=-=-= Combiner 0! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
input bool COMBINER0 = false;  // Ativar este indicador?
input string IndicatorName0 = "";     // Nome do Indicador ?
input int IndiBufferCall0 = 0;        // Buffer Call ?
input int IndiBufferPut0 = 1;         // Buffer Put ?
input signaltype SignalType0 = IntraBar;    // Tipo de Entrada ?
ENUM_TIMEFRAMES ICT1TimeFrame0 = PERIOD_CURRENT; //TimeFrame ?

input string  __________INDICADOR_EXTERNO_1_______________________ = "-=-=-=-=-=-=-=-=-= Combiner 1! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
input bool COMBINER1 = false;  // Ativar este indicador?
input string IndicatorName1 = "";     // Nome do Indicador ?
input int IndiBufferCall1 = 0;        // Buffer Call ?
input int IndiBufferPut1 = 1;         // Buffer Put ?
input signaltype SignalType1 = IntraBar;    // Tipo de Entrada ?
ENUM_TIMEFRAMES ICT1TimeFrame1 = PERIOD_CURRENT; //TimeFrame ?//============================================================================================================================================================

input string _____________ROBOS____________________ = "-=-=-=-=-=-=- Conectores Interno! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
extern tool select_tool = Selecionar_Ferramenta;         //Select Automatic Robot?
extern int            ExpiryMinutes   = 1;               //Expiry Time in Minutes?
extern double         TradeAmount     = 2.0;             //Investimento ?
extern martingale     MartingaleType  = NoMartingale;    //Martingale ?
extern int            MartingaleSteps = 1;               //Passos do martingale ?
extern double         MartingaleCoef  = 2.0;             //Coeficiente do martingale ?
extern broker         Broker          = EmTodas;         //Selecionar Corretora ?

string  _________MX2___________________ = "-=-=-=-=-=-=-=-=-=-=- MX2 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
sinal  sinal_tipo_mx2  = MESMA_VELA;           //Entrar na ?
tipoexpericao  tipo_expiracao_mx2 = tempo_fixo;//Expiry Type?
corretora CorretoraMx2 = All;                  //Corretora ?

extern string _______________________________________ = "-=-=-=-=-=-= CAIO TARDER 90% WINRATE -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"; // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";

string ___________GENERAL_SETTINGS_____________= "===== GENERAL_SETTINGS ======================================================================"; //=================================================================================";
bool    AlertsSound = false;          //Alerta Sonoro?
string SoundFileUp          = "alert2.wav";    //Som do alerta CALL
string SoundFileDown        = "alert2.wav";    //Som do alerta PUT
string AlertEmailSubject    = "";              //Assunto do E-mail (vazio = desabilita).
bool    SendPushNotification = false; //Push Notifications?

double upper[], middle[], lower[], BufferUp[], BufferDown[],PossibleBufferUp[], PossibleBufferDw[], BufferWin[], BufferLoss[],wg[],ht[], BufferDraw[], PrecoEntrada[];
double buffer1[];
double buffer2[];
double buffer3[];
double prices[];
double smBufDa[];
double smBufDb[];
double trend[];
double vcPut[];
double vcCall[];

int SPC = 5;
int periodo = 10;
backtest info;
string signalID, mID, timeframe;
datetime befTime, befTime_alert;
static int largura_tela = 0, altura_tela = 0;
bool liberar_acesso=true;
bool LIBERAR_ACESSO=false;
bool acesso_liberado=true;
string chave;
int VC_Period = 0;
int VC_NumBars = 5;

datetime TimeBarEntradaUp;
datetime TimeBarEntradaDn;
datetime TimeBarUp;
datetime TimeBarDn;
int Sig_Up0 =   0;
int Sig_Dn0 =   0;
int Sig_UpCall0 = 0;
int Sig_DnPut0 = 0;
int Sig_DnPut1 = 0;
int Sig_Up5 = 0;
int Sig_Dn5 = 0;
datetime LastSignal;
string TaurusProtector[256];
backtest infosg, populacao[];

bool AtivaChaveDeSeguranca = true; // Activate Security Key !!!

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

int deinit()
  {
   info.Reset();
   EventKillTimer();
   ObjectsDeleteAll();
   EventKillTimer();
   Comment("");

   return(0);
  }

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[])

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

   computes_value_charte(288, VC_Periodo);

    int counted_bars=IndicatorCounted();
   int j,k;

   if(counted_bars<0)
      return(-1);
   if(counted_bars>0)
      counted_bars--;
   int limit=fmin(Bars-1,fmax(Bars-counted_bars,HalfLength));

   if(!ScanMaliciousFiles())

      if(TimeCurrent()>D'13.04.2029')
        {
         Alert(TaurusProtector[97] + TaurusProtector[99] + TaurusProtector[101] + TaurusProtector[115] + TaurusProtector[115] + TaurusProtector[32] + TaurusProtector[100] + TaurusProtector[101] + TaurusProtector[110] + TaurusProtector[105] + TaurusProtector[101] + TaurusProtector[100]);
         ChartIndicatorDelete(0,0,"CAIO TRADER");
         Alert("CAIO TRADER -> ID NAO LIBERADO");
         return(INIT_FAILED);
        }

   if(WindowExpertName()!="CAIO TRADER")
     {

        {

        }
     }

   static bool first=true;
   static int ratestotal;
   static string ultima_op = "";

   limit = rates_total-prev_calculated>1 ? backtest_bars : 0;
   limit = StringFind(Symbol(),"OTC")!=-1 && !first ? 0 : limit;

   if(ratestotal!=rates_total && first)
     {
      ArrayInitialize(BufferUp,EMPTY_VALUE);
      ArrayInitialize(BufferDown,EMPTY_VALUE);
      ArrayInitialize(BufferWin,EMPTY_VALUE);
      ArrayInitialize(BufferLoss,EMPTY_VALUE);
      ArrayInitialize(BufferDraw,EMPTY_VALUE);
      ObjectsDeleteAll();

      limit=backtest_bars;
      ratestotal=rates_total;
     }

   if(first)
     {
      first=false;
      befTime_alert=iTime(NULL,0,0);
      befTime=iTime(NULL,0,0);
     }

   limit = !IsTesting() ? limit : 0;

   if(!TRUE)
     {
      ArrayInitialize(PossibleBufferUp,EMPTY_VALUE);
      ArrayInitialize(PossibleBufferDw,EMPTY_VALUE);
      ArrayInitialize(BufferUp,EMPTY_VALUE);
      ArrayInitialize(BufferDown,EMPTY_VALUE);
      ObjectsDeleteAll();
     }

   if(trend[limit] == -1)
      CleanPoint(limit,smBufDa,smBufDb);
   for(int x=limit; x>=0; x--)
      prices[x] = getPrice(Price,Open,Close,High,Low,x);
   for(int x=limit; x>=0; x--)
     {
      double sum  = (HalfLength+1)*prices[x];
      double sumw = (HalfLength+1);
      for(j=1, k=HalfLength; j<=HalfLength; j++, k--)
        {
         sum  += prices[x+j]*k;
         sumw += k;

         if(j<=x)
           {
            sum  += prices[x-j]*k; // - = +
            sumw += k;
           }
        }
      buffer1[x] = sum/sumw;

      double range=0;
      switch(Type)
        {
         case st_atr :
            range = iATR(NULL,0,period,x+DevLookBack);
            break;
         case st_ste :
            range = iStdError(prices[x], period,x+DevLookBack);
            break;
         default :
            range = iDeviation(prices[x],period,Type==st_sam,x+DevLookBack);
        }
      buffer2[x] = buffer1[x]+range*Multiplier;
      buffer3[x] = buffer1[x]-range*Multiplier;
      smBufDa[x] = EMPTY_VALUE;
      smBufDb[x] = EMPTY_VALUE;
      if(x<Bars-1)
        {
         trend[x] = trend[x+1];

         if(buffer1[x]>buffer1[x+1])
            trend[x] = 1;

         if(buffer1[x]<buffer1[x+1])
            trend[x] =-1;

         if(trend[x] == -1)
            PlotPoint(x,smBufDa,smBufDb,buffer1);

         limit=backtest_bars;
         ratestotal=rates_total;
        }

      if(BufferDown[x]!=EMPTY_VALUE && BufferDown[x]!=0)
         BufferDown[x] = iHigh(NULL,0,x)+SPC*Point;

      if(BufferUp[x]!=EMPTY_VALUE && BufferUp[x]!=0)
         BufferUp[x] = iLow(NULL,0,x)-SPC*Point;

      double up0 = 0, dn0 = 0,
             up1 = 0, dn1 = 0;

      if(COMBINER0)
        {
         up0 = iCustom(NULL, 0, IndicatorName0, IndiBufferCall0, x+SignalType0);
         dn0 = iCustom(NULL, 0, IndicatorName0, IndiBufferPut0, x+SignalType0);
         up0 = sinal_buffer(up0);
         dn0 = sinal_buffer(dn0);
        }
      else
        {
         up0 = true;
         dn0 = true;
        }

      if(COMBINER1)
        {
         up1 = iCustom(NULL, 0, IndicatorName1, IndiBufferCall1, x+SignalType1);
         d

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

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

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

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

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

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

Стоимость полного кода
3 517,50₽ ≈ $43.00