arbitrage@lifeindreamsworld.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «arbitrage@lifeindreamsworld.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это пользовательский индикатор для платформы MetaTrader 4, предназначенный для анализа арбитражных возможностей между тремя валютными парами. Инструмент рассчитывает выбранный технический индикатор (MACD, Stochastic, RSI, CCI, RVI или DeMarker) для каждой из трёх пар и отображает два буфера — Base и Quote — в отдельном окне графика в виде линий. Индикатор поддерживает настройку временного интервала, выбор цены расчёта, а также визуальные опции: окраска свечей, заливка области между линиями трендовыми объектами и вывод алертов при пересечении буферов.
Настройки программы
| Настройка | Описание |
|---|---|
| Indicator | Выбор индикатора — Определяет, какой технический индикатор будет рассчитан и отображён: MACD, Stochastic, RSI, CCI, RVI или DeMarker. |
| TimeFrame | Таймфрейм — Задаёт временной интервал для расчёта индикаторных значений; 0 соответствует текущему таймфрейму графика. |
| MACD | MACD (разделитель) — Текстовый разделитель в панели настроек, обозначающий группу параметров индикатора MACD. |
| Fast EMA Period (FastEMA) | Период быстрой EMA — Период быстрой экспоненциальной скользящей средней, используемая в расчёте MACD. |
| Slow EMA Period (SlowEMA) | Период медленной EMA — Период медленной экспоненциальной скользящей средней, используемая в расчёте MACD. |
| Signal SMA Period (SignalSMA) | Период сигнальной SMA — Период простой скользящей средней, используемой в качестве сигнальной линии MACD. |
| MACD Price (MACDPrice) | Цена для MACD — Ценовой тип, применяемый при расчёте индикатора MACD (например, закрытие, открытие и т. д.). |
| Stochastic | Stochastic (разделитель) — Текстовый разделитель в панели настроек, обозначающий группу параметров осциллятора Stochastic. |
| K Period (Kperiod) | Период K — Основной период осциллятора Stochastic. |
| D Period (Dperiod) | Период D — Период сигнальной линии осциллятора Stochastic. |
| Slowing | Замедление — Коэффициент сглаживания осциллятора Stochastic. |
| Price Field (PriceField) | Поле цены Stochastic — Ценовой тип, используемый при расчёте осциллятора Stochastic. |
| RSI | RSI (разделитель) — Текстовый разделитель в панели настроек, обозначающий группу параметров индикатора RSI. |
| RSI Period (RSIPeriod) | Период RSI — Период индикатора относительной силы RSI. |
| RSI Price (RSIPrice) | Цена для RSI — Ценовой тип, применяемый при расчёте индикатора RSI. |
| CCI | CCI (разделитель) — Текстовый разделитель в панели настроек, обозначающий группу параметров индикатора CCI. |
| CCI Period (CCIPeriod) | Период CCI — Период индикатора Commodity Channel Index. |
| CCI Price (CCIPrice) | Цена для CCI — Ценовой тип, применяемый при расчёте индикатора CCI. |
| RVI | RVI (разделитель) — Текстовый разделитель в панели настроек, обозначающий группу параметров индикатора RVI. |
| RVI Period (RVIPeriod) | Период RVI — Период индикатора Relative Vigor Index. |
| DeMarker | DeMarker (разделитель) — Текстовый разделитель в панели настроек, обозначающий группу параметров осциллятора DeMarker. |
| DeMarker Period (DeMarkerPeriod) | Период DeMarker — Период осциллятора DeMarker. |
| _ | Разделитель — Текстовый разделитель в панели настроек. |
| Color Bars (ColorBars) | Окраска свечей — Включает или отключает автоматическую окраску свечей в цвета индикаторных линий. |
| Fill Buffers (FillBuffers) | Заливка буферов — Включает или отключает отрисовку трендовых линий, заполняющих область между двумя буферами. |
| __ | Разделитель — Текстовый разделитель в панели настроек. |
| AlertsOn | Алерты — Включает или отключает вывод алертов при пересечении буферов Base и Quote. |
Поиск по коду файла
#property description"Arbitrage by pipPod"
#property version "1.00"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrLimeGreen
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrFireBrick
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
ushort indicator_width3;
#property indicator_levelcolor clrLightSlateGray
double indicator_level1= 0;
double indicator_level2= .2;
double indicator_level3= -.2;
double indicator_level4= 20;
double indicator_level5= -20;
double indicator_level6= 30;
double indicator_level7= -30;
double indicator_level8= 100;
double indicator_level9=-100;
enum indicators
{
INDICATOR_MACD, //Moving Average Convergence/Divergence
INDICATOR_STOCHASTIC, //Stochastic Oscillator
INDICATOR_RSI, //Relative Strength Index
INDICATOR_CCI, //Commodity Channel Index
INDICATOR_RVI, //Relative Vigor Index
INDICATOR_DEMARK, //DeMarker Oscillator
};
input indicators Indicator=INDICATOR_MACD;
input ENUM_TIMEFRAMES TimeFrame=0;
input string MACD;
input int FastEMA=12; //Fast EMA Period
input int SlowEMA=26; //Slow EMA Period
input int SignalSMA=9; //Signal SMA Period
input ENUM_APPLIED_PRICE MACDPrice=PRICE_CLOSE; //MACD Price
input string Stochastic;
input int Kperiod=7; //K Period
input int Dperiod=3; //D Period
input int Slowing=3;
input ENUM_STO_PRICE PriceField=STO_LOWHIGH; //Price Field
input string RSI;
input int RSIPeriod=14; //RSI Period
input ENUM_APPLIED_PRICE RSIPrice=PRICE_CLOSE; //RSI Price
input string CCI;
input int CCIPeriod=14; //CCI Period
input ENUM_APPLIED_PRICE CCIPrice=PRICE_CLOSE; //CCI Price
input string RVI;
input int RVIPeriod=14; //RVI Period
input string DeMarker;
input int DeMarkerPeriod=14; //DeMarker Period
input string _;//---
input bool ColorBars=true; //Color Bars
input bool FillBuffers=true; //Fill Buffers
input string __;//---
input bool AlertsOn=false;
double BaseBuffer[];
double QoteBuffer[];
#define USDJPY "USDJPY"
string base,
quote,
symbol1,
symbol2,
symbol3;
double index1,
index2,
index3,
baseIndex,
qoteIndex;
bool baseUSD=false,
quoteUSD=false,
quoteJPY=false,
quoteJPY1=false,
quoteJPY2=false,
quoteJPY3=false;
color color1 = indicator_color1,
color2 = indicator_color2,
colorFill;
string shortName;
long chartID=ChartID();
short window;
int OnInit()
{
// код доступен только после оплаты
}
base = StringSubstr(_Symbol,0,3); //Base currency name
quote= StringSubstr(_Symbol,3,3); //Quote currency name
if(_Symbol=="EURUSD")
{
color1 = clrRoyalBlue;
color2 = clrLimeGreen;
quoteUSD = true;
symbol1 = _Symbol;
symbol2 = "EURJPY";
quoteJPY2 = true;
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol=="EURJPY")
{
color1 = clrRoyalBlue;
color2 = clrYellow;
quoteJPY = true;
symbol1 = _Symbol;
quoteJPY1 = true;
symbol2 = "EURUSD";
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol=="GBPUSD")
{
color1 = clrSilver;
color2 = clrLimeGreen;
quoteUSD = true;
symbol1 = _Symbol;
symbol2 = "GBPJPY";
quoteJPY2 = true;
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol=="GBPJPY")
{
color1 = clrSilver;
color2 = clrYellow;
quoteJPY = true;
symbol1 = _Symbol;
quoteJPY1 = true;
symbol2 = "GBPUSD";
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol=="AUDUSD")
{
color1 = clrDarkOrange;
color2 = clrLimeGreen;
quoteUSD = true;
symbol1 = _Symbol;
symbol2 = "AUDJPY";
quoteJPY2 = true;
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol=="USDCAD")
{
color1 = clrLimeGreen;
color2 = clrWhiteSmoke;
baseUSD = true;
symbol1 = _Symbol;
symbol2 = "CADJPY";
quoteJPY2 = true;
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol=="USDCHF")
{
color1 = clrLimeGreen;
color2 = clrFireBrick;
baseUSD = true;
symbol1 = _Symbol;
symbol2 = "CHFJPY";
quoteJPY2 = true;
symbol3 = USDJPY;
quoteJPY3 = true;
}
if(_Symbol==USDJPY)
{
color1 = clrLimeGreen;
color2 = clrYellow;
quoteJPY = true;
symbol1 = _Symbol;
quoteJPY1 = true;
symbol2 = "EURUSD";
symbol3 = "EURJPY";
quoteJPY3 = true;
}
string timeFrame = StringSubstr(EnumToString(TimeFrame),7);
if(timeFrame=="CURRENT")
timeFrame = "";
switch(Indicator)
{
case INDICATOR_MACD:
shortName=StringFormat("Arbitrage MACD %s(%d,%d,%d)",
timeFrame,FastEMA,SlowEMA,SignalSMA);
IndicatorSetInteger(INDICATOR_DIGITS,5);
IndicatorSetInteger(INDICATOR_LEVELS,1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,indicator_level1);
break;
case INDICATOR_STOCHASTIC:
shortName=StringFormat("Arbitrage Stochastic %s(%d,%d,%d)",
timeFrame,Kperiod,Dperiod,Slowing);
IndicatorSetInteger(INDICATOR_DIGITS,0);
IndicatorSetInteger(INDICATOR_LEVELS,3);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,indicator_level1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,1,indicator_level6);
IndicatorSetDouble(INDICATOR_LEVELVALUE,2,indicator_level7);
break;
case INDICATOR_RSI:
shortName=StringFormat("Arbitrage RSI %s(%d)",
timeFrame,RSIPeriod);
IndicatorSetInteger(INDICATOR_DIGITS,0);
IndicatorSetInteger(INDICATOR_LEVELS,3);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,indicator_level1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,1,indicator_level4);
IndicatorSetDouble(INDICATOR_LEVELVALUE,2,indicator_level5);
break;
case INDICATOR_CCI:
shortName=StringFormat("Arbitrage CCI %s(%d)",
timeFrame,CCIPeriod);
IndicatorSetInteger(INDICATOR_DIGITS,0);
IndicatorSetInteger(INDICATOR_LEVELS,3);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,indicator_level1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,1,indicator_level8);
IndicatorSetDouble(INDICATOR_LEVELVALUE,2,indicator_level9);
break;
case INDICATOR_RVI:
shortName=StringFormat("Arbitrage RVI %s(%d)",
timeFrame,RVIPeriod);
IndicatorSetInteger(INDICATOR_DIGITS,3);
IndicatorSetInteger(INDICATOR_LEVELS,3);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,indicator_level1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,1,indicator_level2);
IndicatorSetDouble(INDICATOR_LEVELVALUE,2,indicator_level3);
break;
case INDICATOR_DEMARK:
shortName=StringFormat("Arbitrage DeMarker %s(%d)",
timeFrame,DeMarkerPeriod);
IndicatorSetInteger(INDICATOR_DIGITS,3);
IndicatorSetInteger(INDICATOR_LEVELS,3);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,indicator_level1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,1,indicator_level2);
IndicatorSetDouble(INDICATOR_LEVELVALUE,2,indicator_level3);
}
IndicatorSetString(INDICATOR_SHORTNAME,shortName);
window = ChartПоказано первые 50% кода (символов: 11440)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.