Re: Робот не закрывает позицию по времени.
Добавлено: 07 мар 2016, 07:56
Спасибо за информацию по оформлению изображений. В учебном центре не обратил внимание на слово вебинар
Неофициальный форум клиентского терминала Альфа-Инвестиции (Альфа-Директ 4). Обсуждение терминала, обмен опытом, разработка скриптов индикаторов и стратегий.
https://www.alfadirect4.ru/
Код: Выделить всё
/**Стратегия основана на определении моментов пересечения сглаженной линии D SO и сигнальной линии SO (система "SO"). Особенности:
- сигнал на продажу выдается, если сглаженная линия D индикатора SO пересекает сигнальную линию SO сверху вниз;
- сигнал на закрытие шорта выдается при профите 1000, и при стопе -300;
- при тестировании цена сделки фиксируется как цена закрытия бара, на котором появился сигнал.
- в роботе заявка выставляется после закрытия бара, на котором появился сигнал.
Developed by GG;
Algorithm = ОСЦИЛЛЯТОР;**/
function Initialize()
{
StrategyName = "GenGal_SQ";
AddParameter("PK", 37, "", 1);
AddParameter("PD", 31, "", 1);
AddParameter("Psig", 10, "", 1);
AddInput("Input1", Inputs.Candle, 30, true, "SiH6=ФОРТС");
LongLimit = 1;
ShortLimit = -1;
}
function OnUpdate()
{
/// ПРАВИЛО 1
if ( (SO(Input1, PK, PD, Psig).GetValue("D", 0) < SO(Input1, PK, PD, Psig).GetValue("Signal", 0)) )
{
EnterShort();
}
/// ПРАВИЛО 2
if ( ((Input1.Close < (AverPrice()-1000)) && AverPrice() > 0))
{
CloseShort();
}
/// ПРАВИЛО 3
if ( ((Input1.Close > (AverPrice()+300)) && AverPrice() > 0))
{
CloseShort();
}
}
Геннадий писал(а):Помогите выяснить причину косой работы робота
Код: Выделить всё
...if ( (SO(Input1, PK, PD, Psig).GetValue("D", 0) < SO(Input1, PK, PD, Psig).GetValue("Signal", 0)) && CurrentPosition() == 0)...
Код: Выделить всё
/// ПРАВИЛО 2
if ( (CurrentPosition() < 0) && (CurrentPL() >= 1000) )
{
CloseShort();
}
/// ПРАВИЛО 3
if ( (CurrentPosition() < 0) && (CurrentPL() <= -300) )
{
CloseShort();
}
Код: Выделить всё
/**Стратегия основана на определении моментов пересечения сглаженной линии D SO и сигнальной линии SO (система "SO"). Особенности:
- сигнал на продажу выдается, если сглаженная линия D индикатора SO пересекает сигнальную линию SO сверху вниз;
- сигнал на закрытие шорта выдается при профите 1000, и при стопе -300;
- при тестировании цена сделки фиксируется как цена закрытия бара, на котором появился сигнал.
- в роботе заявка выставляется после закрытия бара, на котором появился сигнал.
Developed by GenGal;
Algorithm = ОСЦИЛЛЯТОР;**/
function Initialize()
{
StrategyName = "GenGal_SQ_test3";
AddParameter("PK", 37, "", 1);
AddParameter("PD", 31, "", 1);
AddParameter("Psig", 10, "", 1);
AddInput("Input1", Inputs.Candle, 30, true, "SiH6=ФОРТС");
LongLimit = 1;
ShortLimit = -1;
}
function OnUpdate()
{
/// ПРАВИЛО 1
if ( (SO(Input1, PK, PD, Psig).GetValue("D", 0) < SO(Input1, PK, PD, Psig).GetValue("Signal", 0))&& CurrentPosition() == 0 )
{
EnterShort();
}
/// ПРАВИЛО 2
if ( ((Input1.Close < (AverPrice()-1000)) && AverPrice() > 0))
{
CloseShort();
}
/// ПРАВИЛО 3
if ( ((Input1.Close > (AverPrice()+300)) && AverPrice() > 0))
{
CloseShort();
}
}
Код: Выделить всё
/// ПРАВИЛО 1
if ( (CrossBelow(SO(Input1,PK, PD, Psig)["D"], SO(Input1, PK, PD, Psig)["Signal"]) == true)&& CurrentPosition() == 0 )
{
EnterShort();
}
Код: Выделить всё
/// ПРАВИЛО 4
if ( (BarTime() > AsTime(23, 28, 0))&& CurrentPosition() < 0 )
{
CloseShort();
}