Берешь 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) выше столбцов,которые им предшествуют,
соответствующий ценовой бар был окрашен в зеленый цвет.И если текущие столбцы гистограмм
"АС" и "АО"ниже столбцов,которые им предшествуют ,соответствующий ценовой бар был окрашен
в красный цвет.Если "АС" и "АО" имеют разные цвета,окрас ценового бара был серым.То есть
разбить ценовой график на зоны красную,зеленую и серую.Что несомненно делает график более
удобным в использовании.