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

rpt-bad.mq4

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

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

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

О программе

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

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

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

Работа советника осуществляется в основном цикле функции start(), где на каждом тике проверяется изменение состояния индикатора и при необходимости выполняются торговые операции или отправляются уведомления.

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

НастройкаОписание
Lots Объём лота для открытия и закрытия позиций
GBPJPY Включает или отключает торговлю и анализ для инструмента GBPJPY
GBPJPY_t3_period Период расчёта индикатора, определяющий глубину сглаживания
GBPJPY_b Коэффициент сглаживания, используемый в расчёте индикатора
GBPJPY_TimeFrame Таймфрейм, на котором осуществляется анализ инструмента GBPJPY
GBPJPY_SL Размер стоп-лосса в пунктах для открытых позиций по GBPJPY
TextAlert Включает или отключает текстовое уведомление-алерт на графике
SoundAlert Включает или отключает звуковое уведомление при срабатывании сигнала
SoundFile Путь к аудиофайлу для воспроизведения при звуковом уведомлении
OpenTrades Разрешает советнику автоматически открывать новые торговые позиции
Получить полный код

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

#property show_inputs 
#include <stdlib.mqh>

extern double Lots=0.1;
extern bool   GBPJPY=true;
extern int    GBPJPY_t3_period=9;
extern double GBPJPY_b=0.8;
extern int    GBPJPY_TimeFrame=60;
extern int    GBPJPY_SL=50;
/*
extern bool EURUSD=false;
extern bool GBPUSD=false;
extern bool USDJPY=false;
extern bool USDCHF=false;
extern bool AUDUSD=false;
extern bool USDCAD=false;
extern bool EURGBP=false;
extern bool EURCHF=false;
extern bool EURJPY=false;
extern bool GBPCHF=false;
extern bool AUDJPY=false;
extern bool EURCAD=false;
extern bool CADJPY=false;
extern bool CHFJPY=false;
extern bool EURAUD=false;*/
int EURUSD_Bars=0;
int GBPUSD_Bars=0;
int USDJPY_Bars=0;
int USDCHF_Bars=0;
int AUDUSD_Bars=0;
int USDCAD_Bars=0;
int EURGBP_Bars=0;
int EURCHF_Bars=0;
int EURJPY_Bars=0;
int GBPJPY_Bars=0;
int GBPCHF_Bars=0;
int AUDJPY_Bars=0;
int EURCAD_Bars=0;
int CADJPY_Bars=0;
int CHFJPY_Bars=0;
int EURAUD_Bars=0;
extern bool   TextAlert=true;
extern bool   SoundAlert=true;
extern string SoundFile="expert.wav";
extern bool   OpenTrades=true;

int mBar=300;
int Magic=230475609;

int check_stat(string para,int tf,int t3_period,double b)
 {
  RefreshRates();

  double e1, e2, e3, e4, e5, e6, c1, c2, c3, c4, n, w1, w2, b2, b3;
  double P0,P1,P2;
  double t3[];
  int R1=0,R0=0,shift;

  ArrayResize(t3, mBar);

  b2=b*b;
  b3=b2*b;
  c1=-b3;
  c2=(3*(b2+b3));
  c3=-3*(2*b2+b+b3);
  c4=(1+3*b+b3+3*b2);
  n=t3_period;
  if (n<1) n=1;
  n=1+0.5*(n-1);
  w1=2/(n+1);
  w2=1-w1;

  for (shift=mBar; shift>=0; shift--)
   {
    e1=w1*iClose(para,tf,shift)+w2*e1;
    e2=w1*e1+w2*e2;
    e3=w1*e2+w2*e3;
    e4=w1*e3+w2*e4;
    e5=w1*e4+w2*e5;
    e6=w1*e5+w2*e6;
    t3[shift]=c1*e6+c2*e5+c3*e4+c4*e3;
   }

  if (t3[2]<t3[1]) {R1=1;} else if (P2>P1) {R1=-1;} else R1=0;
  if (t3[1]<t3[0]) {R0=1;} else if (P1>P0) {R0=-1;} else R0=0;

  if (R0!=R1)
   {
Print("R0=",R0," R1=",R1);    
    if (R0==1) string do="???????? (BUY)";
    if (R0==-1) do="????????? (SELL)";
    int res=R0;
    if (TextAlert) Alert("?? ", para," ?? ",WhatTF(tf)," ???? ",do);
    if (SoundAlert) PlaySound(SoundFile);
    return(R0);
   } else res=0;
  return(res);
 }

string WhatTF(int ctf)
{
 switch(ctf)
    {
    case PERIOD_M1:  return("M1");  break;
    case PERIOD_M5:  return("M5");  break;
    case PERIOD_M15: return("M15"); break;
    case PERIOD_M30: return("M30"); break;
    case PERIOD_H1:  return("H1");  break;
    case PERIOD_H4:  return("H4");  break;
    case PERIOD_D1:  return("D1");  break;
    case PERIOD_W1:  return("W1");  break;
    case PERIOD_MN1: return("MN1"); break;
    default: return("??? ?????? ??????????");
    }
}

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

  {
   RefreshRates();
/*   if(EURUSD) if(EURUSD_Bars!=iBars("EURUSD",TimeFrame)) {check_stat("EURUSD", TimeFrame); EURUSD_Bars=iBars("EURUSD",TimeFrame);}
   if(GBPUSD) if(GBPUSD_Bars!=iBars("GBPUSD",TimeFrame)) {check_stat("GBPUSD", TimeFrame); G

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

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

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

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

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

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

Стоимость полного кода
502,50₽ ≈ $6.14