Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет,
Во-первых, прошу прощения, если это не в том месте, я рассматриваю разворотную точку, но мой вопрос связан с кодированием, я мог бы поместить его и в MTF, но я подумал, что это лучшее место для начала.
В MT4 у нас есть ежедневные, еженедельные, ежемесячные = W1, D1, MN1.
но есть ли функция года или квартала.
Например, в прилагаемом индикаторе pivot как получить 1 год, и можно ли выбрать 12 месяцев или фиксированный предыдущий год, например 2013. И то же самое касается того, как мне заставить его вычислять квартальные поворотные точки.
Я уверен, что смогу модифицировать прилагаемый файл, но не знаю, как начать вводить в него данные, чтобы он выводил кварталы или год.
allpivots_monthly.mq4
Большое спасибо
Кевин
Вы изменили его, чтобы использовать "#pollan indy" Я понятия не имею, что делает этот индикатор (если он похож на остальные индикаторы "pollan", то он перерисовывается, и это может вызвать ваши проблемы, но сейчас я просто занимаюсь гаданием).
Уважаемый господин MLADEN...
Не могли бы вы заменить этот (#pollan indy) на любой другой индикатор, который у вас есть... может быть вызов #VQ bars.... ПОЖАЛУЙСТА, попробуйте... потому что у меня есть показания на буфере индикатора, как на прикрепленной картинке... но я не смог вызвать его через iCustom в моем советнике, чтобы проверить этот "#pollan indy"...
Надеюсь получить от вас ответ в ближайшее время... СПАСИБО
Искренне Ваш
AZRUL
Уважаемый сэр МЛАДЕН...
Не могли бы вы заменить этот (#pollan indy) на любой другой индикатор, который у вас есть... может быть, вызвать #VQ bars.... ПОЖАЛУЙСТА попробуйте.... потому что у меня есть показания на буфере индикатора, как на прикрепленной картинке... но я не смог вызвать через iCustom в моем советнике для дальнейшего тестирования этого "#pollan indy"....
Надеюсь получить от вас ответ в ближайшее время... СПАСИБО
Искренне Ваш
АЗРУЛНет необходимости заменять #VQ на #VQ (он уже рассчитывает качество волатильности).
Если он работает так, как должен работать с обычным #VQ, единственный логический вывод - что-то не так с "#pollan indy".
Помощь в кодировании
Доброе утро всем
Здравствуйте, mladen
Я пытаюсь создать свои первые коды.
Учиться у других кодов, так как нет руководства MT4 на моем языке.
Прошу не смеяться над моим кодом.
Пожалуйста, помогите мне, он работает.
Это простой индикатор, который отмечает создание Дожи.
Я прошу вашей помощи.
Заранее большое спасибо.
С наилучшими пожеланиями.
Гермо.
PD. Компилируется нормально, но не работает.
Доброе утро всем
Здравствуйте, mladen
Я пытаюсь создать свои первые коды.
Учиться на других кодах, так как нет руководства MT4 на моем языке.
Я молюсь, чтобы не смеяться над моим кодом.
Пожалуйста, помогите мне, он работает.
Это простой индикатор, который отмечает создание Дожи.
Я прошу вашей помощи.
Заранее большое спасибо.
С наилучшими пожеланиями.
Гермо.
PD. Компилируется нормально, но не работает.Hermo
Проверю.
Жду пресс-конференцию ЕЦБ сейчас :):):)
Уважаемый сэр МЛАДЕН...
Вот почему в первую очередь я не разместил свой #VQ.... может быть вы правы в том, что есть что-то неправильное в "pollan indy" и ДА он перерисовывается....
Что касается меня, я просто хотел бы попробовать свою теорию с этим индикатором, чтобы посмотреть, что получится.....
Дело в том, что я не смог вызвать буфер индикатора в своем советнике... возможно, это вызвано модифицированной версией моего #VQ, которая блокирует вызов iCustom для моего советника.....
С оригинальным #VQ он работает просто отлично... и я мог запустить свой EA...., но с модифицированным #VQ (моим), я не мог превысить, но все еще есть значение, как показано в предыдущей теме...
Я думаю, что проблема в моей модифицированной версии #VQ.... может быть синтаксической ошибкой... Пожалуйста, если у вас есть время, посмотрите и убедитесь, что все работает как надо......
СПАСИБО... и извините за любой негативный вклад.....
искренне ваш...
AZRULAZRUL
Я просто не могу знать, что происходит с вашим "pollan indy", не видя кода.
Я могу только гадать, а гадать в кодировании очень, очень плохо.
всего наилучшего
Нет необходимости заменять #VQ на #VQ (он уже вычисляет качество волатильности) Если он работает так, как должен работать с обычным #VQ, единственным логическим выводом является то, что что-то не так с "#pollan indy".
Уважаемый сэр МЛАДЕН...
Вот почему в первую очередь я не разместил свой #VQ.... может быть вы правы в том, что есть что-то неправильное в "pollan indy" и ДА он перерисовывается....
Для меня, я просто хотел бы попробовать свою теорию, с этим индикатором, чтобы посмотреть, что получится.....
Дело в том, что я не смог вызвать буфер индикатора в своем советнике... возможно, это вызвано модифицированной версией моего #VQ, которая блокирует вызов iCustom для моего советника.....
С оригинальным #VQ он работает просто отлично... и я мог запустить свой EA...., но с модифицированным #VQ (моим), я не мог превысить, но все еще есть значение, как показано в предыдущей теме...
Я думаю, что проблема в моей модифицированной версии #VQ.... может быть какая-то синтаксическая ошибка... Пожалуйста, если у вас есть время, посмотрите и проверьте, работает ли он так, как должен..... только для ОБУЧЕНИЯ....
СПАСИБО... Я ЗАПУСТИЛ ЭТУ EA СЕЙЧАС И ТЕСТИРУЮ, ЕСЛИ ВАМ ИНТЕРЕСНО УЗНАТЬ РЕЗУЛЬТАТ, Я ОПУБЛИКУЮ ЕГО В ТЕМЕ POLLAN.....
искренне ваш...
AZRUL
AZRUL
Я просто не могу знать, что происходит с вашим "pollan indy", не видя кода.
Я могу только гадать, а гадать в кодировании очень, очень плохо.
всего наилучшегоЯ ЗАПУСТИЛ ЭТУ ЕА СЕЙЧАС И ТЕСТИРУЮ, ЕСЛИ ВАМ ИНТЕРЕСНО УЗНАТЬ РЕЗУЛЬТАТ, Я ОПУБЛИКУЮ ЕГО В POLLAN THREAD.....
ЭТО БЫЛА МОЯ ВЕРСИЯ #VQ, КОТОРАЯ НЕ СРАБОТАЛА...
СПАСИБО...
искренне ваш...
AZRUL
Привет CODESGURUS,
У меня есть общий вопрос о мультитаймфрейме.... как прикреплено
на первой картинке слева - индикатор RSI на таймфрейме 5M...
На второй - мультитаймфрейм RSI 5M на таймфрейме 15M...
Вопрос в том, почему есть разница в значении, как указано в КРАСНОМ круге.....
Может ли кто-нибудь PLEASE объяснить и исправить это RsiMA-MTF коды........
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Aqua
#property indicator_color4 Yellow
#property indicator_color5 Белый
#property indicator_color6 Magenta
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 1
#property indicator_width5 1
#property indicator_width6 1
//-------------------------------------
//-----
//extern string TimeFrames = "M15; M60";
extern bool TimeFrame1bool = true;
extern int TimeFrame1 = 0;
extern bool TimeFrame2bool = False;
extern int TimeFrame2 = 0;
extern bool TimeFrame3bool = False;
extern int TimeFrame3 = 0;
//int period[]={1,5,15,30,60,240,1440,43200};
//string periodString[]={"M1","M5","M15","M30","H1","H4","D1",MN1"};
//создаем еще один массив с именами индикаторов
// строка signalNameString[]={"MA"};
int ExtCountedBars=0;
//---------------------
int TF;
//---- буферы
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//-------
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexBuffer(1, ExtMapBuffer2);
SetIndexBuffer(2, ExtMapBuffer3);
SetIndexBuffer(3, ExtMapBuffer4);
SetIndexBuffer(4, ExtMapBuffer5);
SetIndexBuffer(5, ExtMapBuffer6);
//-----
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);
// SetIndexStyle(0,DRAW_LINE,EMPTY,1);
// SetIndexBuffer(0,ExtMapBuffer1);
//-------------------------------------------------------------+++
int M1 = PERIOD_M1;
int M5 = PERIOD_M5;
int M15 = PERIOD_M15;
int M30 = PERIOD_M30;
int H1 = PERIOD_H1;
int H4 = PERIOD_H4;
int D1 = PERIOD_D1;
int WK1 = PERIOD_W1;
int MN1 = PERIOD_M1;
TF=Period();
if (TF==PERIOD_M1) { TimeFrame1 = M1; TimeFrame2 = M1; TimeFrame3 = M1;}
else if (TF==PERIOD_M5) { TimeFrame1 = M1; TimeFrame2 = M5; TimeFrame3 = M15;}
else if (TF==PERIOD_M15) { TimeFrame1 = M5; TimeFrame2 = M15; TimeFrame3 = H1; }
else if (TF==PERIOD_M30) { TimeFrame1 = M5; TimeFrame2 = M15; TimeFrame3 = H1; }
else if (TF==PERIOD_H1) { TimeFrame1 = M15; TimeFrame2 = H1; TimeFrame3 = H4; }
else if (TF==PERIOD_H4) { TimeFrame1 = H4; TimeFrame2 = H4; TimeFrame3 = D1; }
else if (TF==PERIOD_D1) { TimeFrame1 = H4; TimeFrame2 = D1; TimeFrame3 = WK1;}
else if (TF==PERIOD_W1) { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}
else if (TF==PERIOD_MN1) { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}
else { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}
//-----
return(0);
}
//+------------------------------------------------------------------+
int start()
{
datetime TimeArray1[];
datetime TimeArray2[];
datetime TimeArray3[];
int limit, i,y=0;
// int counted_bars = IndicatorCounted();
ExtCountedBars=IndicatorCounted();
if(ExtCountedBars < 0) return(-1);
if(ExtCountedBars > 0) ExtCountedBars--;
limit = Bars - ExtCountedBars;
//-----
ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),TimeFrame1);
ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),TimeFrame2);
ArrayCopySeries(TimeArray3,MODE_TIME,Symbol(),TimeFrame3);
for(i=0,y=0;i<limit;i++)
{
if(TimeFrame1bool)
{
if (Time<TimeArray1[y]) y++;
{
//ExtMapBuffer1
ExtMapBuffer1 = iCustom(NULL,TimeFrame1 , "#RSI-MA",0, y);
ExtMapBuffer2 = iCustom(NULL,TimeFrame1 , "#RSI-MA",3, y);
}
}
//-----
if(TimeFrame2bool)
{
if (Time<TimeArray2[y]) y++;
{
//ExtMapBuffer1
ExtMapBuffer3 = iCustom(NULL,TimeFrame2 , "#RSI-MA",0,y);
ExtMapBuffer4 = iCustom(NULL,TimeFrame2 , "#RSI-MA",3,y);
}
}
//-----
if(TimeFrame3bool)
{
if (Time<TimeArray3[y]) y++;
{
//ExtMapBuffer1
ExtMapBuffer5 = iCustom(NULL,TimeFrame3 , "#RSI-MA",0, y);
ExtMapBuffer6 = iCustom(NULL,TimeFrame3 , "#RSI-MA",3, y);
}
}
}
//-----//--------------------------------------------------------------------------+
//=======================================================
return(0);
}
//+--------------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
ЭТО КОПИЯ RSI-MA........
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_color3 Yellow
#property indicator_color4 Белый ///DarkGray
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 1
#property indicator_levelcolor Aqua
extern string TimeFrame = "Текущий таймфрейм";
extern int RsiOma_Period = 13;
extern int RsiOma_Price = 0;
extern int RsiOma_Mode = MODE_LWMA;
extern int MaPeriod = 8;
extern int MaType = MODE_LWMA;
extern double levelOb = 88;
extern double levelOs = 13;
extern int OB_RSI = 80;
extern int OS_RSI = 15;
extern string note = "включить Alert = true; выключить = false";
extern bool alertsOn = true; ///false;
extern bool alertsOnCurrent = true;
extern bool alertsMessage = true;
extern bool alertsSound = true; ///false;
extern bool alertsEmail = false;
extern string soundfile = "connect.wav"; ///"alert2.wav";
extern string SoundUp = "ok.wav";
extern string SoundDown = "stops.wav";
double rsi[];
double rsida[];
double rsidb[];
double ma[];
double mab[];
double trend[];
double slope[];
string indicatorFileName;
int Char, timeFrame;
bool returnBars;
bool calculateValue;
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(7);
SetIndexBuffer(0,rsi);
SetIndexBuffer(1,rsida);
SetIndexBuffer(2,rsidb);
SetIndexBuffer(3,ma);
SetIndexBuffer(4,mab);
SetIndexBuffer(5,trend);
SetIndexBuffer(6,slope);
SetLevelValue(0,levelOs);
SetLevelValue(1,levelOb);
indicatorFileName = WindowExpertName();
calculateValue = (TimeFrame=="calculateValue"); if (calculateValue) return(0);
returnBars = (TimeFrame=="returnBars"); if (returnBars) return(0);
timeFrame = stringToTimeFrame(TimeFrame);
IndicatorShortName(timeFrameToString(timeFrame)+" Rsi-Ma MaxMin("+RsiOma_Period+", "+MaPeriod+")");
SetIndexLabel(0, "RSI");
SetIndexLabel(1, "RSIDA");
SetIndexLabel(2, "RSIDB");
SetIndexLabel(3, "MA");
return(0);
}
int deinit() { return(0); }
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { rsi[0] = limit+1; return(0); }
if (calculateValue || timeFrame==Period())
{
if (slope[limit] == -1) ClearPoint(limit,rsida,rsidb);
for (i=limit; i >= 0; i--) mab = iMA(NULL,0,RsiOma_Period,0,RsiOma_Mode,RsiOma_Price,i);
for (i=limit; i >= 0; i--) rsi = iRSIOnArray(mab,0,RsiOma_Period,i);
for (i=limit; i >= 0; i--)
{
ma = iMAOnArray(rsi,0,MaPeriod,0,MaType,i);
rsida = EMPTY_VALUE;
rsidb = EMPTY_VALUE;
slope = slope;
тренд = тренд;
if ((rsi > rsi) && (rsi > OB_RSI))
slope = 1;
if ((rsi < rsi) && (rsi < OS_RSI))
slope=-1;
if ((rsi > ma) && (rsi > OB_RSI))
trend= 1;
if ((rsi < ma) && (rsi < OS_RSI))
trend=-1;
if (slope == -1)
PlotPoint(i,rsida,rsidb,rsi);
}
manageAlerts();
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));
if (slope[limit]==-1) ClearPoint(limit,rsida,rsidb);
for (i=limit;i>=0; i--)
{
int y = iBarShift(NULL,timeFrame,Time);
rsi = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,0,y);
rsida = EMPTY_VALUE;
rsidb = EMPTY_VALUE;
ma = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,3,y);
trend = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,5,y);
slope = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,6,y);
}
for (i=limit;i>=0;i--) if (slope==-1) PlotPoint(i,rsida,rsidb,rsi);
manageAlerts();
return(0);
}
//+------------------------------------------------------------------
string sTfTable[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};
int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};
int stringToTimeFrame(string tfs)
{
tfs = stringUpperCase(tfs);
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable,Period()));
return(Period());
}
string timeFrameToString(int tf)
{
for (int i=ArraySize(iTfTable)-1; i>=0; i--)
if (tf==iTfTable) return(sTfTable);
return("");
}
string stringUpperCase(string str)
{
string s = str;
for (int length=StringLen(str)-1; length>=0; length--)
{
Char = StringGetChar(s, length);
if((Char > 96 && Char 223 && Char < 256))
s = StringSetChar(s, length, Char - 32);
else if(Char > -33 && Char < 0)
s = StringSetChar(s, length, Char + 224);
}
return(s);
}
//+------------------------------------------------------------------+
void ClearPoint(int i,double& first[],double& second[])
{
if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))
second = EMPTY_VALUE;
иначе
if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE))
first = EMPTY_VALUE;
}
void PlotPoint(int i,double& first[],double& second[],double& from[])
{
if (first == EMPTY_VALUE)
{
if (first == EMPTY_VALUE)
{
first = from;
first = from;
second = EMPTY_VALUE;
}
else
{
second = from;
second = from;
first = EMPTY_VALUE;
}
}
else
{
first = from;
second = EMPTY_VALUE;
}
}
void manageAlerts()
{
if (!calculateValue && alertsOn)
{
if (alertsOnCurrent)
int whichBar = 0;
else whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar));
if (trend[whichBar] != trend[whichBar+1])
{
if (trend[whichBar] == 1)
//doAlert(whichBar, "trend");
doAlerts( whichBar, "UP RSI-MA "+Symbol()+" (tf: "+Period()+")", SoundUp);
if (trend[whichBar] ==-1)
//doAlert(whichBar, "no trend");
doAlerts( whichBar, "DOWN RSI-MA "+Symbol()+" (tf: "+Period()+")", SoundDown);
}
}
}
void doAlerts(int forBar, string doWhat, string SoundFile) {
static string previousAlert="ничего";
static datetime previousTime;
строковое сообщение;
if (previousAlert != doWhat || previousTime != Time[forBar]) {
previousAlert = doWhat;
previousTime = Time[forBar];
message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," - ",timeFrameToString(timeFrame)+" rsioma ",doWhat);
if (alertsMessage) Alert(message);
if (alertsSound) PlaySound(SoundFile);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," rsioma "),message);
}
}
//---------------------------------------------------------------------------------------------------
void doAlert(int forBar, string doWhat)
{
static string previousAlert="ничего";
static datetime previousTime;
строковое сообщение;
if (previousAlert != doWhat || previousTime != Time[forBar]) {
previousAlert = doWhat;
previousTime = Time[forBar];
message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," - ",timeFrameToString(timeFrame)+" rsioma ",doWhat);
if (alertsMessage) Alert(message);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," rsioma "),message);
if (alertsSound) PlaySound(soundfile);
}
}
СПАСИБО ВСЕМ.....
наилучшие пожелания
AZRUL..........
PS... как мне прикрепить код этих ФАЙЛОВ здесь..... Извините за беспорядок....