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

Currency Strength

currency strength v4.9.mq4

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Currency Strength — это торговый советник для MetaTrader 4, который рассчитывает относительную силу основных валют на основе дневных изменений цен и открывает сделки при значительном расхождении между парами. Советник вычисляет силу каждой валюты, усредняя процентные изменения по связанным парам, и сравнивает их через настраиваемый порог diff_val.

При превышении порога разницы между двумя валютами советник автоматически открывает позиции Buy или Sell на соответствующих инструментах. Встроенная функция TradeTime ограничивает торговлю временным окном с 0:10 до 23:00 серверного времени, а параметр TradeOnce позволяет совершать не более одной сделки в день на каждую пару.

Советник поддерживает настраиваемые префиксы и суффиксы символов, фиксированные размеры лотов, а также уровни стоп-лосса и тейк-профита. Функция SafeOrderClose обеспечивает безопасное закрытие позиций с обработкой занятого торгового контекста и повторными попытками.

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

НастройкаОписание
TradingLots Размер лота — Размер лота для открытия позиций
Take Profit (in Pips) (TakeProfit) Тейк-профит — Уровень тейк-профита (в пипсах)
Stop Loss (in pips) (StopLoss) Стоп-лосс — Уровень стоп-лосса (в пипсах)
Slippage Проскальзывание — Допустимое проскальзывание при исполнении торговых ордеров
UseOrderClose Использовать закрытие ордеров — Переключатель: при активации разрешает автоматическое закрытие позиций по сигналу
Trade Once (per Day) (TradeOnce) Торговля один раз в день — Переключатель: при активации совершается не более одной сделки в день на каждую пару
prefix Префикс символа — Текстовый префикс, добавляемый к торговым символам
postfix Суффикс символа — Текстовый суффикс, добавляемый к торговым символам
Difference Between Two Currencies Percentage (diff_val) Порог разницы валют — Пороговая разница в проценте между двумя валютами для открытия сделки
Получить полный код

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

extern double TradingLots = 0.01;
extern int  TakeProfit= 150; // Take Profit (in Pips)
extern int  StopLoss = 400; // Stop Loss (in pips)
extern int Slippage = 3;

extern bool UseOrderClose = true;
extern bool TradeOnce = true; // Trade Once (per Day)
extern string prefix="";
extern string postfix="";
extern double diff_val = 0.65; // Difference Between Two Currencies Percentage
string calc_per = PERIOD_D1;
int Magic=1284; // Magic Number
int Magic2=1294;
double signal;

/*void TrailingStop() {
string sym=OrderSymbol();
   for (int l_pos_0 = 0; l_pos_0 <= OrdersTotal(); l_pos_0++) {
      OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber() == Magic) {
         if (OrderType() == OP_BUY)
            if ((MarketInfo(sym, MODE_BID) - OrderOpenPrice()) / MarketInfo(sym, MODE_POINT) >= MinPipsToTrail && OrderStopLoss() < MarketInfo(sym, MODE_BID) - TrailingStop * MarketInfo(sym, MODE_POINT)) OrderModify(OrderTicket(), OrderOpenPrice(), MarketInfo(sym, MODE_BID) - TrailingStop * MarketInfo(sym, MODE_POINT), OrderTakeProfit(), 0, Blue);
         else if (OrderMagicNumber() == Magic2)
         if (OrderType() == OP_SELL) {
         if ((OrderOpenPrice() - MarketInfo(sym, MODE_ASK)) / MarketInfo(sym, MODE_POINT) >= MinPipsToTrail && OrderStopLoss() > MarketInfo(sym, MODE_ASK) +
               TrailingStop * MarketInfo(sym, MODE_POINT)) OrderModify(OrderTicket(), OrderOpenPrice(), MarketInfo(sym, MODE_ASK) + TrailingStop * MarketInfo(sym, MODE_POINT), OrderTakeProfit(), 0, Red);
         }
      }
   }
}*/

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

   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"
     "ACCOUNT INFORMATION:\n"
     "This Broker Is : " + AccountCompany()+ "\n"
     "Account Name:     " + AccountName()+ "\n"
     "Account Leverage:     " + DoubleToStr(AccountLeverage(), 0)+ "\n"
     "Account Balance:     " + DoubleToStr(AccountBalance(), 2)+ "\n"
     "Account Equity:     " + DoubleToStr(AccountEquity(), 2)+ "\n"
     "Free Margin:     " + DoubleToStr(AccountFreeMargin(), 2)+ "\n"
     "Used Margin:     " + DoubleToStr(AccountMargin(), 2)+ "\n"
     "Account Profit:     " + DoubleToStr(AccountProfit(), 2)+ "\n"
     "-----------------------------------------------------\n"
     "\n"
     "\n"
     "\n\n\n\n\n\n\n\n\n\n\nEUR: "+eur+"\nUSD: "+usd+"\nJPY: "+jpy+"\nCAD: "+cad+"\nAUD: "+aud+"\nNZD: "+nzd+"\nGBP: "+gbp+"\nCHF: "+chf);

     if(MathAbs(usd-jpy) > diff_val)
     {
      if (usd > 0 && jpy < 0)

        {
         Trade("Buy",prefix+"USDJPY"+postfix);
        }
      else if (usd < 0 && jpy > 0)

        {
         Trade("Sell",prefix+"USDJPY"+postfix);
        }
     }

   if(MathAbs(usd-cad) > diff_val)
     {
      if (usd > 0 && cad < 0)

        {
         Trade("Buy",prefix+"USDCAD"+postfix);
        }
      else if (usd < 0 && cad > 0)

        {
         Trade("Sell",prefix+"USDCAD"+postfix);
        }
     }

   if(MathAbs(aud-usd)> diff_val)
     {
      if (aud > 0 && usd < 0)

        {
         Trade("Buy",prefix+"AUDUSD"+postfix);
        }
      else if (aud < 0 && usd > 0)

        {
         Trade("Sell",prefix+"AUDUSD"+postfix);
        }
     }

   if(MathAbs(usd-chf)>diff_val)
     {
      if (usd > 0 && chf < 0)

        {
         Trade("Buy",prefix+"USDCHF"+postfix);
        }
      else if (usd < 0 && chf > 0)

        {
         Trade("Sell",prefix+"USDCHF"+postfix);
        }
     }

   if(MathAbs(gbp-usd)>diff_val)
     {
      if (gbp > 0 && usd < 0)

        {
         Trade("Buy",prefix+"GBPUSD"+postfix);
        }
      else if (gbp < 0 && usd > 0)

        {
         Trade("Sell",prefix+"GBPUSD"+postfix);
        }
     }

   if(MathAbs(eur-usd)>diff_val)
     {
      if (eur > 0 && usd < 0)

        {
         Trade("Buy",prefix+"EURUSD"+postfix);
        }
      else if (eur < 0 && usd > 0)

        {
         Trade("Sell",prefix+"EURUSD"+postfix);
        }
     }

   if(MathAbs(nzd-usd)>diff_val)
     {
      if (nzd > 0 && usd < 0)

        {
         Trade("Buy",prefix+"NZDUSD"+postfix);
        }
      else if (nzd < 0 && usd > 0)

        {
         Trade("Sell",prefix+"NZDUSD"+postfix);
        }
     }

   if(MathAbs(eur-jpy)>diff_val)
     {
      if (eur > 0 && jpy < 0)

        {
         Trade("Buy",prefix+"EURJPY"+postfix);
        }
      else if (eur < 0 && jpy > 0)

        {
         Trade("Sell",prefix+"EURJPY"+postfix);
        }
     }

   if(MathAbs(eur-cad)>diff_val)
     {
      if (eur > 0 && cad < 0)

        {
         Trade("Buy",prefix+"EURCAD"+postfix);
        }
      else if (eur < 0 && cad > 0)

        {
         Trade("Sell",prefix+"EURCAD"+postfix);
        }
     }

   if(MathAbs(eur-gbp)>diff_val)
     {
      if (eur > 0 && gbp < 0)

        {
         Trade("Buy",prefix+"EURGBP"+postfix);
        }
      else if (eur < 0 && gbp > 0)

        {
         Trade("Sell",prefix+"EURGBP"+postfix);
        }
     }

   if(MathAbs(eur-chf)>diff_val)
     {
      if (eur > 0 && chf < 0)

        {
         Trade("Buy",prefix+"EURCHF"+postfix);
        }
      else if (eur < 0 && chf > 0)

        {
         Trade("Sell",prefix+"EURCHF"+postfix);
        }
     }

   if(MathAbs(eur-aud)>diff_val)
     {
      if (eur > 0 && aud < 0)

        {
         Trade("Buy",prefix+"EURAUD"+postfix);
        }
      else if (eur < 0 && aud > 0)

        {
         Trade("Sell",prefix+"EURAUD"+postfix);
        }
     }

   if(MathAbs(eur-nzd)>diff_val)
     {
      if (eur > 0 && nzd < 0)

        {
         Trade("Buy",prefix+"EURNZD"+postfix);
        }
      else if (eur < 0 && nzd > 0)

        {
         Trade("Sell",prefix+"EURNZD"+postfix);
        }
     }

   if(MathAbs(aud-nzd)>diff_val)
     {
      if (aud > 0 && nzd < 0)

        {
         Trade("Buy",prefix+"AUDNZD"+postfix);
        }
      else if (aud < 0 && nzd > 0)

        {
         Trade("Sell",prefix+"AUDNZD"+postfix);
        }
     }

   if(MathAbs(aud-cad)>diff_val)
     {
      if (aud > 0 && cad < 0)

        {
         Trade("Buy",prefix+"AUDCAD"+postfix);
        }
      else if (aud < 0 && cad > 0)

        {
         Trade("Sell",prefix+"AUDCAD"+postfix);
        }
     }

   if(MathAbs(aud-chf)>diff_val)
     {
      if (aud > 0 && chf < 0)

        {
         Trade("Buy",prefix+"AUDCHF"+postfix);
        }
      else if (aud < 0 && chf > 0)

        {
         Trade("Sell",prefix+"AUDCHF"+postfix);
        }
     }

   if(MathAbs(aud-jpy)>diff_val)
     {
      if (aud > 0 && jpy < 0)

        {
         Trade("Buy",pre

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

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

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

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

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

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

Стоимость полного кода
1 230,60₽ ≈ $15.04