Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Как установить стоп при выполнении условия? Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
yanus
Гость





СообщениеДобавлено: Пн Ноя 10, 2008 11:56 am Ответить с цитатой Вернуться к началу

предположим у меня при открытии позиции сразу устанаваливается стоп 0,5%. цена идет в мою сторону на 2%, в этом случае я хочу переместить стоп на безубыток, как это сделать?
ps трейлинг-стопами просьба жуть не нагонять Very Happy
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Ноя 10, 2008 1:55 pm Ответить с цитатой Вернуться к началу

Просто несделать

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ID
Советник


Зарегистрирован: 07.01.2008
Сообщения: 370

СообщениеДобавлено: Вт Ноя 11, 2008 4:42 am Ответить с цитатой Вернуться к началу

yanus писал(а):
предположим у меня при открытии позиции сразу устанаваливается стоп 0,5%. цена идет в мою сторону на 2%, в этом случае я хочу переместить стоп на безубыток, как это сделать?
ps трейлинг-стопами просьба жуть не нагонять Very Happy


Друг, ты хочешь систему с прибылью? Значит ты должен за это заплатить. Своим временем и раздумьями относительно того как код сотворить. Ты начни, предложи идею реализации твоего безубыточного стоп. Код кинь сюда, если не получится, то мы помогем. Ну не с чистого листа же Wink
Посмотреть профиль Отправить личное сообщение
yanus
Гость





СообщениеДобавлено: Пт Ноя 21, 2008 11:23 pm Ответить с цитатой Вернуться к началу

блин, половина кода затерлась .....
прикрепил файлом из амиброкера.
теперь к самому коду:смущает один момент:
Цитата:

n=BarsSince(Cond_buy1);
maxx=HHV(H,(n+1));
start=Maxx> ((Ref(x,(-1)*n))*aa);
здесь определяется сколько баров прошло с момента выполнения условия покупки и на основании этого периода ищется максимум цены. есть возможность того, что сигнал на покупку повториться во время нахождения в позе и все расчеты собьются. как этого избежать?
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Ноя 22, 2008 9:10 am Ответить с цитатой Вернуться к началу

Цитата:
есть возможность того, что сигнал на покупку повториться во время нахождения в позе и все расчеты собьются. как этого избежать?

В таком случае необходимо переписать код с использованием цикла. Использование цикла позволяет обеспечить 100% контроль сделок и сигналов.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
yanus
Гость





СообщениеДобавлено: Сб Ноя 22, 2008 5:09 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Цитата:
есть возможность того, что сигнал на покупку повториться во время нахождения в позе и все расчеты собьются. как этого избежать?

В таком случае необходимо переписать код с использованием цикла. Использование цикла позволяет обеспечить 100% контроль сделок и сигналов.
заменил предыдущий кусок кода на этот:
Цитата:

eq = Foreign("~~~EQUITY", "C");
cash = Foreign("~~~EQUITY", "L");
poza= IIf((Cash<eq>Ref(poza,-1);

n=BarsSince(Cond_stop);
maxx=HHV(H,(n+1));
start=Maxx> ((Ref(x,(-1)*n))*aa);
теперь лишних сигналов не должно быть.
я никогда не пользовался Foreign и ~~~EQUITY. какие подводные камни могут быть?
Сергей



Зарегистрирован: 16.03.2008
Сообщения: 168

СообщениеДобавлено: Сб Ноя 22, 2008 5:30 pm Ответить с цитатой Вернуться к началу

yanus писал(а):
000 писал(а):
Цитата:
есть возможность того, что сигнал на покупку повториться во время нахождения в позе и все расчеты собьются. как этого избежать?

В таком случае необходимо переписать код с использованием цикла. Использование цикла позволяет обеспечить 100% контроль сделок и сигналов.
заменил предыдущий кусок кода на этот:
Цитата:

eq = Foreign("~~~EQUITY", "C");
cash = Foreign("~~~EQUITY", "L");
poza= IIf((Cash<eq>Ref(poza,-1);

n=BarsSince(Cond_stop);
maxx=HHV(H,(n+1));
start=Maxx> ((Ref(x,(-1)*n))*aa);
теперь лишних сигналов не должно быть.
я никогда не пользовался Foreign и ~~~EQUITY. какие подводные камни могут быть?

Код покоцало, прикрепи файлом
Посмотреть профиль Отправить личное сообщение
yanus
Гость





СообщениеДобавлено: Сб Ноя 22, 2008 8:24 pm Ответить с цитатой Вернуться к началу

Код:
x=Ref((MA(C,99)),-1);                 //определение
BuyPrice=x;                           //цены покупки
Cond_buy1=Cross(H, MA(C,100));        //условия покупки

//собственно сам "стоп"///
a=Param("start",0.1,0.01,10,0.01);       //задает насколько должна вырости цена в %% от цены покупки
aa=1+(a/100);                          //для активации стопа

b=Param("srabatyvanie",0.05,0,10,0.01); //задает цену при которой сработает стоп в %% от цены покупки
bb=1+(b/100);

eq = Foreign("~~~EQUITY", "C");
cash = Foreign("~~~EQUITY", "L");
poza= IIf((Cash<eq),1,0);
Cond_stop=poza>Ref(poza,-1);

n=BarsSince(Cond_stop);                      //время с момента покупки в барах
maxx=HHV(H,(n+1));                           // максимум цены с момента покупки
start=Maxx> ((Ref(x,(-1)*n))*aa);            // включение стопа при превышении цены покупки,
                                             //текущей ценой в %%
Cond_sell2= start AND (L<(Ref(x,(-1)*n))*bb);   // срабатывание "стопа"



Cond_sell1=RSI(15)>99;                    // целевой профит )))

SellPrice=IIf(Cond_sell1,x,(Ref(x,(-1)*n))*bb);   //определение цены продажи в зависимсти от
                                                  //типа срабатывания - стоп или целевой профит


Buy=Cond_buy1;                            //собсссно покупаем/продаем
Sell=Cond_sell2;



Plot(Cond_sell2,"srabatyvanie",colorRed); //проверка переменных
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Ноя 22, 2008 8:49 pm Ответить с цитатой Вернуться к началу

yanus писал(а):
000 писал(а):
Цитата:
есть возможность того, что сигнал на покупку повториться во время нахождения в позе и все расчеты собьются. как этого избежать?

В таком случае необходимо переписать код с использованием цикла. Использование цикла позволяет обеспечить 100% контроль сделок и сигналов.
заменил предыдущий кусок кода на этот:
Цитата:

eq = Foreign("~~~EQUITY", "C");
cash = Foreign("~~~EQUITY", "L");
poza= IIf((Cash<eq>Ref(poza,-1);

n=BarsSince(Cond_stop);
maxx=HHV(H,(n+1));
start=Maxx> ((Ref(x,(-1)*n))*aa);
теперь лишних сигналов не должно быть.
я никогда не пользовался Foreign и ~~~EQUITY. какие подводные камни могут быть?

Такие. Тикер ~~~EQUITY получается только в результате теста при помощи портфельного тестера, но изначально его нет поэтому придется тестировать систему похожую на исследуемую, но стопы в которой будут срабатывать немного подругому. Потом на основании полученной эквити тестируем конечную систему, но сделки в ней не в точности соответствуют сделкам которые построили эквити поэтому полученные сделки не в точности будут соответствовать задуманным правилам.
Кроме того не совсем понятно как написать код который затем в реале будет показывать сигналы. Если будет использоваться длинный фрейм например дневки) то еще понятно. Сперва каждый раз по новому прогоняем тест, получаем текущую эквити потом на основании этой эквити получаем реальные сигналы, а если фрейм короткий и прогонять тест для получения эквити мало времени...
Вот такие мысли вкраце...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
yanus
Гость





СообщениеДобавлено: Сб Ноя 22, 2008 10:56 pm Ответить с цитатой Вернуться к началу

печально.... ~~~EQUITY фффф топку. остаются только циклы, как ты и советовал. в принципе в данном случае это не очень страшно, тк все будет на базовом таймфреме. другое дело - я них просто ничего не понимаю. придется учиться)))
а ято касаемо реалтайма - я роботами не пользуюсь, ибо пока нет ничего стоящего, что ему можно скормить для роботы. ноя думаю для реалтайма реализовать стоп проще. там хоть из файла, который совместно используют квик и ами можно выковырять инфу - открыта или нет позиция и по какой цене. на крайняк, можно и ручками))
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen