Переписать поплавковый индикатор в .mq4?
Здравствуйте, New Digital,
Кто-нибудь переписал индикатор Float в скрипт .mq4 для MT4? Я вижу, что здесь есть версия .mql. На форуме SB есть обсуждение этого индикатора, плюс был написан эксперт, но индикатор (написанный Барри Стендером) работает с ошибками, и никто не может найти исходный код. Я нашел следующий скрипт от 'Bigblock', размещенный на сайте Gordago. Я не уверен, что это за скрипт, но, возможно, логика понятна какой-нибудь амбициозной душе, которая захочет заставить его работать как файл .mq4? Возможно, это то же самое, что и "Поплавок" Барри С., хотя он длиннее (я не кодер).
Из индикаторов Float, размещенных выше, я предпочитаю тот, который создает рампу из синих линий гистограммы. Я также приложил файл Float с ошибками с форума SB.
-MJ
-----------------------------
/*[[
Имя := FLOAT
Автор := Bigblockfw
Отдельное окно := Да
Первый цвет := синий
Первый тип рисунка:= гистограмма
Первый символ := 217
Использовать вторые данные := Да
Второй цвет := красный
Второй тип рисунка := линия
Второй символ := 218
Изменение значения Float на 100 позволит ему правильно отображаться на 15-минутном графике,
200 = 30 мин 20 = 5 мин
]]*/
вход : float(100),use_fibos(1),Backtesting(0);
Переменная :
shift(0),f(0),c1(0),high_bar(0),Low_bar(0),bars_high(0),bars_low(0);
Переменная
cumulativeV(0),FLOATV(0),cumulativeV2(0),loopbegin2(0),swing(0),swing_time(0);
Переменная : swingv(0),loopbegin1(0),cnt(0);
Переменные : first(True),first1(True), prevbars(0);
Переменные : cvstart(0),cvend(0),bar(0),newcv(0),CV(0),CV2(0);
Переменные : fib23(0), fib38(0), fib50(0), fib62(0), fib76(0);
Переменные : dinap0(0), dinap1(0), dinap2(0), dinap3(0), dinap4(0), dinap5(0);
Переменные : CVL(0),CVL1(0),CVL2(0),CVL3(0),CVL4(0);
кумулятивныйV=0;
cumulativeV2=0;
SetLoopCount(0);
If Bars 1 Then
first = True
first1 = True;
prevbars = Bars;
FLOATV=0;
If first Then Begin
loopbegin1 = Bars-float-1;
loopbegin2 = Bars-float-1;
first = False;
loopbegin1 = loopbegin1+1;
For shift = loopbegin1 Downto 0 Begin
//найти максимум и минимум
high_bar = H;
Low_bar = L[Lowest(MODE_LOW,float,float)];
//найти количество баров
bars_high = highest(MODE_HIGH,float,float);
bars_low = lowest(MODE_LOW,float,float);
//найти разницу цен свинга
swing = H-
L[Lowest(MODE_LOW,float,float)];
//найти плавающий временной барсчет
swing_time = abs(bars_low-bars_high);
//найти кумулятивный объем для плавающего периода
IF bars_high < bars_low then
{
cvstart=bars_low;
cvend=bars_high;
}
else
{
cvstart=bars_high;
cvend=bars_low;
}
If first1 and FLOATV=0 Then Begin
for shift = cvstart downto cvend Begin {
FLOATV=FLOATV+V[shift];
first1 = False;}
end;
//найти кумулятивный объем с момента последнего оборота
for shift = cvstart downto 0 Begin
cumulativeV=cumulativeV+V[shift];
if cumulativeV>=FLOATV then{
cumulativeV=0;
}
SetIndexValue(shift,cumulativeV*0.001);//Blue
SetIndexValue2(shift,FLOATV*0.001);//красный
комментарий(
"\n", "High был ",bars_high, "баров назад",
"\n", "Low was ",bars_low, "bars ago","\n",
"\n", "Float time было = ", swing_time," баров",
"\n", "Float Vol. left = ",FLOATV-cumulativeV,
"\n", "Плавающий объем = ",FLOATV
);
MoveObject("swingtop",OBJ_TRENDLINE,Time[cvstart],high_bar,Time[1],high_bar,Blue,1,STYLE_SOLID);
MoveObject("swingbottom",OBJ_TRENDLINE,Time[cvstart],Low_bar,Time[1],Low_bar,Blue,1,STYLE_SOLID);
//fibos
Если use_fibos=1, то{
fib23=((high_bar-Low_bar)*0.236)+Low_bar;
fib38=((high_bar-Low_bar)*0.382)+Low_bar;
fib50=((high_bar-Low_bar)/2)+Low_bar;
fib62=((high_bar-Low_bar)*0.618)+Low_bar;
fib76=((high_bar-Low_bar)*0.764)+Low_bar;
dinap0=(Low_bar+fib23)/2;
dinap1=(fib23+fib38)/2;
dinap2=(fib38+fib50)/2;
dinap3=(fib50+fib62)/2;
dinap4=(fib62+fib76)/2;
dinap5=(high_bar+fib76)/2;
MoveObject("fib23",OBJ_TRENDLINE,Time[cvstart],fib23,Time[1],fib23,Green,1,STYLE_DASH);
SetObjectText("23", "23.6", "Arial",8,зеленый);
MoveObject("23",OBJ_TEXT,time[0],fib23,time[0],fib23,Green);
MoveObject("fib38",OBJ_TRENDLINE,Time[cvstart],fib38,Time[1],fib38,Green,1,STYLE_DASH);
SetObjectText("38", "38.2", "Arial",8,зеленый);
MoveObject("38",OBJ_TEXT,time[0],fib38,time[0],fib38,Green);
MoveObject("fib50",OBJ_TRENDLINE,Time[cvstart],fib50,Time[1],fib50,Red,2,STYLE_SOLID);
SetObjectText("50", "50", "Arial",8,зеленый);
MoveObject("50",OBJ_TEXT,time[0],fib50,time[0],fib50,Green);
MoveObject("fib62",OBJ_TRENDLINE,Time[cvstart],fib62,Time[1],fib62,Green,1,STYLE_DASH);
SetObjectText("62", "61.8", "Arial",8,зеленый);
MoveObject("62",OBJ_TEXT,time[0],fib62,time[0],fib62,Green);
MoveObject("fib76",OBJ_TRENDLINE,Time[cvstart],fib76,Time[1],fib76,Green,1,STYLE_DASH);
SetObjectText("76", "76.4", "Arial",8,зеленый);
MoveObject("76",OBJ_TEXT,time[0],fib76,time[0],fib76,Green);
MoveObject("dinap0",OBJ_TRENDLINE,Time[cvstart],dinap0,Time[1],dinap0,Red,1,STYLE_DOT);
MoveObject("dinap1",OBJ_TRENDLINE,Time[cvstart],dinap1,Time[1],dinap1,Red,1,STYLE_DOT);
MoveObject("dinap2",OBJ_TRENDLINE,Time[cvstart],dinap2,Time[1],dinap2,Red,1,STYLE_DOT);
MoveObject("dinap3",OBJ_TRENDLINE,Time[cvstart],dinap3,Time[1],dinap3,Red,1,STYLE_DOT);
MoveObject("dinap4",OBJ_TRENDLINE,Time[cvstart],dinap4,Time[1],dinap4,Red,1,STYLE_DOT);
MoveObject("dinap5",OBJ_TRENDLINE,Time[cvstart],dinap5,Time[1],dinap5,Red,1,STYLE_DOT);
}
//вернуть. линии плавающих значений. они рисуют линии, которые вычисляют плавающие значения.
//если вы измените "trendline" на "Vline", это будет рисовать и через осцилляторы. может быть забавно.
MoveObject("CVSTART",OBJ_TRENDLINE,Time[cvstart],high_bar,Time[cvstart],Low_bar*point,Blue,1,STYLE_SOLID);
MoveObject("CVEND",OBJ_TRENDLINE,Time[cvend],high_bar,Time[cvend],Low_bar*point,Blue,1,STYLE_SOLID);
//преобразование плавающих прогнозов. Они основаны только на времени.
//смотрите синюю гистограмму для реальных значений float.
//если вы измените "trendline" на "Vline", он будет рисовать и через осцилляторы. может быть забавно
if cvend-swing_time>0 then {
MoveObject("swingend",OBJ_TRENDLINE,Time[(cvend-swing_time)+5],high_bar,Time[cvend-swing_time+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend",0,0,0,0);
if cvend-(swing_time*2)>0 then {
MoveObject("swingend2",OBJ_TRENDLINE,Time[(cvend-(swing_time*2))+5],high_bar,Time[cvend-(swing_time*2)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend2",0,0,0,0,0);
if cvend-(swing_time*3)>0 then {
MoveObject("swingend3",OBJ_TRENDLINE,Time[(cvend-(swing_time*3))+5],high_bar,Time[cvend-(swing_time*3)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend3",0,0,0,0);
if cvend-(swing_time*4)>0 then {
MoveObject("swingend4",OBJ_TRENDLINE,Time[(cvend-(swing_time*4))+5],high_bar,Time[cvend-(swing_time*4)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend4",0,0,0,0);
if cvend-(swing_time*5)>0 then {
MoveObject("swingend5",OBJ_TRENDLINE,Time[(cvend-(swing_time*5))+5],high_bar,Time[cvend-(swing_time*5)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend5",0,0,0,0,0);
if cvend-(swing_time*6)>0 then {
MoveObject("swingend6",OBJ_TRENDLINE,Time[cvend-(swing_time*6)+5],high_bar,Time[cvend-(swing_time*6)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend6",0,0,0,0,0);
if cvend-(swing_time*7)>0 then {
MoveObject("swingend7",OBJ_TRENDLINE,Time[cvend-(swing_time*7)+5],high_bar,Time[cvend-(swing_time*7)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend7",0,0,0,0);
if cvend-(swing_time*8)>0 then {
MoveObject("swingend8",OBJ_TRENDLINE,Time[cvend-(swing_time*8)+5],high_bar,Time[cvend-(swing_time*8)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend8",0,0,0,0,0);
if cvend-(swing_time*9)>0 then {
MoveObject("swingend9",OBJ_TRENDLINE,Time[cvend-(swing_time*9)+5],high_bar,Time[cvend-(swing_time*9)+5],Low_bar,Red,1,STYLE_DOT);
}
else DelObject("swingend9",0,0,0,0,0);
//закомментируйте все, что вы не используете, это поможет в скорости.
If Backtesting = 1 then {
SetGlobalVariable("fib23",fib23);
SetGlobalVariable("fib38",fib38);
SetGlobalVariable("fib50",fib50);
SetGlobalVariable("fib62",fib62);
SetGlobalVariable("fib76",fib76);
SetGlobalVariable("dinap0",dinap0);
SetGlobalVariable("dinap1",dinap1);
SetGlobalVariable("dinap2",dinap2);
SetGlobalVariable("dinap3",dinap3);
SetGlobalVariable("dinap4",dinap4);
SetGlobalVariable("dinap5",dinap5);
SetGlobalVariable("swingtop",high_bar);
SetGlobalVariable("swingbottom",Low_bar);
SetGlobalVariable("CVSTART",CVSTART);
SetGlobalVariable("CVEND",CVEND);
SetGlobalVariable("FLOATV",FLOATV);
SetGlobalVariable("cumulativeV",cumulativeV);
SetGlobalVariable("swing_time",swing_time);
SetGlobalVariable("bars_high",bars_high);
SetGlobalVariable("bars_low",bars_low);
if cvend-swing_time>0 then
SetGlobalVariable("swingend",(cvend-swing_time)+5);
if cvend-(swing_time*2)>0 then
SetGlobalVariable("swingend2", cvend-(swing_time*2)+5);
если cvend-(swing_time*3)>0 тогда
SetGlobalVariable("swingend3",cvend-(swing_time*3)+5);
если cvend-(swing_time*4)>0 тогда
SetGlobalVariable("swingend4",cvend-(swing_time*4)+5);
если cvend-(swing_time*5)>0, то
SetGlobalVariable("swingend5",cvend-(swing_time*5)+5);
если cvend-(swing_time*6)>0, то
SetGlobalVariable("swingend6",cvend-(swing_time*6)+5);
если cvend-(swing_time*7)>0 тогда
SetGlobalVariable("swingend7",cvend-(swing_time*7)+5);
если cvend-(swing_time*8)>0 тогда
SetGlobalVariable("swingend8",cvend-(swing_time*8)+5);
если cvend-(swing_time*9)>0, то
SetGlobalVariable("swingend9",cvend-(swing_time*9)+5);
}
end;
end;
end;
end;
Здравствуйте,
У меня есть индикатор float для MT4, но в файле EX4 только из веб-страницы Barry Stander
http://www.4africa.net/4meta/Indicators/
Спасибо
Как использовать файл EX4? Поплавковый индикатор
Здравствуйте MFX,
Спасибо за помощь. Однако я не знаю, как превратить файл EX4 в пригодный для использования файл .mq4? Вы знаете? Когда я открываю его из MetaEditor, я просто получаю сообщение "Please download newest file." Откуда - не сказано. Если я превращу файл, который вы прикрепили, в .txt и попытаюсь открыть его, это будет просто тарабарщина. Предложения?
Спасибо,
MJ
Привет,
Файл ex4 не открывается в Meta Editor. Скопируйте его в пасту C:Progam Files\MetaTrader\Experts\Indicators и перезапустите вашу платформу, если вы используете режим iCustom, он тоже работает.
Спасибо
Ребята, не тратьте свое время. Последний float, как и Barrys float для MT4, переделывают себя в истории, поэтому то, что они показывают, не соответствует действительности.
Я не видел ни одной рабочей версии индикатора float (не той, что с MA`s, а той, что с Fibs и Histograms) ни на одном форуме за последний год.
Спасибо за исходный файл Барри.
Я пробовал индикатор float на mq4, правда, он иногда перерисовывает себя. Поплавок кажется довольно надежным, но есть небольшой процент. Я пробовал его на демо много месяцев назад, кажется, что вы можете торговать по нему, но не на 100%. Индикатор флоата, размещенный здесь, отличается от того, который я использовал.
Я пробовал индикатор float на mq4, это правда, что он иногда перерисовывает себя. Флоат кажется довольно надежным, но есть небольшой процент. Я пробовал его на демо много месяцев назад, кажется, что вы можете торговать по нему, но не на 100%. Индикатор флоата, размещенный здесь, отличается от того, который я использовал.
Какой индикатор вы используете, опубликуйте, пожалуйста?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Очень интересный индикатор. См. прилагаемое изображение.
Красный цвет - афлат. Похоже, что мы не торгуем во время афлата.