Хороший индикатор но требует доработки. Поогает определить самый сильный тренд.

 

Пользуюсь услугами сайта и программистов! Качаю тут понимаешь... И было бы не честно, если бы не поделился своими Идеями! Идея появилась давно, но индикатор смог написать совсем недавно, и то не прошел модератора. Индикатор показывает изменение каждой валюты против всех остальных.

Индикатор помогает определить тренд.

У кого получится доработать, буду очень признателен. Вообщето он и так работает.

//+------------------------------------------------------------------+
//| Money_STAR.mq4 |
//| HomeTrader |
//| mailbake@mail.ru |
//+------------------------------------------------------------------+


#property copyright "Hometrader"
#property link "mailbake@mail.ru"

#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Yellow
#property indicator_color3 White
#property indicator_color4 Green
#property indicator_color5 Aqua
#property indicator_color6 Purple
#property indicator_color7 Brown


extern int period_1 = 13 ;
extern int period_2 = 55 ;
extern int Shift = 1 ;
extern int EUR = -14104 ;
extern int GBP = -12734 ;
extern int AUD = 1827 ;
extern int USD = 602 ;
extern int CAD = 6201 ;
extern int CHF = 8691 ;
extern int JPY = 9492 ;


double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,ExtMapBuffer3);

SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,ExtMapBuffer4);

SetIndexStyle(4,DRAW_LINE);
SetIndexBuffer(4,ExtMapBuffer5);

SetIndexStyle(5,DRAW_LINE);
SetIndexBuffer(5,ExtMapBuffer6);

SetIndexStyle(6,DRAW_LINE);
SetIndexBuffer(6,ExtMapBuffer7);


IndicatorShortName("Money_STAR("+period_1+","+period_2+")");

SetIndexLabel(0,"EUR");
SetIndexLabel(1,"GBP");
SetIndexLabel(2,"AUD");
SetIndexLabel(3,"USD");
SetIndexLabel(4,"CAD");
SetIndexLabel(5,"CHF");
SetIndexLabel(6,"JPY");

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();

//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

//---- main loop
for(int i=0; i<limit; i++)
{
//--EUR----------------------------------------------------
double p1 = MarketInfo("EURGBP",MODE_POINT);
double EURGBP = iMA("EURGBP",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p1;

double p2 = MarketInfo("EURUSD",MODE_POINT);
double EURUSD = iMA("EURUSD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p2;

double p3 = MarketInfo("EURCAD",MODE_POINT);
double EURCAD = iMA("EURCAD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p3;

double p4 = MarketInfo("EURCHF",MODE_POINT);
double EURCHF = iMA("EURCHF",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p4;

double p5 = MarketInfo("EURJPY",MODE_POINT);
double EURJPY = iMA("EURJPY",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p5;

double p6 = MarketInfo("EURAUD",MODE_POINT);
double EURAUD = iMA("EURAUD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p6;

//--GBP-----------------------------------------------------

double p7 = MarketInfo("GBPUSD",MODE_POINT);
double GBPUSD = iMA("GBPUSD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p7;

double p8 = MarketInfo("GBPCAD",MODE_POINT);
double GBPCAD = iMA("GBPCAD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p8;

double p9 = MarketInfo("GBPCHF",MODE_POINT);
double GBPCHF = iMA("GBPCHF",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p9;

double p10 = MarketInfo("GBPJPY",MODE_POINT);
double GBPJPY = iMA("GBPJPY",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p10;

double p11 = MarketInfo("GBPAUD",MODE_POINT);
double GBPAUD = iMA("GBPAUD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p11;


//--AUD-------------------------------------------------------------

double p12 = MarketInfo("AUDUSD",MODE_POINT);
double AUDUSD = iMA("AUDUSD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p12;

double p13 = MarketInfo("AUDCAD",MODE_POINT);
double AUDCAD = iMA("AUDCAD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p13;

double p14 = MarketInfo("AUDCHF",MODE_POINT);
double AUDCHF = iMA("AUDCHF",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p14;

double p15 = MarketInfo("AUDJPY",MODE_POINT);
double AUDJPY = iMA("AUDJPY",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p15;

//--USD-------------------------------------------------------------

double p16 = MarketInfo("USDCAD",MODE_POINT);
double USDCAD = iMA("USDCAD",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p16;

double p17 = MarketInfo("USDCHF",MODE_POINT);
double USDCHF = iMA("USDCHF",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p17;

double p18 = MarketInfo("USDJPY",MODE_POINT);
double USDJPY = iMA("USDJPY",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p18;

//--CAD-----------------------------------------------------------------

double p19 = MarketInfo("CADCHF",MODE_POINT);
double CADCHF = iMA("CADCHF",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p19;

double p20 = MarketInfo("CADJPY",MODE_POINT);
double CADJPY = iMA("CADJPY",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p20;

//-- CHF------------------------------------------------------------------

double p21 = MarketInfo("CHFJPY",MODE_POINT);
double CHFJPY = iMA("CHFJPY",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p21;

//-- Calculation of Money ---------------------------------------------------

double EUR1 = (( EURGBP + EURAUD + EURUSD + EURCAD + EURCHF + EURJPY )/6) + EUR;
double GBP1 = (( GBPAUD + GBPUSD + GBPCAD + GBPCHF + GBPJPY - EURGBP )/6) + GBP;
double AUD1 = (( AUDUSD + AUDCAD + AUDCHF + AUDJPY - EURAUD - GBPAUD )/6) + AUD;
double USD1 = (( USDCAD + USDCHF + USDJPY - EURUSD - GBPUSD - AUDUSD )/6) + USD;
double CAD1 = (( CADCHF + CADJPY - EURCAD - GBPCAD - AUDCAD - USDCAD )/6) + CAD;
double CHF1 = (( CHFJPY - EURCHF - GBPCHF - AUDCHF - USDCHF - CADCHF )/6) + CHF;
double JPY1 = (( - EURJPY - GBPJPY - AUDJPY - USDJPY - CADJPY - CHFJPY )/6) + JPY;





ExtMapBuffer1[i] = EUR1;
ExtMapBuffer2[i] = GBP1;
ExtMapBuffer3[i] = AUD1;
ExtMapBuffer4[i] = USD1;
ExtMapBuffer5[i] = CAD1;
ExtMapBuffer6[i] = CHF1;
ExtMapBuffer7[i] = JPY1;





}
//----
return(0);
}
//+------------------------------------------------------------------+

Файлы:
 

1) что доработать то?

2) что означают параметры :

extern int EUR = -14104 ;
extern int GBP = -12734 ;
extern int AUD = 1827 ;
extern int USD = 602 ;
extern int CAD = 6201 ;
extern int CHF = 8691 ;
extern int JPY = 9492 ;?

3) Видели ли Вы например это: 'Индикатор индексов валют' или 'Теоретические основы построения кластерных индикаторов для рынка FOREX' ?

 
Zhunko писал(а) >>

Или это:

А где это лежит? Такие мега крокодилы моя слабость..:)

 

double EUR1 = (( EURGBP + EURAUD + EURUSD + EURCAD + EURCHF + EURJPY )/6) + EUR;
double GBP1 = (( GBPAUD + GBPUSD + GBPCAD + GBPCHF + GBPJPY - EURGBP )/6) + GBP;
double AUD1 = (( AUDUSD + AUDCAD + AUDCHF + AUDJPY - EURAUD - GBPAUD )/6) + AUD;
double USD1 = (( USDCAD + USDCHF + USDJPY - EURUSD - GBPUSD - AUDUSD )/6) + USD;
double CAD1 = (( CADCHF + CADJPY - EURCAD - GBPCAD - AUDCAD - USDCAD )/6) + CAD;
double CHF1 = (( CHFJPY - EURCHF - GBPCHF - AUDCHF - USDCHF - CADCHF )/6) + CHF;
double JPY1 = (( - EURJPY - GBPJPY - AUDJPY - USDJPY - CADJPY - CHFJPY )/6) + JPY;

что за граматеи такие формулы сочиняют? ))

чтобы слагать бульдогов с носорогами нужно их или нормировать на свое стандартное отклонение или перевести в коэффициенты типа ( dot[a] / dot[b] - 1 )

 
И чего ругаться? Знаешь как более коректно написать - НАПИШИ, или подскажи. А если не хочешь этого делать так лучше тогда промолчи. Человек сообщил, что на Истину в последней инстанции не претендует.
 
nkeshka >>:
И чего ругаться? Знаешь как более коректно написать - НАПИШИ, или подскажи. А если не хочешь этого делать так лучше тогда промолчи. Человек сообщил, что на Истину в последней инстанции не претендует.

так я и НАПИСАЛ русским по белому целых две подсказки

где я тут ругался?

если не хочешь понять эти подсказки так лучше тогда промолчи

double p1 = MarketInfo("EURGBP",MODE_POINT); //  эта ерунда должна быть заменена на  SD
double EURGBP = iMA("EURGBP",0,1,Shift,MODE_EMA,PRICE_CLOSE,i)/p1;

 
Пардон, не досмотрел. :о)
 

у семен семеныча в процентах кластер

хотя первая его версия тоже была дебильная )

 
А помоему никаких груповых движений нет, все чистая математика и все валюты пересчитываются по определенному и жесткому алгоритму. Интересное исследование 'Универсальный шаблон индикатора'
 
Figar0 >>:

А где это лежит? Такие мега крокодилы моя слабость..:)

Это только у меня лежит. Уже три года пишу. Файл "*.EX4" эксперта уже больше 600 кб, каждый индикатор к нему ещё на 100 кб и библиотек немеряно... Эксперт компилируется в течении 20 секунд.

cabluk писал(а) >>

у семен семеныча в процентах кластер
хотя первая его версия тоже была дебильная )

По моему, у него всё дебильное... Извиняюсь, конечно... Не хорошо так объективно оценивать :-)