Вопрос по Амиброкеру.

  • Автор темы Arahan
  • Дата начала

Arahan

New member
Только начинаю разбираться с программированием в Амиброкере, возник вопрос. Написал код параболика, но переворот в позиции идет только по закрытию перевернувшей параболик свечи.
Как написать, чтобы преворот осуществлялся четко в момент переворота параболика?
И еще вопрос, возможно ли на графике определить точную цену переворота? (т.е точку на которой параболик перевернулся)

Код параболика:

acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

Buy=Cross(parab, C);
Sell=Cross(C, parab);
 

Arahan

New member
То есть должно выглядеть вот так?

acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

BuyPrice=parab;

Почему-то не работает…
 

Ksandr

New member
команда buy это просто условие входа в позицию.
входить же в позицию тестер будет по цене указаной на вкладке settings/trades (там 5 стандартных цен OHCL и Average).
Если же входить надо по отличной от этих цене, после команды Buy надо указывать BuyPrice с нужной ценой входа..

сам на этой фигне подловился.. система показывала заоблочные результаты:)...
 

Arahan

New member
Если не затруднит, напишите как программа для параболика должна выглядеть в целом. Я не силен в программировании, мне бы понять как она работает, чтобы я мог далее что-то додумать по аналогии.
 

Arahan

New member
Спасибо!
Вот только результаты этот код дает такие же, как код в первом моем посте; то есть фактически эти две фукции (BuyPrice=parab; SellPrice=parab) ни на что не влияют.
Программа входит в позицию по закрытию перевернувшей параболик свечи, а не по точке касания графика параболика и графика цены.

На вкладке settings/trades у меня везде выставлено “close”, может в этом дело?
 

mehanizator1

New member
Спасибо!
Вот только результаты этот код дает такие же, как код в первом моем посте; то есть фактически эти две фукции (BuyPrice=parab; SellPrice=parab) ни на что не влияют.
Программа входит в позицию по закрытию перевернувшей параболик свечи, а не по точке касания графика параболика и графика цены.
так вы и пишите в покупке условие касания, а не условие по закрытию: sell=L<=parab например.
 

Commenced

New member
Только начинаю разбираться с программированием в Амиброкере, возник вопрос. Написал код параболика, но переворот в позиции идет только по закрытию перевернувшей параболик свечи.
Как написать, чтобы преворот осуществлялся четко в момент переворота параболика?
И еще вопрос, возможно ли на графике определить точную цену переворота? (т.е точку на которой параболик перевернулся)

Код параболика:

acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

Buy=Cross(parab, C);
Sell=Cross(C, parab);
Как не жаль, но все написанное в печку правильно так:

Buy = ref( (здесь пиши любой массив хоть C хоть L и т.д.)>parab),-1);
Sel = ref(o<parab,-1);

BuyPrice = SellPrice = o;

А теперь по тексту:
Как написать, чтобы преворот осуществлялся четко в момент переворота параболика?

Для начала найти формулу расчета параболика в ами, но все это не важно, параболик до закрытия свечи может отыграть в обратку. Если этого не боишся, отчаяный парень и можеш оставить свой код, будет срабатывать в момент переворота, но правильно протестировать ты сможеш только найдя формулу и изнее расчитывае цену сработки. Повтарюсь идея утопия, со всеми индюками не имеющими устойчивого положения на текущем баре, работают после его закрытия, как написанно у меня.

И еще вопрос, возможно ли на графике определить точную цену переворота? (т.е точку на которой параболик перевернулся)

На графике нет конечно, нужно получить довольно сложную формулу, из той по которой его считает ами.

И последнее, в чистом виде параболик не работает и создан был как скользящий стоп.
 

Arahan

New member
Всем спасибо за ответы!
Commenced тебе отдельное спасибо за развернутый ответ.

Единственное поясни пожалуйста, вот ты пишешь “Для начала найти формулу расчета параболика в ами”, “правильно протестировать ты сможеш только найдя формулу и из нее расчитывае цену сработки” не очень понятно о какой формуле речь.

Может об этой?

acc = Param("Acceleration", 0.02, 0, 1, 0.001 );
accm = Param("Max. acceleration", 0.2, 0, 1, 0.001 );
Plot( SAR( acc, accm ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style", styleDots | styleNoLine, maskDefault | styleDots | styleNoLine ) );


Тогда непонятно как мне она может помочь

В принципе насколько я понял из тестирования параболика, при перевороте, он иногда отыгрывает назад а иногда в нужную сторону с периодичность примерно 50\50 может больше может меньше, не суть. То есть иногда даже выгодно, что он отыгрывает назад. То есть по факту без разницы, переворачивает он по касанию или по закрытию перевернувшей свечи.

И еще правильно ли я тебя понял, по твоему мнению, лучше чтобы параболик переворачивался по закрытию переворачивающего его бара. То есть, сгодится и мой изначальный код?

acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

Buy=Cross(parab, C);
Sell=Cross(C, parab);
 

Commenced

New member
Всем спасибо за ответы!
Commenced тебе отдельное спасибо за развернутый ответ.

Единственное поясни пожалуйста, вот ты пишешь “Для начала найти формулу расчета параболика в ами”, “правильно протестировать ты сможеш только найдя формулу и из нее расчитывае цену сработки” не очень понятно о какой формуле речь.

Может об этой?

acc = Param("Acceleration", 0.02, 0, 1, 0.001 );
accm = Param("Max. acceleration", 0.2, 0, 1, 0.001 );
Plot( SAR( acc, accm ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style", styleDots | styleNoLine, maskDefault | styleDots | styleNoLine ) );


Тогда непонятно как мне она может помочь

В принципе насколько я понял из тестирования параболика, при перевороте, он иногда отыгрывает назад а иногда в нужную сторону с периодичность примерно 50\50 может больше может меньше, не суть. То есть иногда даже выгодно, что он отыгрывает назад. То есть по факту без разницы, переворачивает он по касанию или по закрытию перевернувшей свечи.

И еще правильно ли я тебя понял, по твоему мнению, лучше чтобы параболик переворачивался по закрытию переворачивающего его бара. То есть, сгодится и мой изначальный код?

acc = 0.02;
accm = 0.2;
parab = SAR( acc, accm );

Buy=Cross(parab, C);
Sell=Cross(C, parab);
Сперва по коду, использование С в нем не говорит о том что реч идет о закрытии бара. на текущем баре с это текущая цена. Я говорил если ты отчаянный парень и не боишся того что окажешся в позе при ложном перевороте параболика, то твой код подайдет, если тебе нужны стабильные сигналы то мой код бери. Чем плох твой код, у тебя 5 мин, система реверсная к примеру. на 2 минуте параболик переворачивается, появляется сигнал и робот отправляет заявку к примеру закрытие лонга и открытие шорта. после чего на 3 минуте произходит возврат параболика. т.к. сигнал пропал то система не знает о том что она теперь не в лонге, а в шорте, соответственно она ждет сигнала на шорт. и ты мало того что получаеш убыток до его получения, т.к. ты по факту в шорте, а не лонге, при получении сигнала на шорт следующего система отправит соответствующие заявки и ты окажещся уже в 2 позе шорта и не факт что следующий сигнал будет необратимым.

SAR( acc, accm ) это не формула, а краткое обозначение для облегчения тебе жизни, на самом деле, такая запись приводит к активации расчета внутренней формулы ами, в которой используется цена. тоже самое что и запись средней МА(L,2), а на самом деле это (L+ref(L,-1))/2
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху