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



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

СообщениеДобавлено: Вс Дек 27, 2009 9:05 pm Ответить с цитатой Вернуться к началу

Тут два вопроса, сделал простейший код:
Код:
ApplyStop(stopTypeProfit, stopModePoint, amount, 1);
ApplyStop(stopTypeLoss, stopModePoint, koef*amount, 1);

соотвественно оптимизируются амаунт и коефициент.
1. Чо-то не сработало билеберда какая-то. ни один выход не был по условиям ApplyStop, хотя тестер и писал что выходы по Стоплоссу и профиту.
2. Какой писать Sell (Cover) если в принципе нужны выходы только по ApplyStop?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Вс Дек 27, 2009 9:09 pm Ответить с цитатой Вернуться к началу

Цитата:

2. Какой писать Sell (Cover) если в принципе нужны выходы только по ApplyStop?

Sell = 0;
Цитата:

1. Чо-то не сработало билеберда какая-то. ни один выход не был по условиям ApplyStop, хотя тестер и писал что выходы по Стоплоссу и профиту.

А подробнее? И как тогда система выходила если выходы только по стопам?

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



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

СообщениеДобавлено: Вс Дек 27, 2009 9:24 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А подробнее? И как тогда система выходила если выходы только по стопам?
Нет, выходила-то по стопам, просто цели были не стоповские, не были равны установленным значениям amount'a и koef*amount.
Вот щас это протестил:
Код:
amount = Optimize("punkti", 250, 20, 1000, 10);
koef = Optimize("koef", 0.2, 0.1, 0.9, 0.1);
BuyPrice = Open;
Buy = Open;
Sell = 0;
SetPositionSize(1, 4);
ApplyStop(stopTypeProfit, stopModePoint, amount, 1);
ApplyStop(stopTypeLoss, stopModePoint, koef*amount, 1);
Посмотреть профиль Отправить личное сообщение ICQ Number
kosbar



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

СообщениеДобавлено: Вс Дек 27, 2009 9:27 pm Ответить с цитатой Вернуться к началу

kosbar писал(а):
Вот щас это протестил:
щас внимательнее глянул, похоже это всё гэпы о.О хыхы
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Вс Дек 27, 2009 9:47 pm Ответить с цитатой Вернуться к началу

Very Happy

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



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

СообщениеДобавлено: Пт Янв 08, 2010 6:26 pm Ответить с цитатой Вернуться к началу

Другая проблема Олег: Applystop по прибыли перебивает команду Sell, сталкивался?
Вот такой, например, простенький код:

Код:
LvlBuy = Optimize("Enter", 100, 100, 2000, 50);
Profit = Optimize("Profit", 600, 100, 6000, 100);
BuyPrice = Open + LvlBuy;
SellPrice = Open - LvlBuy;
Buy = (Open + LvlBuy) < High;
Sell = (Open - LvlBuy) > Low;
ApplyStop(stopTypeProfit, stopModePoint, Profit, 1);


Там где система должна была бы выйти по условию Sell она ждёт, когда произойдёт приибыль и выходит по Профитстопу. Доходность соответствующая)))))
Я так понимаю только циклом решается?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Пт Янв 08, 2010 6:36 pm Ответить с цитатой Вернуться к началу

Тут фигня в том, что на одном и том, же баре и вход и выход.
Ами так не любит. Думаю дело именно в этом.

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



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

СообщениеДобавлено: Пт Янв 08, 2010 7:17 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Тут фигня в том, что на одном и том, же баре и вход и выход.
Ами так не любит. Думаю дело именно в этом.
Да нет, галочка эта убрана, да и не входит/выходит он в один бар, сделки, конечно, идут часто, но входа/выхода в одном баре там нет ни разу. Чаще всего вход и выход на следующем баре.
Проблема в том, что на баре, где срабатывает Sell и ApplySTop, ами выбирает именно ApplyStop (((
Посмотреть профиль Отправить личное сообщение ICQ Number
kosbar



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

СообщениеДобавлено: Пт Янв 08, 2010 7:22 pm Ответить с цитатой Вернуться к началу

всё понял, ты про то что на одном баре аж три сигнала выходит...?
ну а как лечить? циклом с проверкой наличия позы?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Пт Янв 08, 2010 9:40 pm Ответить с цитатой Вернуться к началу

В случае если на одном баре несколько сигналов (однонаправленых), то у Ами есть приоритеты выполнения. Т.е. некоторые сигналы имеют приоритет выше и соответственно выполняются в первую очередь. Сейчас не помню какие "важнее", а искать лень.
Способ обхода на самом деле только один. Уменьшать фрейм так, чтобы ситуация когда на одном баре несколько однонаправленных сигналов случалась реже.
На самом деле, поскольку мы не можем угадать как двигалась цена внутри бара, корректно исполнить на одном баре несколько сигналов нельзя...

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



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

СообщениеДобавлено: Ср Янв 20, 2010 2:06 am Ответить с цитатой Вернуться к началу

000 писал(а):
В случае если на одном баре несколько сигналов (однонаправленых), то у Ами есть приоритеты выполнения. Т.е. некоторые сигналы имеют приоритет выше и соответственно выполняются в первую очередь. Сейчас не помню какие "важнее", а искать лень.
Способ обхода на самом деле только один. Уменьшать фрейм так, чтобы ситуация когда на одном баре несколько однонаправленных сигналов случалась реже.
На самом деле, поскольку мы не можем угадать как двигалась цена внутри бара, корректно исполнить на одном баре несколько сигналов нельзя...

Ясно, усё понятно. Хотел было покрутить с таймфреймами, но сев накатал предыдущий код вот в таком виде:
Код:
pnkt = Param("punkti", 500, 50, 3000, 50); //пункты к условию покупки/продажи
pnpf = Param("profit", 500, 50, 3000, 50); //профит-стоп в пунктах
Cap = 500000; //стартовый капитал
Pos = 0;       //триггер позиции
Cntr = 0;       //количество контрактов
pr_in = Open + pnkt;    //цена входа в позицию
pr_out = Open - pnkt;    //цена выхода из позиции
pr_pr = 0;    //цена выхода из позиции по прибыли
price = 0;    //цена входы
Ost = 0;

for( i = 1; i < BarCount; i++ )
 {
      if (pos == 0) //если не в позции
         {
            if (pr_in[i] < High [i]) //проверяем условие входа в позицию
               {
                  Cntr = int(Cap / pr_in[i]);      // считаем количество контрактов
                  pos = 1;                     // триггер - мы вошли в позицию
                  price = pr_in[i];                // цена входа для дальнейших расчетов
                  Ost = Cap - Cntr * pr_in[i];    // остаток депо после входа в позу
                  pr_pr = pr_in[i] + pnpf;      // определяем цену выхода по профиту
               }
         }
      else
         {   if (pr_out[i] > Low[i]) // условие стандартного выхода
               {
                  Cap = Ost + (pr_out[i] - price)*Cntr + price*Cntr - 20; //расчет результата 20 это комиссия :)
                  pos = 0; //тригер - вышли из позы
               }
             else
               {
               if(High[i] > Pr_pr) // проверка на условие выхода по прибыли
                  {
                     pos = 0;   //тригер - вышли из позы
                     Cap = Ost + (pr_pr - price)*Cntr + price*Cntr - 20; //расчет результата позы
                  }
               }
          }
   trailARRAY[ i ] = Cap;
};
Plot(trailARRAY, "cap", 1,1); //рисуем эквити

И вышло как-то глюковато, если зумить график, то цифры пляшут.
А идея такая: если не в позиции - проверяем условие входа, если выполняется - входим, если и нет - следующий бар. Если вошли то выходим по условию, если условия выхода нет - то по условию достижения профит-стопа.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

СообщениеДобавлено: Ср Янв 20, 2010 2:32 am Ответить с цитатой Вернуться к началу

Посмотрел. Правда не подробно. Вроде все правильно. А цифры пляшут при зумировании возможно потому, что АФЛ по умолчанию считает не с нулевого бара, а только видимую часть с некоторым запасом (называется квик афл). Сделано для ускорения расчетов.
Чтобы заставить его считать с реально первого бара в начале кода ставь функцию
Код:

SetBarsRequired(500000, 0);

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



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

СообщениеДобавлено: Пт Янв 22, 2010 12:52 am Ответить с цитатой Вернуться к началу

000 писал(а):
SetBarsRequired(500000, 0);
ага. помогло. Но результаты мне всё равно не нравятся, попахивают нереальностью какой-то. Гляжу на эквити (чем меньше фрейм тем красивее, на RTSI например), и кажется, что входишь в любой бар, ставишь профит: случился профит - круто, не случился, так комиссию по любому отобъёшь. Надо роботу прям вот этот простой код и скормить, позырить что выйдет.
Посмотреть профиль Отправить личное сообщение ICQ Number
kosbar



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

СообщениеДобавлено: Пн Янв 25, 2010 12:24 pm Ответить с цитатой Вернуться к началу

комиссию подправил, всё встало на свои места)
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen