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

currency_strength_v1.1.mq4

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

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

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

О программе

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

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

НастройкаОписание
TradingLots Объём сделки — Размер лота для открытия позиции.
Take Profit (in Pips) (TakeProfit) Тейк-профит — Уровень фиксации прибыли в пунктах.
StopLoss (in Pips) (StopLoss) Стоп-лосс — Уровень ограничения убытков в пунктах.
UseSLTP Использовать SL/TP — Включает или отключает установку стоп-лосса и тейк-профита по открытым позициям.
Trade Once (per Day) (TradeOnce) Торговля один раз в день — Ограничивает открытие новой сделки по каждой паре не чаще одного раза в сутки.
prefix Префикс — Текстовый префикс, добавляемый к имени символа при формировании торгового запроса.
postfix Постфикс — Текстовый постфикс, добавляемый к имени символа при формировании торгового запроса.
Difference Between Two Currencies Percentage (diff_val) Порог разницы — Минимальная разница в процентах между силами двух валют для генерации торгового сигнала.
Magic Number (Magic) Магический номер — Идентификатор ордеров советника, используемый для отслеживания и модификации позиций.
Получить полный код

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

#property version     "1.1"                                                      // Version
#property description "This Expert Advisor is strength of symbols & trade accordingly" // Description
#property strict

extern double TradingLots=0.01;
extern int  TakeProfit= 0; //Take Profit (in Pips)
extern int  StopLoss= 0; //StopLoss (in Pips)
extern bool UseSLTP = false;
extern bool TradeOnce=true; // Trade Once (per Day)
extern string prefix="";
extern string postfix="";
extern double diff_val=0.5; // Difference Between Two Currencies Percentage
extern int Magic=1; // Magic Number

int start()
{
      // код доступен только после оплаты
   }
RefreshRates();
/*
USDCHF, GBPUSD, EURUSD, USDJPY, USDCAD, NZDUSD, AUDUSD, AUDNZD, AUDCAD, AUDCHF, AUDJPY, CHFJPY, EURGBP, EURAUD,

EURCHF, EURJPY, EURNZD, EURCAD, GBPCHF, GBPAUD, GBPCAD, GBPJPY, CADJPY, NZDJPY, GBPNZD, CADCHF
*/

   double USDJPY = perch(prefix+"USDJPY"+postfix);
   double USDCAD = perch(prefix+"USDCAD"+postfix);
   double AUDUSD = perch(prefix+"AUDUSD"+postfix);
   double USDCHF = perch(prefix+"USDCHF"+postfix);
   double GBPUSD = perch(prefix+"GBPUSD"+postfix);
   double EURUSD = perch(prefix+"EURUSD"+postfix);
   double NZDUSD = perch(prefix+"NZDUSD"+postfix);
   double EURJPY = perch(prefix+"EURJPY"+postfix);
   double EURCAD = perch(prefix+"EURCAD"+postfix);
   double EURGBP = perch(prefix+"EURGBP"+postfix);
   double EURCHF = perch(prefix+"EURCHF"+postfix);
   double EURAUD = perch(prefix+"EURAUD"+postfix);
   double EURNZD = perch(prefix+"EURNZD"+postfix);
   double AUDNZD = perch(prefix+"AUDNZD"+postfix);
   double AUDCAD = perch(prefix+"AUDCAD"+postfix);
   double AUDCHF = perch(prefix+"AUDCHF"+postfix);
   double AUDJPY = perch(prefix+"AUDJPY"+postfix);
   double CHFJPY = perch(prefix+"CHFJPY"+postfix);
   double GBPCHF = perch(prefix+"GBPCHF"+postfix);
   double GBPAUD = perch(prefix+"GBPAUD"+postfix);
   double GBPCAD = perch(prefix+"GBPCAD"+postfix);
   double GBPJPY = perch(prefix+"GBPJPY"+postfix);
   double CADJPY = perch(prefix+"CADJPY"+postfix);
   double NZDJPY = perch(prefix+"NZDJPY"+postfix);
   double GBPNZD = perch(prefix+"GBPNZD"+postfix);
   double CADCHF = perch(prefix+"CADCHF"+postfix);

   double eur = (EURJPY+EURCAD+EURGBP+EURCHF+EURAUD+EURUSD+EURNZD)/7;
   double usd = (USDJPY+USDCAD-AUDUSD+USDCHF-GBPUSD-EURUSD-NZDUSD)/7;
   double jpy = (-1*(USDJPY+EURJPY+AUDJPY+CHFJPY+GBPJPY+CADJPY+NZDJPY))/7;
   double cad = (CADCHF+CADJPY-(GBPCAD+AUDCAD+EURCAD+USDCAD))/6;
   double aud = (AUDUSD+AUDNZD+AUDCAD+AUDCHF+AUDJPY-(EURAUD+GBPAUD))/7;
   double nzd = (NZDUSD+NZDJPY-(EURNZD+AUDNZD+GBPNZD))/5;
   double gbp = (GBPUSD-EURGBP+GBPCHF+GBPAUD+GBPCAD+GBPJPY+GBPNZD)/7;
   double chf = (CHFJPY-(USDCHF+EURCHF+AUDCHF+GBPCHF+CADCHF))/6;

   eur = NormalizeDouble(eur,2);
   usd = NormalizeDouble(usd,2);
   jpy = NormalizeDouble(jpy,2);
   cad = NormalizeDouble(cad,2);
   aud = NormalizeDouble(aud,2);
   nzd = NormalizeDouble(nzd,2);
   gbp = NormalizeDouble(gbp,2);
   chf = NormalizeDouble(chf,2);

   Comment("\n\n\n\n\n\n\n\n\n\n\nEUR: "+DoubleToStr(eur,2)+"\nUSD: "+DoubleToStr(usd,2)+"\nJPY: "+DoubleToStr(jpy,2)+"\nCAD: "+DoubleToStr(cad,2)+"\nAUD: "+DoubleToStr(aud,2)+"\nNZD: "+DoubleToStr(nzd,2)+"\nGBP: "+DoubleToStr(gbp,2)+"\nCHF: "+DoubleToStr(chf,2));

   if(MathAbs(usd-jpy)>diff_val)
     {
      if((usd-jpy)>0)
        {
         Trade("Buy",prefix+"USDJPY"+postfix);
        }
      if((usd-jpy)<0)
        {
         Trade("Sell",prefix+"USDJPY"+postfix);
        }
     }

   if(MathAbs(usd-cad)>diff_val)
     {
      if((usd-cad)>0)
        {
         Trade("Buy",prefix+"USDCAD"+postfix);
        }
      if((usd-cad)<0)
        {
         Trade("Sell",prefix+"USDCAD"+postfix);
        }
     }

   if(MathAbs(aud-usd)>diff_val)
     {
      if((aud-usd)>0)
        {
         Trade("Buy",prefix+"AUDUSD"+postfix);
        }
      if((aud-usd)<0)
        {
         Trade("Sell",prefix+"AUDUSD"+postfix);
        }
     }

   if(MathAbs(usd-chf)>diff_val)
     {
      if((usd-chf)>0)
        {
         Trade("Buy",prefix+"USDCHF"+postfix);
        }
      if((usd-chf)<0)
        {
         Trade("Sell",prefix+"USDCHF"+postfix);
        }
     }

   if(MathAbs(gbp-usd)>diff_val)
     {
      if((gbp-usd)>0)
        {
         Trade("Buy",prefix+"GBPUSD"+postfix);
        }
      if((gbp-usd)<0)
        {
         Trade("Sell",prefix+"GBPUSD"+postfix);
        }
     }

   if(MathAbs(eur-usd)>diff_val)
     {
      if((eur-usd)>0)
        {
         Trade("Buy",prefix+"EURUSD"+postfix);
        }
      if((eur-usd)<0)
        {
         Trade("Sell",prefix+"EURUSD"+postfix);
        }
     }

   if(MathAbs(nzd-usd)>diff_val)
     {
      if((nzd-usd)>0)
        {
         Trade("Buy",prefix+"NZDUSD"+postfix);
        }
      if((nzd-usd)<0)
        {
         Trade("Sell",prefix+"NZDUSD"+postfix);
        }
     }

   if(MathAbs(eur-jpy)>diff_val)
     {
      if((eur-jpy)>0)
        {
         Trade("Buy",prefix+"EURJPY"+postfix);
        }
      if((eur-jpy)<0)
        {
         Trade("Sell",prefix+"EURJPY"+postfix);
        }
     }

   if(MathAbs(eur-cad)>diff_val)
     {
      if((eur-cad)>0)
        {
         Trade("Buy",prefix+"EURCAD"+postfix);
        }
      if((eur-cad)<0)
        {
         Trade("Sell",prefix+"EURCAD"+postfix);
        }
     }

   if(MathAbs(eur-gbp)>diff_val)
     {
      if((eur-gbp)>0)
        {
         Trade("Buy",prefix+"EURGBP"+postfix);
        }
      if((eur-gbp)<0)
        {
         Trade("Sell",prefix+"EURGBP"+postfix);
        }
     }

   if(MathAbs(eur-chf)>diff_val)
     {
      if((eur-chf)>0)
        {
         Trade("Buy",prefix+"EURCHF"+postfix);
        }
      if((eur-chf)<0)
        {
         Trade("Sell",prefix+"EURCHF"+postfix);
        }
     }

   if(MathAbs(eur-aud)>diff_val)
     {
      if((eur-aud)>0)
        {
         Trade("Buy",prefix+"EURAUD"+postfix);
        }
      if((eur-aud)<0)
        {
         Trade("Sell",prefix+"EURAUD"+postfix);
        }
     }

   if(MathAbs(eur-nzd)>diff_val)
     {
      if((eur-nzd)>0)
        {
         Trade("Buy",prefix+"EURNZD"+postfix);
        }
      if((eur-nzd)<0)
        {
         Trade("Sell",prefix+"EURNZD"+postfix);
        }
     }

   if(MathAbs(aud-nzd)>diff_val)
     {
      if((aud-nzd)>0)
        {
         Trade("Buy",prefix+"AUDNZD"+postfix);
        }
      if((aud-nzd)<0)
        {
         Trade("Sell",prefix+"AUDNZD"+postfix);
        }
     }

   if(MathAbs(aud-cad)>diff_val)
     {
      if((aud-cad)>0)
        {
         Trade("Buy",prefix+"AUDCAD"+postfix);
        }
      if((aud-cad)<0)
        {
         Trade("Sell",prefix+"AUDCAD"+postfix);
        }
     }

   if(MathAbs(aud-chf)>diff_val)
     {
      if((aud-chf)>0)
        {
         Trade("Buy",prefix+"AUDCHF"+postfix);
        }
      if((aud-chf)<0)
        {
         Trade("Sell",prefix+"AUDCHF"+postfix);
        }
     }

   if(MathAbs(aud-jpy)>diff_val)
     {
      if((aud-jpy)>0)
        {
         Trade("Buy",prefix+"AUDJPY"+postfix);
        }
      if((aud-jpy)<0)
        {
         Trade("Sell",prefix

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

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

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

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

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

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

Стоимость полного кода
995,40₽ ≈ $12.17