Автор |
Сообщение |
polekoff
Зарегистрирован: 27.04.2008
Сообщения: 8
|
Уважаемый Олег.
В продолжение темы от Griff, хотел приделать стоп на Low бара входа.
Стоп работает, но цена, open вместо, как хотел, заданной.
Код: |
Pre_Buy = Ref(Open, -1) > Ref(Open, -2);
Sell = 0;
Buy = 0;
Position = 0;
for (i = 1; i < BarCount; i++)
{
if(Position == 0)
{
if(Pre_Buy[i] == 1)
{
Buy[i] = 1;
Position = 1;
PriceBuy = Open[i];
PriceSell = Low[i];
}
}
else
{
if(Open[i] > PriceBuy)
{
Sell[i] = 1;
Position = 0;
}
else
{
if(Low[i] < PriceSell)
{
SellPrice = PriceSell;
Sell[i] = 1;
Position = 0;
}
}
}
}
BuyPrice = Open;
SellPrice = Open; |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если цена исполнения сделок разная, то надо явно указывать SellPrice для каждой сделки. Как то так. 100% не гарантирую потому, что не проверял.
Код: |
Pre_Buy = Ref(Open, -1) > Ref(Open, -2);
Sell = 0;
Buy = 0;
Position = 0;
for (i = 1; i < BarCount; i++)
{
if(Position == 0)
{
if(Pre_Buy[i] == 1)
{
Buy[i] = 1;
Position = 1;
PriceBuy = Open[i];
PriceSell = Low[i];
}
}
else
{
if(Open[i] > PriceBuy)
{
Sell[i] = 1;
Position = 0;
SellPrice[i] = Open[i];
}
else
{
if(Low[i] < PriceSell)
{
SellPrice[i] = PriceSell;
Sell[i] = 1;
Position = 0;
}
}
}
}
BuyPrice = Open;
|
исправил |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег.
Последний раз редактировалось: 000 (Чт Июн 12, 2008 2:19 pm), всего редактировалось 2 раз(а) |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
polekoff
Зарегистрирован: 27.04.2008
Сообщения: 8
|
000 писал(а): |
Если цена исполнения сделок разная, то надо явно указывать SellPrice для каждой сделки. Как то так. 100% не гарантирую потому, что не проверял.
Код: |
Pre_Buy = Ref(Open, -1) > Ref(Open, -2);
Sell = 0;
Buy = 0;
Position = 0;
for (i = 1; i < BarCount; i++)
{
if(Position == 0)
{
if(Pre_Buy[i] == 1)
{
Buy[i] = 1;
Position = 1;
PriceBuy = Open[i];
PriceSell = Low[i];
}
}
else
{
if(Open[i] > PriceBuy)
{
Sell[i] = 1;
Position = 0;
SellPrice[i] == Open[i];
}
else
{
if(Low[i] < PriceSell)
{
SellPrice[i] = PriceSell;
Sell[i] = 1;
Position = 0;
}
}
}
}
BuyPrice = Open;
|
|
Поменял SellPrice[i] == Open[i]; на SellPrice[i] = Open[i];, все отлично работает.
Спасибо Олег. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
Всем привет! Всех с праздником!
Олег подскажи пожалуйста, можно ли в коде программы выставить уровень маржи (Account margin, тот что в тестере) ? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
Пробовал, не работает(
SetOption("AccountMargin", 50 );
Equity(1);
Прога воспринимает значение которое установлено в тестере |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Похоже действительно косяк. Работает только если в настройках стоит цифра меньше, чем в коде, но не меньше 10. Надо будет написать Томашу. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
Похоже действительно косяк. Работает только если в настройках стоит цифра меньше, чем в коде, но не меньше 10. Надо будет написать Томашу. |
О как! Ура, я причастен к такому событию. А деньги за выявление багов платят ?))) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
Похоже действительно косяк. Работает только если в настройках стоит цифра меньше, чем в коде, но не меньше 10. Надо будет написать Томашу. |
Олег привет, есть какие либо новости относительно этого косяка? Уж очень нужно протестировать систему с разным уровнем маржи. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Олег привет, есть какие либо новости относительно этого косяка? Уж очень нужно протестировать систему с разным уровнем маржи. |
А поставь в настройках 10 и смело можешь тестировать используя разную маржу больше 10. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
Цитата: |
Олег привет, есть какие либо новости относительно этого косяка? Уж очень нужно протестировать систему с разным уровнем маржи. |
А поставь в настройках 10 и смело можешь тестировать используя разную маржу больше 10. |
Смысл в том чтобы из кода изменять при лонге уровень в 33, а при шорте 50, так вот на то значение которое указано в коде не реагирует вообще, а если значение в коде больше чем в установках, то результата вообще нет |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Значение маржи менять нельзя.
Вот цитата из хелпера
ВНИМАНИЕ: если Вы изменяете опции в зависимости от символа, результаты теста (например % прибыли) будут искажены, поскольку во время теста считается, что опции одинаковы для всех символов в пределах одного теста. Исключением являются 'HoldMinBars', 'EarlyExit..." которые могут быть установлены для каждого символа независимо
Маржа одинакова не только для всех символов теста, но и для одного символа не зависимо от направления сделки.
Могу посоветовать либо тестировать лонг и шорт отдельно меняя уровень маржи, либо установить наибольшее значение маржи, а размер сайза при шорте уменьшать. Это не будет точным тестом, но более-менне адекватное представление о работе системы получить позволит. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
Значение маржи менять нельзя.
Вот цитата из хелпера
ВНИМАНИЕ: если Вы изменяете опции в зависимости от символа, результаты теста (например % прибыли) будут искажены, поскольку во время теста считается, что опции одинаковы для всех символов в пределах одного теста. Исключением являются 'HoldMinBars', 'EarlyExit..." которые могут быть установлены для каждого символа независимо
Маржа одинакова не только для всех символов теста, но и для одного символа не зависимо от направления сделки.
Могу посоветовать либо тестировать лонг и шорт отдельно меняя уровень маржи, либо установить наибольшее значение маржи, а размер сайза при шорте уменьшать. Это не будет точным тестом, но более-менне адекватное представление о работе системы получить позволит. |
Ну да, раздельное тестирование приносит другие результаты(
Ну я думаю если лонги у меня приносят 2/3 прибыли и число удачных сделок больше чем при шорте, то это оправдано.
"а размер сайза при шорте уменьшать" - сайз кто такой?) Размер позиции? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
сайз кто такой?) Размер позиции? |
Он |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
Цитата: |
сайз кто такой?) Размер позиции? |
Он |
Олег привет, думал что этот косяк только в 5 версии, ан нет в 4.9 также не воспринимает уровень маржи из тестера(
Давай разработчикам напишем? Как раз сейчас они новую до ума доводят, жаль английского толком незнаю) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|