Автор |
Сообщение |
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Переработал код для Амиброкера индикатора better volume
Подробное описание: http://emini-watch.com/free-stuff/volume-indicator/
Код: |
SetChartBkColor(16 ) ;
_SECTION_BEGIN("EMA");
P = Volume;
Periods = Param("PeriodsEMA", 100, 2, 300, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), colorRed, styleLine | styleThick );
_SECTION_END();
Period = Param("Period", 20, 2, 300, 1, 10 );;
LowColor = colorYellow;
ClimaxColor = colorRed;
ChurnColor = colorGreen;
ClimaxChurnColor=colorBlue;
LowChurnColor= colorWhite;
Value1 = V;
Value2 = V*(H-L);
Value3 = V/(H-L);
BarColor = IIf( (Value1 == LLV(Value1,Period)), LowColor,
IIf( (Value2 == HHV(Value2,Period)), ClimaxColor,
IIf( (Value3 == HHV(Value3,Period)), ChurnColor,
IIf( ((Value2 == HHV(Value2,Period) AND (Value3 == HHV(Value3,Period)))), ClimaxChurnColor,
IIf( (Value3 == LLV(Value3,Period)), LowChurnColor, colorBlueGrey)))));
_SECTION_BEGIN("Volume");
Plot( Volume, _DEFAULT_NAME(), BarColor, ParamStyle( "Style", styleHistogram | styleThick, maskHistogram ), 2 );
_SECTION_END(); |
|
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
ayratun
Зарегистрирован: 06.03.2009
Сообщения: 9
|
почему то не работает.
скопировал и вставил в блокнот.afl
может что то делаю неправильно?
плиз помоги. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
У меня работает. Какая версия Ами? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
ayratun
Зарегистрирован: 06.03.2009
Сообщения: 9
|
|
Посмотреть профиль Отправить личное сообщение |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
1. а какая ошибка высвечивается,
2. если войти в код и нажать Verify Syntax (галочка с AFL) то что происходит? |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
ayratun
Зарегистрирован: 06.03.2009
Сообщения: 9
|
простите. я заново скопировал. и поехало. моя ошибка. оказываеться были лишние файлы которые я недоудалил.
ВСЕ РАБОТАЕТ РЕБЯТА. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
PROtest
Зарегистрирован: 16.08.2009
Сообщения: 13
|
Спасибо. Всё работает. По указанной выше ссылке, автор индюка ещё подкрашивает бары на ценовом графике, кажись называет он это дело - "Better Volume PB". Может подскажите, как сделать такую же подкраску баров в ами? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
Вот этот помоему почти 1:1 с оригиналом, свечи правда не окрашивает...
Код: |
lookback = 8;
Use2Bars = "Yes";
LowVol = "Yes";
ClimaxUp = "Yes";
ClimaxDown = "Yes";
Churn = "Yes";
ClimaxChurn = "Yes";
LowVolColor = 8;
ClimaxUpColor = 9;
ClimaxDownColor = 1;
ChurnColor = 5;
ClimaxChurnColor = 0;
DefaultBarColor = 7;
AvgColor = 0;
Range = High-Low;
Value1 = IIf (Close >= Open,Volume * ((Range) / ((2+(Range*Range)/10) * Range + (Open - Close))),
Volume * (((Range + Close - Open)) / (2+(Range*Range)/10) * Range + (Close - Open)));
Value2 = Volume - Value1;
Value3 = Value1 + Value2;
Value4 = Value1 * Range;
Value5 = (Value1 - Value2) * Range;
Value6 = Value2 * Range;
Value7 = (Value2 - Value1) * Range;
Value8 = IIf (Range != 0, Value1 / Range, 1);
Value9 = IIf (Range != 0, (Value1 - Value2) / Range, 1);
Value10 = IIf (Range != 0, Value2 / Range, 1);
Value11 = IIf (Range != 0, (Value2 - Value1) / Range, 1);
Value12 = IIf (Range != 0, Value3 / Range, 1);
Value13 = IIf (Use2Bars=="Yes", Value3 + Ref(Value3,-1),1);
Value14 = IIf (Use2Bars=="Yes", (Value1 + Ref(Value1,-1))*(HHV(High,2)-LLV(Low,2)),1);
Value15 = IIf (Use2Bars=="Yes", (Value1 + Ref(Value1,-1)-Value2-Ref(Value2,-1))*(HHV(High,2)-LLV(Low,2)),1);
Value16 = IIf (Use2Bars=="Yes", (Value2 + Ref(Value2,-1))*(HHV(High,2)-LLV(Low,2)),1);
Value17 = IIf (Use2Bars=="Yes", (Value2 + Ref(Value2,-1)-Value1-Value1[1])*(HHV(High,2)-LLV(Low,2)),1);
Value18 = IIf ((Use2Bars=="Yes" AND (HHV(High,2)!=LLV(Low,2))),(Value1+Ref(Value1,-1))/(HHV(High,2)-LLV(Low,2)),1);
Value19 = IIf ((Use2Bars=="Yes" AND (HHV(High,2)!=LLV(Low,2))),(Value1+Ref(Value1,-1)-Value2-Ref(Value2,-1))/(HHV(High,2)-LLV(Low,2)),1);
Value20 = IIf ((Use2Bars=="Yes" AND (HHV(High,2)!=LLV(Low,2))),(Value2+Ref(Value2,-1))/(HHV(High,2)-LLV(Low,2)),1);
Value21 = IIf ((Use2Bars=="Yes" AND (HHV(High,2)!=LLV(Low,2))),(Value2+Ref(Value2,-1)-Value1-Ref(Value1,-1))/(HHV(High,2)-LLV(Low,2)),1);
Value22 = IIf ((Use2Bars=="Yes" AND (HHV(High,2)!=LLV(Low,2))),Value13/(HHV(High,2)-LLV(Low,2)),1);
Condition1 = IIf(Value3 == LLV(Value3, Lookback), 1, 0);
Condition2 = IIf((Value4 == HHV(Value4, Lookback) AND Close > Open), 1, 0);
Condition3 = IIf((Value5 == HHV(Value5, Lookback) AND Close > Open), 1, 0);
Condition4 = IIf((Value6 == HHV(Value6, Lookback) AND Close < Open), 1, 0);
Condition5 = IIf((Value7 == HHV(Value7, Lookback) AND Close < Open), 1, 0);
Condition6 = IIf((Value8 == LLV(Value8, Lookback) AND Close < Open), 1, 0);
Condition7 = IIf((Value9 == LLV(Value9, Lookback) AND Close < Open), 1, 0);
Condition8 = IIf((Value10 == LLV(Value10, Lookback) AND Close > Open), 1, 0);
Condition9 = IIf((Value11 == LLV(Value11, Lookback) AND Close > Open), 1, 0);
Condition10 = IIf(Value12 == HHV(Value12, lookback), 1, 0);
Condition11 = IIf (Use2Bars=="Yes" AND (Value13==LLV(Value13,Lookback) AND Close > Open AND Ref(Close,-1) > Ref(Open,-1)),1,0);
Condition12 = IIf (Use2Bars=="Yes" AND (Value14==HHV(Value14,Lookback) AND Close > Open AND Ref(Close,-1) > Ref(Open,-1)),1,0);
Condition13 = IIf (Use2Bars=="Yes" AND (Value15==HHV(Value15,Lookback) AND Close > Open AND Ref(Close,-1) < Ref(Open,-1)),1,0);
Condition14 = IIf (Use2Bars=="Yes" AND (Value16==LLV(Value16,Lookback) AND Close < Open AND Ref(Close,-1) < Ref(Open,-1)),1,0);
Condition15 = IIf (Use2Bars=="Yes" AND (Value17==LLV(Value17,Lookback) AND Close < Open AND Ref(Close,-1) < Ref(Open,-1)),1,0);
Condition16 = IIf (Use2Bars=="Yes" AND (Value18==LLV(Value18,Lookback) AND Close < Open AND Ref(Close,-1) < Ref(Open,-1)),1,0);
Condition17 = IIf (Use2Bars=="Yes" AND (Value19==LLV(Value19,Lookback) AND Close > Open AND Ref(Close,-1) < Ref(Open,-1)),1,0);
Condition18 = IIf (Use2Bars=="Yes" AND (Value20==LLV(Value20,Lookback) AND Close > Open AND Ref(Close,-1) > Ref(Open,-1)),1,0);
Condition19 = IIf (Use2Bars=="Yes" AND (Value21==LLV(Value21,Lookback) AND Close > Open AND Ref(Close,-1) > Ref(Open,-1)),1,0);
Condition20 = IIf (Use2Bars=="Yes" AND (Value22==LLV(Value22,Lookback)), 1,0);
Color=
IIf (ClimaxChurn== "Yes" AND (Condition10 OR Condition20) AND (Condition2 OR Condition3 OR Condition4 OR Condition5 OR Condition6 OR Condition7 OR Condition8 OR Condition9), colorViolet,
IIf (LowVol== "Yes" AND (Condition1 OR Condition11) , colorYellow,
IIf (ClimaxUp== "Yes" AND (Condition2 OR Condition3 OR Condition8 OR Condition9 OR Condition12 OR Condition13 OR Condition18 OR Condition19) , colorBlue,
IIf (ClimaxDown== "Yes" AND (Condition4 OR condition5 OR Condition6 OR Condition7 OR Condition14 OR Condition15 OR Condition16 OR Condition17) ,colorWhite,
IIf (Churn== "Yes" AND Condition10 OR Condition20,colorRed,colorGrey50 )))));
Plot(Volume, "Vol",Color,styleHistogram );
Plot(MA(Volume, lookback), "VolAvg",colorWhite, styleLine);
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
Код: |
// Better Volume translation from Tradestation code
// http://eminiwatch.wpengine.netdna-cdn.com/wp-content/uploads/2013/05/Better_Volume_16May13.zip
// by fxshrat
Lookback = 20;
Use2Bars = True;
LowVol = True;
ClimaxUp = True;
ClimaxDown = True;
Churn = True;
ClimaxChurn = True;
ShowAvg = True;
LowVolColor = ColorYellow;
ClimaxUpColor = ColorRed;
ClimaxDownColor = ColorWhite;
ChurnColor = ColorGreen;
ClimaxChurnColor = colorViolet;
AvgColor = colorRed;
Range = High - Low;
LLV2 = LLV( L, 2 );
HHV2 = HHV( H, 2 );
Range2 = HHV2 - LLV2;
BullBar = Close > Open;
BearBar = Close < Open;
Value1 = IIf( BullBar, Range / ( 2 * Range + O - C ) * V,
IIf( BearBar, ( Range + C - O ) / ( 2 * Range + C - O ) * V, 0.5 * V ) );
Value2 = V - Value1;
Value3 = abs( Value1 + Value2 );
Value4 = Value1 * Range;
Value5 = ( Value1 - Value2 ) * Range;
Value6 = Value2 * Range;
Value7 = ( Value2 - Value1 ) * Range;
Value8 = Nz( Value1 / Range );
Value9 = Nz( ( Value1 - Value2 ) / Range );
Value10 = Nz( Value2 / Range );
Value11 = Nz( ( Value2 - Value1 ) / Range );
Value12 = Nz( Value3 / Range );
Condition1 = Value3 == LLV( Value3, Lookback );
Condition2 = Value4 == HHV( Value4, Lookback ) AND BullBar;
Condition3 = Value5 == HHV( Value5, Lookback ) AND BullBar;
Condition4 = Value6 == HHV( Value6, Lookback ) AND BearBar;
Condition5 = Value7 == HHV( Value7, Lookback ) AND BearBar;
Condition6 = Value8 == LLV( Value8, Lookback ) AND BearBar;
Condition7 = Value9 == LLV( Value9, Lookback ) AND BearBar;
Condition8 = Value10 == LLV( Value10, Lookback ) AND BullBar;
Condition9 = Value11 == LLV( Value11, Lookback ) AND BullBar;
Condition10 = Value12 == HHV( Value12, lookback );
Condition11 = Condition12 = Condition13 = Condition14 = Condition15 = False;
Condition16 = Condition17 = Condition18 = Condition19 = Condition20 = False;
if ( Use2Bars )
{
SumValue1 = Sum( Value1, 2 );
SumValue2 = Sum( Value2, 2 );
Value13 = Sum( Value3, 2 );
Value14 = SumValue1 * Range2;
Value15 = ( SumValue1 - SumValue2 ) * Range2;
Value16 = SumValue2 * Range2;
Value17 = ( SumValue2 - SumValue1 ) * Range2;
Value18 = Nz( SumValue1 / Range2 );
Value19 = Nz( ( SumValue1 - SumValue2 ) / Range2 );
Value20 = Nz( SumValue2 / Range2 );
Value21 = Nz( ( SumValue2 - SumValue1 ) / Range2 );
Value22 = Nz( Value13 / Range2 );
SumBullBar = Sum( BullBar, 2 ) == 2;
SumBearBar = Sum( BearBar, 2 ) == 2;
Condition11 = Value13 == LLV( Value13, Lookback );
Condition12 = Value14 == HHV( Value14, Lookback ) AND SumBullBar;
Condition13 = Value15 == HHV( Value15, Lookback ) AND SumBullBar;
Condition14 = Value16 == HHV( Value16, Lookback ) AND SumBearBar;
Condition15 = Value17 == HHV( Value17, Lookback ) AND SumBearBar;
Condition16 = Value18 == LLV( Value18, Lookback ) AND SumBearBar;
Condition17 = Value19 == LLV( Value19, Lookback ) AND SumBearBar;
Condition18 = Value20 == LLV( Value20, Lookback ) AND SumBullBar;
Condition19 = Value21 == LLV( Value21, Lookback ) AND SumBullBar;
Condition20 = Value22 == HHV( Value22, Lookback );
}
VolColor = IIf ( LowVol AND ( Condition1 OR Condition11 ), LowVolColor,
IIf ( ClimaxUp AND ( Condition2 OR Condition3 OR Condition8 OR Condition9 OR Condition12 OR Condition13 OR Condition18 OR Condition19 ), ClimaxUpColor,
IIf ( ClimaxDown AND ( Condition4 OR Condition5 OR Condition6 OR Condition7 OR Condition14 OR Condition15 OR Condition16 OR Condition17 ), ClimaxDownColor,
IIf ( Churn AND ( Condition10 OR Condition20 ), ChurnColor,
IIf ( ClimaxChurn AND ( Condition10 OR Condition20 ) AND
( Condition2 OR Condition3 OR Condition4 OR Condition5 OR Condition6 OR Condition7 OR Condition8 OR Condition9 OR
Condition12 OR Condition13 OR Condition14 OR Condition15 OR Condition16 OR Condition17 OR Condition18 OR Condition19 ), ClimaxChurnColor, colorRGB(0, 255, 255) ) ) ) ) );
Plot( V, "Volume", VolColor, styleHistogram, Null, Null, 0, 0, width = -60 );
if( ShowAvg )
Plot( MA( V, Lookback ), "MA(Volume, " + LookBack + ")", AvgColor, styleLine, Null, Null, 0, 1, width = -20 );
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
В общем вот есть такая картинка, 3 индюка BetterVolume
Верхний, это оригинал от eminiwatch, скачанный с сайта под Нинзю.
Второй это тот что я запостил выше, а третий это от fujis84
Все познается в сравнении!
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
fujis84
В том коде что ты запостил ошибка, я ее подправил...
В твоем варианте он фиолетовый вообще не рисовал.....
Код: |
// Better Volume translation from Tradestation code
// http://eminiwatch.wpengine.netdna-cdn.com/wp-content/uploads/2013/05/Better_Volume_16May13.zip
// by fxshrat
Lookback = 20;
Use2Bars = True;
LowVol = True;
ClimaxUp = True;
ClimaxDown = True;
Churn = True;
ClimaxChurn = True;
ShowAvg = True;
LowVolColor = colorYellow;
ClimaxUpColor = colorBlue;
ClimaxDownColor = colorWhite;
ChurnColor = colorDarkGreen;
ClimaxChurnColor = colorViolet;
AvgColor = colorRed;
Range = High - Low;
LLV2 = LLV( L, 2 );
HHV2 = HHV( H, 2 );
Range2 = HHV2 - LLV2;
BullBar = Close > Open;
BearBar = Close < Open;
Value1 = IIf( BullBar, Range / ( 2 * Range + O - C ) * V,
IIf( BearBar, ( Range + C - O ) / ( 2 * Range + C - O ) * V, 0.5 * V ) );
Value2 = V - Value1;
Value3 = abs( Value1 + Value2 );
Value4 = Value1 * Range;
Value5 = ( Value1 - Value2 ) * Range;
Value6 = Value2 * Range;
Value7 = ( Value2 - Value1 ) * Range;
Value8 = Nz( Value1 / Range );
Value9 = Nz( ( Value1 - Value2 ) / Range );
Value10 = Nz( Value2 / Range );
Value11 = Nz( ( Value2 - Value1 ) / Range );
Value12 = Nz( Value3 / Range );
Condition1 = Value3 == LLV( Value3, Lookback );
Condition2 = Value4 == HHV( Value4, Lookback ) AND BullBar;
Condition3 = Value5 == HHV( Value5, Lookback ) AND BullBar;
Condition4 = Value6 == HHV( Value6, Lookback ) AND BearBar;
Condition5 = Value7 == HHV( Value7, Lookback ) AND BearBar;
Condition6 = Value8 == LLV( Value8, Lookback ) AND BearBar;
Condition7 = Value9 == LLV( Value9, Lookback ) AND BearBar;
Condition8 = Value10 == LLV( Value10, Lookback ) AND BullBar;
Condition9 = Value11 == LLV( Value11, Lookback ) AND BullBar;
Condition10 = Value12 == HHV( Value12, lookback );
Condition11 = Condition12 = Condition13 = Condition14 = Condition15 = False;
Condition16 = Condition17 = Condition18 = Condition19 = Condition20 = False;
if ( Use2Bars )
{
SumValue1 = Sum( Value1, 2 );
SumValue2 = Sum( Value2, 2 );
Value13 = Sum( Value3, 2 );
Value14 = SumValue1 * Range2;
Value15 = ( SumValue1 - SumValue2 ) * Range2;
Value16 = SumValue2 * Range2;
Value17 = ( SumValue2 - SumValue1 ) * Range2;
Value18 = Nz( SumValue1 / Range2 );
Value19 = Nz( ( SumValue1 - SumValue2 ) / Range2 );
Value20 = Nz( SumValue2 / Range2 );
Value21 = Nz( ( SumValue2 - SumValue1 ) / Range2 );
Value22 = Nz( Value13 / Range2 );
SumBullBar = Sum( BullBar, 2 ) == 2;
SumBearBar = Sum( BearBar, 2 ) == 2;
Condition11 = Value13 == LLV( Value13, Lookback );
Condition12 = Value14 == HHV( Value14, Lookback ) AND SumBullBar;
Condition13 = Value15 == HHV( Value15, Lookback ) AND SumBullBar;
Condition14 = Value16 == HHV( Value16, Lookback ) AND SumBearBar;
Condition15 = Value17 == HHV( Value17, Lookback ) AND SumBearBar;
Condition16 = Value18 == LLV( Value18, Lookback ) AND SumBearBar;
Condition17 = Value19 == LLV( Value19, Lookback ) AND SumBearBar;
Condition18 = Value20 == LLV( Value20, Lookback ) AND SumBullBar;
Condition19 = Value21 == LLV( Value21, Lookback ) AND SumBullBar;
Condition20 = Value22 == HHV( Value22, Lookback );
}
VolColor = IIf ( ClimaxChurn AND ( Condition10 OR Condition20 ) AND ( Condition2 OR Condition3 OR Condition4 OR Condition5 OR Condition6 OR Condition7 OR Condition8 OR Condition9 OR Condition12 OR Condition13 OR Condition14 OR Condition15 OR Condition16 OR Condition17 OR Condition18 OR Condition19 ), ClimaxChurnColor,
IIf ( LowVol AND ( Condition1 OR Condition11 ), LowVolColor,
IIf ( ClimaxUp AND ( Condition2 OR Condition3 OR Condition8 OR Condition9 OR Condition12 OR Condition13 OR Condition18 OR Condition19 ), ClimaxUpColor,
IIf ( ClimaxDown AND ( Condition4 OR Condition5 OR Condition6 OR Condition7 OR Condition14 OR Condition15 OR Condition16 OR Condition17 ), ClimaxDownColor,
IIf ( Churn AND ( Condition10 OR Condition20 ), ChurnColor, ColorRGB(0, 255, 255) ) ) ) ) );
Plot( V, "Volume", VolColor, styleHistogram, Null, Null, 0, 0, width = -60 );
if( ShowAvg )
Plot( MA( V, Lookback ), "MA(Volume, " + LookBack + ")", AvgColor, styleLine, Null, Null, 0, 1, width = -20 );
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
В общем fujis84 что тут скажешь, тот вариант что ты запостил походу ближе к оригиналу после правки....
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
|
Посмотреть профиль Отправить личное сообщение |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
moextrader писал(а): |
fujis84
В том коде что ты запостил ошибка, я ее подправил...
В твоем варианте он фиолетовый вообще не рисовал.....
|
не моя AFL. нашел его где-то |
|
|
Посмотреть профиль Отправить личное сообщение |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
moextrader писал(а): |
В общем fujis84 что тут скажешь, тот вариант что ты запостил походу ближе к оригиналу после правки....
|
Ninjatrader OHLCV отличаются. Не совсем сопоставимы. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|