overlaychart.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «overlaychart.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 4 позволяет накладывать свечной график выбранного символа на текущий график. Свечи отображаются в заданных цветах для бычьих и медвежьих направлений, включая тела и тени. При включённом режиме зеркалирования свечи вторичного символа отображаются инвертированно относительно центра текущего ценового диапазона.
Индикатор строит сетку горизонтальных линий с подписями цен, привязанных к диапазону цен вторичного символа. На графике отображается информационная панель с текущими данными открытия, максимума, минимума и закрытия последней видимой свечи вторичного символа, а также метка автора.
Визуальное представление обновляется при каждом пересчёте индикатора. Все графические объекты удаляются при удалении индикатора с графика. Работа индикатора ограничена отображением аналитических данных и не выполняет торговых операций.
Настройки программы
| Настройка | Описание |
|---|---|
| SubSymbol | Вторичный символ — Тиковый символ, данные которого накладываются на текущий график |
| BullBarColor | Цвет бычьей свечи — Цвет тела и теней бычьей свечи наложенного графика |
| BearBarColor | Цвет медвежьей свечи — Цвет тела и теней медвежьей свечи наложенного графика |
| GridColor | Цвет сетки — Цвет линий сетки и ценовых подписей |
| Mirroring | Зеркалирование — Включает инверсию направления свечей вторичного символа относительно центра диапазона |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4
extern string SubSymbol = "USDJPY";
extern color BullBarColor = MediumSeaGreen;
extern color BearBarColor = Orange;
extern color GridColor = Black;
extern bool Mirroring = false;
string Prefix; //Indicator Prefix
int Grid = 10; //Grid Lines
int SnapPips = 10; //Snap Pips For Grid Lines
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
int init() {
// код доступен только после оплаты
}
int deinit() {
int _i;
ObjectDelete( Prefix + "Status" );
ObjectDelete( Prefix + "Copyright" );
for ( _i = 1; _i <= Grid ; _i ++ ) {
ObjectDelete( Prefix + "Grid" + _i );
ObjectDelete( Prefix + "Price" + _i );
}
return( 0 );
}
int start() {
// код доступен только после оплаты
}
int _BarsCount;
double _CurRangeHigh, _CurRangeLow, _CurRangeCenter;
double _SubRangeHigh, _SubRangeLow, _SubRangeCenter;
double _SubPoint, _SubDigit;
double _SubOpen, _SubHigh, _SubLow, _SubClose;
double _PipsRatio;
double _GridPips, _GridPrice;
int _i;
RefreshRates();
ArrayInitialize( ExtMapBuffer1, 0.0 );
ArrayInitialize( ExtMapBuffer2, 0.0 );
ArrayInitialize( ExtMapBuffer3, 0.0 );
ArrayInitialize( ExtMapBuffer4, 0.0 );
_BarsCount = BarsPerWindow() + 1;
int _FirstBar = FirstVisibleBar();
int _LastBar = _FirstBar - _BarsCount + 1;
if ( _LastBar < 0 ) {
_LastBar = 0;
_BarsCount = _FirstBar + 1;
}
_CurRangeHigh = High[Highest(NULL, 0, MODE_HIGH, _BarsCount, _LastBar)];
_CurRangeLow = Low[Lowest(NULL, 0, MODE_LOW, _BarsCount, _LastBar)];
_CurRangeCenter = ( _CurRangeHigh + _CurRangeLow ) / 2;
if ( Mirroring ) {
_SubRangeHigh = iLow( SubSymbol, 0, Lowest( SubSymbol, 0, MODE_LOW, _BarsCount, _LastBar ) );
_SubRangeLow = iHigh( SubSymbol, 0, Highest( SubSymbol, 0, MODE_HIGH, _BarsCount, _LastBar ) );
} else {
_SubRangeHigh = iHigh( SubSymbol, 0, Highest( SubSymbol, 0, MODE_HIGH, _BarsCount, _LastBar ) );
_SubRangeLow = iLow( SubSymbol, 0, Lowest( SubSymbol, 0, MODE_LOW, _BarsCount, _LastBar ) );
}
_SubRangeCenter = ( _SubRangeHigh + _SubRangeLow ) / 2;
_SubPoint = MarketInfo( SubSymbol, MODE_POINT );
_SubDigit = MarketInfo( SubSymbol, MODE_DIGITS );
_PipsRatio = ( _CurRangeHigh - _CurRangeLow ) / ( _SubRangeHigh - _SubRangeLow );
_GridPips = ( _SubRangeHigh - _SubRangeLow ) / Grid;
_GridPips = MathRound( ( _SubRangeHigh - _SubRangeLow ) / Grid / ( _SubPoint * SnapPips ) ) * ( _SubPoint * SnapPips );
for ( _i = _LastBar; _i < _LastBar + _BarsCount; _i ++ ) {
_SubOpen = iOpen( SubSymbol, 0, _i ) - _SubRangeCenter;
_SubHigh = iHigh( SubSymbol, 0, _i ) - _SubRangeCenter;
_SubLow = iLow( SubSymbol, 0, _i ) - _SubRangeCenter;
_SubClose = iClose( SubSymbol, 0, _i ) - _SubRangeCenter;
if ( MirПоказано первые 50% кода (символов: 5406)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.