когда наступает событие и нужно задним числом этот H проставить, делаем так
Код: Выделить всё
H[CurrentIndex - СохраненныйИндекс] = Input.High[CurrentIndex - СохраненныйИндекс];
Код: Выделить всё
H[CurrentIndex - СохраненныйИндекс] = Input.High[CurrentIndex - СохраненныйИндекс];
Код: Выделить всё
function Initialize()
{
IndicatorName = "COUNT";
AddInput("Input1", Inputs.Candle);
PriceStudy = true;
AddSeries("H", DrawAs.Custom, Color.Coral);
AddSeries("L", DrawAs.Custom, Color.LightGreen);
}
function Evaluate()
{
var lastLVal = MY.C_I(Input1).GetLastValues ("L", 1)[0];
var lastHVal = MY.C_I(Input1).GetLastValues ("H", 1)[0];
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.C_I(Input1).GetLastValues ("H", 1)[0].Y) )
if (MY.C_I(Input1).GetLastValues ("H", 1)[0].Y >= LAST)
if ((MY.C_I(Input1).GetLastValues ("H", 1)[0].Y > MY.C_I(Input1).GetLastValues ("H", 1)[1].Y))
if ((MY.C_I(Input1).GetLastValues ("H", 1)[0].Y != MY.C_I(Input1).GetLastValues ("L", 1)[0].Y))
H[1] = MY.С_I(Input1).GetLastValues ("H", 1)[0].Y;
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.C_I(Input1).GetLastValues ("L", 1)[0].Y) )
if (MY.C_I(Input1).GetLastValues ("L", 1)[0].Y <= LAST )
if ((MY.C_I(Input1).GetLastValues ("L", 1)[0].Y > MY.C_I(Input1).GetLastValues ("L", 1)[1].Y))
if ((MY.C_I(Input1).GetLastValues ("H", 1)[0].Y != MY.C_I(Input1).GetLastValues ("L", 1)[0].Y))
L[1] = MY.C_I(Input1).GetLastValues ("L", 1)[0].Y;
H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 10, Color.Fuchsia, 100);
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 10, Color.Lime, 100);
}
Код: Выделить всё
function Initialize()
{
IndicatorName = "C_I";
AddInput("Input", Inputs.Price);
AddSeries("H", DrawAs.Custom, Color.Gray);
AddSeries("M", DrawAs.Line, Color.Gray, false);
AddSeries("Close", DrawAs.Custom, Color.Gray);
AddSeries("Open", DrawAs.Custom, Color.Gray);
AddSeries("U", DrawAs.Custom, Color.Lime);
AddSeries("D", DrawAs.Custom, Color.Violet);
PriceStudy = true;
AddParameter("P", 2, 1);
}
function Evaluate()
{
if ( CurrentIndex > P)
{
double WMA1 = WMA(Input, (int)(0.5*P))[0];
double WMA2 = WMA(Input, (int)(0.5*P))[0];
M = 2.0*WMA1 - WMA2;
double P3 = Math.Truncate(Math.Sqrt(0.5*P));
var sum = 0.0;
var sumZ = 0.0;
for (var i = 0; i < P3; i++)
{
sum = sum + M[-i]*(P3-i);
sumZ = sumZ + (i+1);
}
H = sum/sumZ;
Open = H[1];
U = H[0];
D = H[0];
if ( H[0] > H[1] )
U.DrawArrowUp(Color.Aqua, LineStyles.Solid, 2, Color.Aqua, 10);
else
D.DrawArrowDown(Color.Violet, LineStyles.Solid, 2, Color.Violet, 10);
}
}
Код: Выделить всё
function Initialize()
{
IndicatorName = "COUNT_II";
AddInput("Input1", Inputs.Candle);
PriceStudy = true;
AddSeries("H", DrawAs.Custom, Color.Coral);
AddSeries("L", DrawAs.Custom, Color.LightGreen);
AddShadowSeries("D", DrawAs.Custom, Color.HotPink);
}
function Evaluate()
{
if (Input.High[0] >= MY.C_I(Input.Close, 2).GetValue("U", 0) )
{
H[0] = Input1.High[0];
}
if (Input.Low[0] <= MY.C_I(Input.Close, 2).GetValue("D", 0) )
{
L[0] = Input1.Low[0];
}
H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 4, Color.Fuchsia, 100);
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 4, Color.Lime, 100);
}
Код: Выделить всё
function Initialize()
{
IndicatorName = "COUNT";
AddInput("Input1", Inputs.Candle);
PriceStudy = true;
AddSeries("H", DrawAs.Custom, Color.Coral);
AddSeries("L", DrawAs.Custom, Color.LightGreen);
}
function Evaluate()
{
var lastLVal = MY.COUNT_II(Input1).GetLastValues ("L", 1)[0];
var lastHVal = MY.COUNT_II(Input1).GetLastValues ("H", 1)[0];
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y) )
if ((MY.COUNT_II(Input1).GetLastValues ("H", 2)[0].Y > MY.COUNT_II(Input1).GetLastValues ("H", 2)[1].Y))
if ((MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y != MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y))
H[1] = MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y;
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y) )
if ((MY.COUNT_II(Input1).GetLastValues ("L", 2)[0].Y < MY.COUNT_II(Input1).GetLastValues ("L", 2)[1].Y))
if ((MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y != MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y))
L[1] = MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y;
H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 10, Color.Fuchsia, 100);
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 10, Color.Lime, 100);
}
Вернуться в «Общие вопросы по разработке»
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 186 гостей