Страница 1 из 2
простой индикатор
Добавлено: 06 авг 2016, 09:14
naum
Измеряет разницу между хаем и лоем свечки .Код: Выделить всё
function Initialize()
{
IndicatorName = "HL";
AddInput("Input", Inputs.Candle);
AddParameter("Period", 1, 1);
PriceStudy = false;
AddSeries("Upper", DrawAs.Line, Color.Blue, false);
AddSeries("Lower", DrawAs.Line, Color.Red, false);
AddSeries("HLP", DrawAs.Histogram , Color.Red);
}
function Evaluate()
{
var high = Input.High[0];
var low = Input.Low[0];
if ( CurrentIndex >= Period )
{
int i = 0;
for (i = 1; i < Period; i++)
high = Math.Max(Input.High[i], high);
for (i = 1; i < Period; i++)
low = Math.Min(Input.Low[i], low);
}
HLP=high-low;
Upper = high;
Lower = low;
}
Re: такой же индикатор только между открытием и закрытием
Добавлено: 07 авг 2016, 15:54
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "CO";
AddInput("Inp", Inputs.Candle);
AddParameter("Period", 1,1);
PriceStudy = false;
AddSeries("Op", DrawAs.Line , Color.Blue,false); //,false
AddSeries("Cl", DrawAs.Line , Color.Red,false); // ,false
AddSeries("CO", DrawAs.Histogram , Color.Red);
}
function Evaluate()
{
var open = Input.Open[0];
var close = Input.Close[0];
if ( CurrentIndex >= Period )
{
int i = 0;
for (i = 1; i < Period;++ i)
open = Math.Max(Input.Open[i], open);
for (i = 1; i < Period; i++)
close = Math.Min(Input.Close[i], close);
Cl=close;
Op=open;
CO= Math.Abs(close - open);;
}
}
Re: всё вместе
Добавлено: 08 авг 2016, 10:02
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "HLOC_Line";
AddInput("Inp", Inputs.Candle);
AddParameter("Period_HL", 1,1);
AddParameter("Period_CO", 1,1);
PriceStudy = false;
AddSeries("Hi", DrawAs.Line, Color.Red,false);
AddSeries("Lo", DrawAs.Line, Color.Red,false);
AddSeries("HL",DrawAs.Line,Color.Blue ,AxisType.ZeroBased);
AddSeries("Op", DrawAs.Line , Color.Blue,false);
AddSeries("Cl", DrawAs.Line , Color.Blue,false);
AddSeries("CO", DrawAs.Histogram , Color.Red,AxisType.ZeroBased);
}
function Evaluate()
{
var open = Input.Open[0];
var close = Input.Close[0];
var high = Input.High[0];
var low = Input.Low[0];
if ( CurrentIndex >= 0 )
{
int i = 0;
for (i = 1; i < Period_HL; i++)
high = Math.Max(Input.High[i], high);
for (i = 1; i < Period_HL; i++)
low =Math.Min(Input.Low[i], low) ;
for (i = 1; i < Period_CO; i++)
open = Math.Max(Input.Open[i], open);
for (i = 1; i < Period_CO; i++)
close = Math.Min(Input.Close[i], close);
Hi = high;
Lo = low;
HL=(high-low);
Cl=close;
Op=open ;
CO = Math.Abs(close - open);
}
}
Re: всё вместе
Добавлено: 08 авг 2016, 10:07
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "HLOC_Histogram";
AddInput("Inp", Inputs.Candle);
AddParameter("Period_HL", 1,1);
AddParameter("Period_CO", 1,1);
PriceStudy = false;
AddSeries("Hi", DrawAs.Line, Color.Red,false);
AddSeries("Lo", DrawAs.Line, Color.Red,false);
AddSeries("HL",DrawAs.Histogram ,Color.Blue ,AxisType.ZeroBased);
AddSeries("Op", DrawAs.Line , Color.Blue,false);
AddSeries("Cl", DrawAs.Line , Color.Blue,false);
AddSeries("CO", DrawAs.Histogram , Color.Red,AxisType.ZeroBased);
}
function Evaluate()
{
var open = Input.Open[0];
var close = Input.Close[0];
var high = Input.High[0];
var low = Input.Low[0];
if ( CurrentIndex >= 0 )
{
int i = 0;
for (i = 1; i < Period_HL; i++)
high = Math.Max(Input.High[i], high);
for (i = 1; i < Period_HL; i++)
low =Math.Min(Input.Low[i], low) ;
for (i = 1; i < Period_CO; i++)
open = Math.Max(Input.Open[i], open);
for (i = 1; i < Period_CO; i++)
close = Math.Min(Input.Close[i], close);
Hi = high;
Lo = low;
HL=(high-low);
Cl=close;
Op=open ;
CO = Math.Abs(close - open);
}
}
Re: простой индикатор
Добавлено: 08 авг 2016, 10:15
evge
- Как подсветить синтаксис кода
- ad4-highlight.png (34.88 КБ) 31155 просмотров
Re: CO c средней скользящей
Добавлено: 09 авг 2016, 11:06
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "CO+MA";
AddInput("Inp", Inputs.Candle);
AddParameter("Period_CO", 1,1);
AddParameter("Period_SMA", 10,1);
PriceStudy = false;
AddSeries("Op", DrawAs.Line , Color.Blue,false); //
AddSeries("Cl", DrawAs.Line , Color.Red,false); //
AddSeries("CO", DrawAs.Histogram , Color. Red);
AddSeries("SMAseries", DrawAs.Line , Color.Green);
}
function Evaluate()
{
var open = Input.Open[0];
var close = Input.Close[0];
if ( CurrentIndex >= Period_CO )
{
int i = 0;
for (i = 1; i < Period_CO;++ i)
open = Math.Max(Input.Open[i], open);
for (i = 1; i < Period_CO; i++)
close = Math.Min(Input.Close[i], close);
Cl=close;
Op=open;
CO= Math.Abs(close - open);;
if ( CurrentIndex >= Period_CO + Period_SMA )
{
double sma = 0;
for (i = 0; i < Period_SMA;++ i)
sma = sma + CO[i];
sma = sma /Period_SMA ;
SMAseries = sma;
}
}
}
Re: тот же VBA только на графике и с фильтром
Добавлено: 09 авг 2016, 16:09
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "VBA_Chart";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("ask", DrawAs.Custom , Color.Green);
AddSeries("bid", DrawAs.Custom , Color.Red);
AddParameter("vol", 10000, 3);
AddParameter("pips", 0.3,1 );
}
function Evaluate()
{
ask=Input.Low-pips;
bid= Input.High+pips ;
if(Input.Volume>vol){
if (Input.VolumeAsk > Input.VolumeBid)
{
ask.DrawCircle();
}
if (Input.VolumeAsk < Input.VolumeBid)
{
bid.DrawCircle();
}
}
}
Re: просто большой объём
Добавлено: 09 авг 2016, 16:37
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "BA_Chart";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("ask", DrawAs.Custom , Color.Red);
AddParameter("vol", 10000, 3);
}
function Evaluate()
{
ask= (Input.High+Input.Low)/2;
if(Input.Volume>=vol){
ask.DrawCircle();
}
}
Re: MACD со стрелками
Добавлено: 13 авг 2016, 12:27
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "MACD_idicator";
PriceStudy = false;
AddInput("Input", Inputs.Price);
AddParameter("PFast", 10);
AddParameter("PSlow", 20, 2);
AddParameter("PSig", 10);
AddSeries("S", DrawAs.Custom,Color.White);
AddSeries("B", DrawAs.Custom,Color.Yellow);
AddSeries("Line", DrawAs.Line, Color.Gray); //,false
AddSeries("Signal", DrawAs.Line, Color.Red);
//AddLevel(0, Color.Gray, "Line");
AddGlobalVariable("EMA1", Types.Double, 0.0);
AddGlobalVariable("EMA2", Types.Double, 0.0);
AddGlobalVariable("KC1", Types.Double, 0.0);
AddGlobalVariable("KC2", Types.Double, 0.0);
AddGlobalVariable("KC", Types.Double, 0.0);
//AddGlobalVariable("r", Types.Double, 0.2);
}
function Evaluate()
{
if( CurrentIndex < 1 )
{
EMA1 = Input[0];
EMA2 = Input[0];
Line = 0.0;
Signal = 0.0;
KC1 = 2.0 / ((double) PFast + 1.0);
KC2 = 2.0 / ((double) PSlow + 1.0);
KC = 2.0 / ((double) PSig + 1.0);
}
else
{
EMA1 = (1.0 - KC1)*EMA1 + KC1*Input[0];
EMA2 = (1.0 - KC2)*EMA2 + KC2*Input[0];
Line = EMA1 - EMA2;
Signal = (1.0 - KC)*Signal[-1] + KC*Line;
}
if (Line[-1] > Signal[-1]&&Line[0] < Signal[0])
S.DrawArrowDown();
//PlaySound(InnerSystemSounds.Exclamation ) ;
S=Signal[0];
if (Line[-1] < Signal[-1]&&Line[0] > Signal[0])
B=Line[0];
B.DrawArrowUp();
//PlaySound(InnerSystemSounds.Exclamation ) ;
}
Re:MACD со стрелками
Добавлено: 13 авг 2016, 12:30
naum
Код: Выделить всё
function Initialize()
{
IndicatorName = "MACD_chart";
PriceStudy = true;
AddInput("Input", Inputs.Price);
AddParameter("PFast", 10);
AddParameter("PSlow", 20, 2);
AddParameter("PSig", 10);
AddSeries("S", DrawAs.Custom, Color.Red);
AddSeries("B", DrawAs.Custom, Color.Blue);
AddSeries("Line", DrawAs.Line, Color.Gray,false);
AddSeries("Signal", DrawAs.Line, Color.Red,false);
AddLevel(0, Color.Gray, "Line");
AddGlobalVariable("EMA1", Types.Double, 0.0);
AddGlobalVariable("EMA2", Types.Double, 0.0);
AddGlobalVariable("KC1", Types.Double, 0.0);
AddGlobalVariable("KC2", Types.Double, 0.0);
AddGlobalVariable("KC", Types.Double, 0.0);
}
function Evaluate()
{
S=Input.Close;
B=Input.Close;
if( CurrentIndex < 1 )
{
EMA1 = Input[0];
EMA2 = Input[0];
Line = 0.0;
Signal = 0.0;
KC1 = 2.0 / ((double) PFast + 1.0);
KC2 = 2.0 / ((double) PSlow + 1.0);
KC = 2.0 / ((double) PSig + 1.0);
}
else
{
EMA1 = (1.0 - KC1)*EMA1 + KC1*Input[0];
EMA2 = (1.0 - KC2)*EMA2 + KC2*Input[0];
Line = EMA1 - EMA2;
Signal = (1.0 - KC)*Signal[-1] + KC*Line;
}
if (Line[-1] > Signal[-1]&&Line[0] < Signal[0])
S.DrawArrowDown();
if (Line[-1] < Signal[-1]&&Line[0] > Signal[0])
B.DrawArrowUp();
}