Как можно вывести окно недельного стохастика с любыми параметрами, например стандартными, на Daily графике, что бы не переключаться каждый раз с Daily на Weekly?
- бета-тестирование новой системы MetaTrader
- Индикаторы: Индикатор уровней поддержки и сопротивления
- FOREX - Тенденции, прогнозы и следствия 2015(продолжение)
Как можно вывести окно недельного стохастика с любыми параметрами, например стандартными, на Daily графике, что бы не переключаться каждый раз с Daily на Weekly?
Попробуйте StochasticR:
//+------------------------------------------------------------------+ //| StochasticR.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ // Индикатор отображает значения Stochastic Oscillator большего таймфрейма. // Перед использованием данного индикатора необходимо в папку // MetaTrader4\experts\indicators поместить индикатор Stochastic Oscillator, // который можно скачать с http://mql4.com/ru/codebase/indicators/237/. // Вначале нужно открыть окно графика большего таймфрейма, а затем рабочий. #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- input parameters extern int KPeriod=5; extern int DPeriod=3; extern int Slowing=3; //---- buffers double MainBuffer[]; double SignalBuffer[]; double HighesBuffer[]; double LowesBuffer[]; //---- int draw_begin1=0; int draw_begin2=0; int GrossPeriod; datetime daytimes[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(4); SetIndexBuffer(2, HighesBuffer); SetIndexBuffer(3, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, MainBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, SignalBuffer); //---- name for DataWindow and indicator subwindow label switch (Period()) { case 1: GrossPeriod = 5; break; case 5: GrossPeriod = 15; break; case 15: GrossPeriod = 30; break; case 30: GrossPeriod = 60; break; case 60: GrossPeriod = 240; break; case 240: GrossPeriod = 1440; break; case 1440: GrossPeriod = 10080; break; case 10080: GrossPeriod = 43200; break; default: GrossPeriod = 43200; break; } short_name="StochR"+"_"+GrossPeriod+" ("+KPeriod+","+DPeriod+","+Slowing+")"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,"Signal"); //---- draw_begin1=KPeriod+Slowing; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic oscillator for GrossPeriod | //+------------------------------------------------------------------+ int start() { int limit, bigshift; int counted_bars=IndicatorCounted(); datetime tLastBarTime; //---- if(counted_bars<0) return(-1); int nBars = ArrayCopySeries(daytimes,MODE_TIME,Symbol(),GrossPeriod); int LastError = GetLastError(); if(LastError == 4066) { int lastBars = nBars; for( int k = 0; k <5; k++) { Sleep(500); tLastBarTime = daytimes[0]; nBars = ArrayCopySeries(daytimes,MODE_TIME,Symbol(),GrossPeriod); LastError = GetLastError(); if(tLastBarTime == daytimes[0] && lastBars==nBars && LastError == 0) break; lastBars = nBars; } } if (counted_bars>0) counted_bars--; limit=Bars-counted_bars; for (int i=0; i<limit; i++) { if(Time[i]>=daytimes[0]) bigshift=0; else { bigshift = ArrayBsearch(daytimes,Time[i-1],WHOLE_ARRAY,0,MODE_DESCEND); bigshift++; } MainBuffer[i]=iCustom(NULL,GrossPeriod,"Stochastic",KPeriod,DPeriod,Slowing,0,bigshift); SignalBuffer[i]=iCustom(NULL,GrossPeriod,"Stochastic",KPeriod,DPeriod,Slowing,1,bigshift); } //---- return(0); } //+------------------------------------------------------------------+
Как можно вывести окно недельного стохастика с любыми параметрами, например стандартными, на Daily графике, что бы не переключаться каждый раз с Daily на Weekly?
Еще один вариант StochasticR+ с использованием встроенного технического индикатора Stochastic Oscillator:
//+------------------------------------------------------------------+ //| StochasticR+.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ // Индикатор отображает значения Stochastic Oscillator большего таймфрейма. // Вначале нужно открыть окно графика большего таймфрейма, а затем рабочий. #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- input parameters extern int KPeriod=5; extern int DPeriod=3; extern int Slowing=3; extern int MAMethod=0; extern int PriceField=0; //---- buffers double MainBuffer[]; double SignalBuffer[]; double HighesBuffer[]; double LowesBuffer[]; //---- int draw_begin1=0; int draw_begin2=0; int GrossPeriod; datetime daytimes[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(4); SetIndexBuffer(2, HighesBuffer); SetIndexBuffer(3, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, MainBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, SignalBuffer); //---- name for DataWindow and indicator subwindow label switch (Period()) { case 1: GrossPeriod = 5; break; case 5: GrossPeriod = 15; break; case 15: GrossPeriod = 30; break; case 30: GrossPeriod = 60; break; case 60: GrossPeriod = 240; break; case 240: GrossPeriod = 1440; break; case 1440: GrossPeriod = 10080; break; case 10080: GrossPeriod = 43200; break; default: GrossPeriod = 43200; break; } short_name="StochR+"+"_"+GrossPeriod+" ("+KPeriod+","+DPeriod+","+Slowing+")"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,"Signal"); //---- draw_begin1=KPeriod+Slowing; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic oscillator for GrossPeriod | //+------------------------------------------------------------------+ int start() { int limit, bigshift; int counted_bars=IndicatorCounted(); datetime tLastBarTime; //---- if(counted_bars<0) return(-1); int nBars = ArrayCopySeries(daytimes,MODE_TIME,Symbol(),GrossPeriod); int LastError = GetLastError(); if(LastError == 4066) { int lastBars = nBars; for( int k = 0; k <5; k++) { Sleep(500); tLastBarTime = daytimes[0]; nBars = ArrayCopySeries(daytimes,MODE_TIME,Symbol(),GrossPeriod); LastError = GetLastError(); if(tLastBarTime == daytimes[0] && lastBars==nBars && LastError == 0) break; lastBars = nBars; } } if (counted_bars>0) counted_bars--; limit=Bars-counted_bars; for (int i=0; i<limit; i++) { if(Time[i]>=daytimes[0]) bigshift=0; else { bigshift = ArrayBsearch(daytimes,Time[i-1],WHOLE_ARRAY,0,MODE_DESCEND); bigshift++; } MainBuffer[i]=iStochastic(NULL,GrossPeriod,KPeriod,DPeriod,Slowing,MAMethod,PriceField,0,bigshift); SignalBuffer[i]=iStochastic(NULL,GrossPeriod,KPeriod,DPeriod,Slowing,MAMethod,PriceField,1,bigshift); } //---- return(0); } //+------------------------------------------------------------------+
И скриншот:
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь