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

xMeterMTF

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

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

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

О программе

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

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

Индикатор не совершает торговых операций и не выдаёт сигналов на вход. Он предназначен для информационной оценки относительной силы валют и может использоваться как вспомогательный инструмент при принятии торговых решений.

Получить полный код

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

/*
xMeterMTF.mq4     
Copyright ? 2007, MetaQuotes Software Corp.     
Price Meter System™ ?GPL     

Hartono Setiono
   5/17/2007 Redsigned based on xMeter_mini.mq4 indicator
*/

#property  indicator_chart_window
#property  indicator_buffers 0

#include <stdlib.mqh>
#include <stderror.mqh> 

#define TABSIZE  19                    // scale of currency's power !!!DON'T CHANGE THIS NUMBER!!!
#define ORDER    2                      // available type of order !!!DON'T CHANGE THIS NUMBER!!!

string Id = "xmeter2";
extern bool AccountIsIBFXmini = false;
/*extern*/ bool LoopOnInit=false;

/* You can change any of the following arrays */
   string aTradePair[]= {"GBPJPY"};
   string aPair[]   = {"EURUSD","GBPUSD","AUDUSD","NZDUSD","USDJPY","USDZAR","USDCHF","USDCAD","EURCAD","USDSEK","GBPCAD","USDMXN",
                       "EURJPY","EURGBP","EURCHF","EURAUD","EURNZD","GBPJPY","GBPCHF","USDNOK","EURNOK","USDTRY","EURTRY","EURSEK"};

/* The following can also be changed but both must have the same dimension */
   string aMajor[] = {"USD","EUR","GBP","CHF","CAD","AUD","NZD","JPY","NOK","SEK","TRY","MXN","ZAR"};
   int    aMajorPos[] = {250,230,210,190,170,150,130, 110, 90, 70, 50, 30, 10};

string aOrder[ORDER]    = {"BUY ","SELL "};
int    aTable[TABSIZE]  = {0,3,10,25,40,50,60,75,90,97,100};                 // grade table for currency's power

int PairCount;
int CurrencyCount;
double aMeter[];
double aHigh[];
double aLow[];
double aBid[];
double aAsk[];
double aRatio[];
double aRange[];
double aLookup[];
double aStrength[];
int aIndex[2][10];

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

int deinit()
  {

   DeleteExistingLabels();
   Print("shutdown error - ",ErrorDescription(GetLastError()));                               // system is detached from platform

   return(0);                                                               // end of deinit function
  }

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

void main()                                                                 // this a control center
  {

   double point;
   int    index, pindex, cnt;
   string mySymbol;
   double cmeter;

   for (index = 0; index < PairCount; index++)                                // initialize all pairs required value 
   {
      RefreshRates();                                                       // refresh all currency's instrument
      if (AccountIsIBFXmini)
         mySymbol = aPair[index]+'m';                                       // Add "m for IBFX mini
      else
         mySymbol = aPair[index];                        
      point            = GetPoint(mySymbol);                                // get a point basis
      aHigh[index]     = MarketInfo(mySymbol,MODE_HIGH); //iHigh(mySymbol,mTimeFrame,iHighest(mySymbol,mTimeFrame,MODE_HIGH,mPeriod,0));   // find highest
      aLow[index]      = MarketInfo(mySymbol,MODE_LOW); //iLow(mySymbol,mTimeFrame,iLowest(mySymbol,mTimeFrame,MODE_LOW,mPeriod,0));   // find lowest
      aBid[index]      = MarketInfo(mySymbol,MODE_BID);                 // set a last bid
      aAsk[index]      = MarketInfo(mySymbol,MODE_ASK);                 // set a last ask
      aRange[index]    = MathMax((aHigh[index]-aLow[index])/point,1);       // calculate range today
      aRatio[index]    = (aBid[index]-aLow[index])/aRange[index]/point;     // calculate pair ratio
      aLookup[index]   = iLookup(aRatio[index]*100);                        // set a pair grade
      aStrength[index] = 9.9-aLookup[index];                                  // set a pair strengh
   } 

   for (pindex=0; pindex<CurrencyCount; pindex++)
   { 
     cnt=0; 
     cmeter=0;
     for (index = 0; index < PairCount; index++)                                // initialize all pairs required value 
     {

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

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

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

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

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

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

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