Берешь Heiken Ashi, добавляешь пару буферов в индикатор, чуток меняешь логику - готово.
Rosh хотел сказать, что надо написАть пользовательский индикатор, который и будет разукрашивать бары =)
это как примерно?Если не сложно подскажите более подробно.
это индикатор, положи его в indicators
//============================================================================= // Zone With Signal.mq4 // Copyright © 2005, PTG Sowtware // PTGSoft@mail.ru //============================================================================= // For SM Bars With MFI we recommend next chart settings ( press F8 // or select on menu 'Charts'->'Properties...'): // - On 'Common' Tab disable 'Chart on Foreground' checkbox //============================================================================= #include <comlib.mqh> #property copyright "Copyright © 2005, PTG Sowtware" #property link "PTGSoft@mail.ru" #property indicator_chart_window #property indicator_buffers 4 //============================================================================= // Custom indicator shared variables //============================================================================= double GreenZoneBuffer[]; double RedZoneBuffer[]; double GrayZoneBuffer[]; double BlueZoneBuffer[]; //============================================================================= // Custom indicator initialization function //============================================================================= int init() { SetIndexStyle(0, DRAW_HISTOGRAM, 0, 1, Green); SetIndexStyle(1, DRAW_HISTOGRAM, 0, 1, Red); SetIndexStyle(2, DRAW_HISTOGRAM, 0, 1, Gray); SetIndexStyle(3, DRAW_HISTOGRAM, 0, 1, Blue); SetIndexBuffer(0, GreenZoneBuffer); SetIndexBuffer(1, RedZoneBuffer); SetIndexBuffer(2, GrayZoneBuffer); SetIndexBuffer(3, BlueZoneBuffer); return(0); } //============================================================================= // Custor indicator deinitialization function //============================================================================= int deinit() { return(0); } //============================================================================= // Custom indicator iteration function //============================================================================= int start() { double cur_AO, prv_AO, cur_AC, prv_AC; //=== Draw Zone === for(int i = 0; i < Bars; i++) { if(iBWZone(NULL, 0, OP_BUY, i)) // Green zone { GreenZoneBuffer[i] = High[i]; RedZoneBuffer[i] = Low[i]; GrayZoneBuffer[i] = 0.0; BlueZoneBuffer[i] = 0.0; } else if (iBWZone(NULL, 0, OP_SELL, i)) // Red zone { GreenZoneBuffer[i] = Low[i]; RedZoneBuffer[i] = High[i]; GrayZoneBuffer[i] = 0.0; BlueZoneBuffer[i] = 0.0; } else // Gray zone { GreenZoneBuffer[i] = 0.0; RedZoneBuffer[i] = 0.0; GrayZoneBuffer[i] = High[i]; BlueZoneBuffer[i] = Low[i]; } } return(0); } //============================================================================= // End. Thank you for nothing! //=============================================================================
Это библиотека, ее положи в libraries
//============================================================================= // comlib.mq4 // Copyright © 2005, PTG Sowtware // PTGSoft@mail.ru //============================================================================= #property copyright "Copyright © 2005, PTG Sowtware" #property link "PTGSoft@mail.ru" #property library //============================================================================= // Вычисляет зоны по АО и АС // Параметры: // <mode> тип зоны: 0 - зеленая; 1 - красная; 2 - серая // Функция возвращаети <истина>, если бар номер <shift> соответствует // режиму <mode>. в обратном случае возвращается ложь //============================================================================= bool iBWZone(string symbol, int timeframe, int mode, int shift) { bool result = false; double cur_AO, prv_AO, cur_AC, prv_AC; // здесь я в наглую перебил параметр // валюты, пока берется только текущая валюта графика cur_AO = iAO(NULL, timeframe, shift); prv_AO = iAO(NULL, timeframe, shift + 1); cur_AC = iAC(NULL, timeframe, shift); prv_AC = iAC(NULL, timeframe, shift + 1); if((cur_AO > prv_AO) && (cur_AC > prv_AC) && (mode == OP_BUY)) { result = true; } else if ((cur_AO < prv_AO) && (cur_AC < prv_AC) && (mode == OP_SELL)) { result = true; } else if(mode == 2) { result = true; } else { result = false; } return(result); } //============================================================================= // Функция возвращает строковое представление периода //============================================================================= string PeriodToStr(int period) { switch(period) { case 1: return("M1"); break; case 5: return("M5"); break; case 15: return("M15"); break; case 30: return("M30"); break; case 60: return("H1"); break; case 240: return("H4"); break; case 1440: return("D1"); break; case 10080: return("W1"); break; case 43200: return("MN"); break; default: return("Sorry! Unkwown period"); break; } } //============================================================================= // Функция возвращает цену последнего фрактала // для бара № <shift>, <mode> - режим покупка/продажа //============================================================================= double GetPriceLastFractal(string symbol, int timeframe, int mode, int shift) { double currprice; while(currprice == 0) { currprice = iFractals(symbol, timeframe, mode, shift); shift++; } return(currprice); } //============================================================================= // Функция возвращает смещение от бара № <shift> для последнего фрактала // , <mode> - режим покупка/продажа //============================================================================= int GetShiftLastFractal(string symbol, int timeframe, int mode, int shift) { double currprice; while(currprice == 0) { currprice = iFractals(symbol, timeframe, mode, shift); shift++; } return(shift); } //============================================================================= // End. Thank you for nothing! //=============================================================================
Это инклудник, его полжи в include
//============================================================================= // comlib.mqh // Copyright © 2005, PTG Sowtware // PTGSoft@mail.ru //============================================================================= #import "comlib.ex4" bool iBWZone(string symbol, int timeframe, int mode, int shift); string PeriodToStr(int period); double GetPriceLastFractal(string symbol, int timeframe, int mode, int shift); int GetShiftLastFractal(string symbol, int timeframe, int mode, int shift);
можешь и в один файл это все собрать, я просто библиотеку в нескольких индикаторах использую, для этого перенеси процедуру iBWZone в код индикатора.
Все большое спасибо заработало!!!!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Awesome Oscillator(AO) и Accelerator Oscillator(AC) выше столбцов,которые им предшествуют,
соответствующий ценовой бар был окрашен в зеленый цвет.И если текущие столбцы гистограмм
"АС" и "АО"ниже столбцов,которые им предшествуют ,соответствующий ценовой бар был окрашен
в красный цвет.Если "АС" и "АО" имеют разные цвета,окрас ценового бара был серым.То есть
разбить ценовой график на зоны красную,зеленую и серую.Что несомненно делает график более
удобным в использовании.