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


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

СообщениеДобавлено: Чт Фев 28, 2013 8:51 pm Ответить с цитатой Вернуться к началу

Нет. Совсем не правильно.
Надо так
Цитата:
SetTradeDelays(0, 0, 0, 0);
PeriodEMA = Optimize("Period EMA", 10, 1, 200, 1); //оптимизировать EMA10 от 1 до 200 с шагом 1
BuyCond1 = C > Ref(C, -1);
BuyCond2 = Ref(L > EMA(C, PeriodEMA), -1);

Buy = BuyCond1 AND BuyCond2;
BuyPrice = C;
ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, PeriodEMA), -1);
Short = ShortCond1 AND ShortCond2;
ShortPrice = C;
Sell = Short;
Cover = Buy;

stopPercent = Optimize("stop Percent", 2, 0,5, 4, 0,5); //Оптимизировать StopLoss 2% от 0,5 до 4 с шагом 0,5%

ApplyStop( stopTypeLoss, stopModePercent, stopPercent, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);

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



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вс Мар 03, 2013 6:37 pm Ответить с цитатой Вернуться к началу

Всем привет. Олег не знаешь почему в твоем коде пишет что в этой строчке ошибка:

stopPercent = Optimize("stop Percent", 2, 0,5, 4, 0,5); //Оптимизировать StopLoss 2% от 0,5 до 4 с шагом 0,5%

Ln: 13, Col: 53: Error 16. Too many arguments
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Вс Мар 03, 2013 8:57 pm Ответить с цитатой Вернуться к началу

Optimize("stop Percent", 2, 0.5, 4, 0.5)
Посмотреть профиль Отправить личное сообщение ICQ Number
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Ср Мар 13, 2013 8:58 pm Ответить с цитатой Вернуться к началу

А как в код вставить индикатор RSI с оптимизируемыми параметрами: линии перекупленности 70, линии перепроданности 30 и период RSI 5.
Линиии от 100 до 50 и от 50 до 0 с шагом 5. А сам RSI от 1 до 100 с шагом 2. Допустим с низу вверх пересекает покупаем, с верху в низ продаем. Как на картинке:

Можно прямо в в это код, т.к. его уже изучил.
SetTradeDelays(0, 0, 0, 0); // Задержка исполнения сигнала
// Например. Если мы дождались закрытия дня и приняли решение купить завтра утром, то это задержка 1 (решили сейчас а купили на следующем баре)

BuyCond1 = C > Ref(C, -1); // Первое условие покупки. Цена закрытия больше цены закрытия предыдущей свечи. Тут вместо BuyCond1 можно использовать любое удобное имя.
BuyCond2 = Ref(L > EMA(C, 10), -1); // Второе условие покупки. EMA по закрытию с периодом 10 ниже минимума. На предыдущей свече.

Buy = BuyCond1 AND BuyCond2; // Покупка. Оба условия вместе
BuyPrice = C; // Цена покупки. В момент закрытия свечи увидели, что есть условия на вход и немедленно вошли.

// Размер сделки не задаем. Будем торговать на все доступные деньги.

ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, 10), -1);
Short = ShortCond1 AND ShortCond2;
ShortPrice = C;

// Условие выхода не по стопу не задано. Вероятно переворот при противоположном сигнале.
Sell = Short;
Cover = Buy;

// Стоп
ApplyStop( stopTypeLoss, stopModePercent, 2, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);
// Стоп лосс, задается в процентах, 2%, выходить немедленно по цене стопа, пока открыта сделка стоп не двигать,
// после исполнения стопа запретить последующий вход на протяжении 0 баров.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Мар 13, 2013 11:56 pm Ответить с цитатой Вернуться к началу

Новые условия которые ты описал будут так
Код:

perRSI = Optimize("Period RSI", 10, 1, 100, 2);
UpLevel = Optimize("Up Level", 70, 50, 100, 5);
DwLevel = Optimize("Down Level", 30, 0, 50, 5);

BuyCond = Cross(RSI(perRSI), UpLevel);
ShortCond = Cross(DwLevel, RSI(perRSI));

А вставить постарайся сам. Если будут вопросы - задавай....

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



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Чт Мар 14, 2013 4:35 pm Ответить с цитатой Вернуться к началу

Спасибо Олег. В выходные буду кумекать.
Посмотреть профиль Отправить личное сообщение
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вс Мар 17, 2013 2:50 pm Ответить с цитатой Вернуться к началу

Всем привет. Вот вставил RSI в код, не знаю правильно или нет. Мне нужно что бы при пересечении с низу в верх уровня 30 покупать, а при пересечении с верху в низ уровня 70 продавать. Вобщем я запутался. Там где стоят комментарии, это я добавил RSI в код Олега.
===========================
SetTradeDelays(0, 0, 0, 0);
PeriodEMA = Optimize("Period EMA", 10, 1, 200, 1);
PeriodRSI = Optimize("Period RSI", 10, 1, 100, 2); //оптимизировать RSI 10 от 1 до 100 с шагом 2
UpLevel = Optimize("Up Level", 70, 50, 100, 5); //оптимизировать Up уровень 70 от 50 до 100 с шагом 5
DwLevel = Optimize("Down Level", 30, 1, 50, 5); //оптимизировать Dw уровень 30 от 1 до 50 с шагом 5
BuyCond1 = C > Ref(C, -1);
BuyCond2 = Ref(L > EMA(C, PeriodEMA), -1);
BuyCond3 = Cross(RSI(perRSI), DwLevel); // Третье условие покупки. RSI пересекает Dw уровень с низу в верх.
Buy = BuyCond1 AND BuyCond2 AND BuyCond3; // Покупка. Три условия вместе.
BuyPrice = C;
ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, PeriodEMA), -1);
ShortCond3 = Cross(UpLevel, RSI(perRSI)); // Третье условие продажи. RSI пересекает Up уровень с верху в низ.
Short = ShortCond1 AND ShortCond2 AND ShortCond3; // Продажа. Три условия вместе
ShortPrice = C;
Sell = Short; Cover = Buy;
stopPercent = Optimize("stop Percent", 2, 0.5, 4, 0.5);
ApplyStop( stopTypeLoss, stopModePercent, stopPercent, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);
=============================
Олег, ты давал код: BuyCond = Cross(RSI(perRSI), UpLevel); - это купить если RSI пересекает Up уровень с низу в верх. ShortCond = Cross(DwLevel, RSI(perRSI)); - это продать если RSI пересекает Dw уровень с верху в низ. Или я ни чего не понял?

Что обозначают буквы "L" - BuyCond2 = Ref(L > EMA(C, 10), -1); и "H" - ShortCond2 = Ref(H < EMA(C, 10), -1); в этих строчках?

А в коде можно писать PerRSI, вместо PeriodRSI ?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Мар 17, 2013 3:19 pm Ответить с цитатой Вернуться к началу

Shara писал(а):
Всем привет. Вот вставил RSI в код, не знаю правильно или нет. Мне нужно что бы при пересечении с низу в верх уровня 30 покупать, а при пересечении с верху в низ уровня 70 продавать. Вобщем я запутался. Там где стоят комментарии, это я добавил RSI в код Олега.

Код:
SetTradeDelays(0, 0, 0, 0);
PeriodEMA = Optimize("Period EMA", 10, 1, 200, 1);
PeriodRSI = Optimize("Period RSI", 10, 1, 100, 2); //оптимизировать RSI 10 от 1 до 100 с шагом 2
UpLevel = Optimize("Up Level", 70, 50, 100, 5); //оптимизировать Up уровень 70  от 50 до 100 с шагом 5
DwLevel = Optimize("Down Level", 30, 1, 50, 5); //оптимизировать Dw уровень 30  от 1 до 50 с шагом 5
BuyCond1 = C > Ref(C, -1);
BuyCond2 = Ref(L > EMA(C, PeriodEMA), -1);
BuyCond3 = Cross(RSI(perRSI), DwLevel); // Третье условие покупки. RSI  пересекает Dw уровень с низу в верх.
Buy = BuyCond1 AND BuyCond2 AND BuyCond3;  // Покупка. Три  условия вместе.           
BuyPrice = C;
ShortCond1 = C < Ref(C, -1);
                                                                                                 ShortCond2 = Ref(H < EMA(C, PeriodEMA), -1);
ShortCond3 = Cross(UpLevel, RSI(perRSI)); // Третье условие продажи. RSI  пересекает Up уровень с верху в низ.
Short = ShortCond1 AND ShortCond2 AND ShortCond3; // Продажа. Три  условия вместе 
ShortPrice = C;
Sell = Short;                                                                                                                           Cover = Buy;   
stopPercent = Optimize("stop Percent", 2, 0.5, 4, 0.5);
ApplyStop( stopTypeLoss, stopModePercent, stopPercent, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);



Почти правильно.
Только ты обозвал оптимизируемый период RSI - PeriodRSI
Тут
PeriodRSI = Optimize("Period RSI", 10, 1, 100, 2); //оптимизировать RSI 10 от 1 до 100 с шагом 2
А потом подставляешь perRSI
тут
ShortCond3 = Cross(UpLevel, RSI(perRSI));

Можно обзывать как хочешь, но должно быть одинаково.

Shara писал(а):

Олег, ты давал код: BuyCond = Cross(RSI(perRSI), UpLevel); - это купить если RSI пересекает Up уровень с низу в верх. ShortCond = Cross(DwLevel, RSI(perRSI)); - это продать если RSI пересекает Dw уровень с верху в низ. Или я ни чего не понял?

Да.
Shara писал(а):

Что обозначают буквы "L" - BuyCond2 = Ref(L > EMA(C, 10), -1); и "H" - ShortCond2 = Ref(H < EMA(C, 10), -1); в этих строчках?

L - Low (минимум бара или свечи)
H - High (максимум бара или свечи)

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



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вс Мар 17, 2013 3:53 pm Ответить с цитатой Вернуться к началу

Спасибо Олег большое. Значит ставлю везде одинаково PeriodRSI, и все заработает. Щас попробую в ами этот код вставить, схавает или нет, а то мне даже не верится, что сам почти, допетрил. Был бы пример кода с коментариями, было бы легче. А стохастик примерно также?


Последний раз редактировалось: Shara (Вс Мар 17, 2013 6:07 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Вс Мар 17, 2013 4:59 pm Ответить с цитатой Вернуться к началу

А что обозначает: Error 701. Missing buy/sell variable assignments.
Исправил все perRSI, нажимаю бактест, или Оптимизе. Выдает эту ошибку.
Код такой:

SetTradeDelays(0, 0, 0, 0);
PeriodEMA = Optimize("Period EMA", 10, 1, 200, 1);
PeriodRSI = Optimize("Period RSI", 10, 1, 100, 2); //оптимизировать RSI 10 от 1 до 100 с шагом 2
UpLevel = Optimize("Up Level", 70, 50, 100, 5); //оптимизировать Up уровень 70  от 50 до 100 с шагом 5
DwLevel = Optimize("Down Level", 30, 1, 50, 5); //оптимизировать Dw уровень 30  от 1 до 50 с шагом 5
BuyCond1 = C > Ref(C, -1);
BuyCond2 = Ref(L > EMA(C, PeriodEMA), -1);
BuyCond3 = Cross(RSI(PeriodRSI), DwLevel); // Третье условие покупки. RSI  пересекает Dw уровень с низу в верх.
Buy = BuyCond1 AND BuyCond2 AND BuyCond3;  // Покупка. Три  условия вместе.           
BuyPrice = C;
ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, PeriodEMA), -1);
ShortCond3 = Cross(UpLevel, RSI(PeriodRSI)); // Третье условие продажи. RSI  пересекает Up уровень с верху в низ.
Short = ShortCond1 AND ShortCond2 AND ShortCond3; // Продажа. Три  условия вместе 
ShortPrice = C;
Sell = Short;                                                                                                                           
Cover = Buy;   
stopPercent = Optimize("stop Percent", 2, 0.5, 4, 0.5);
ApplyStop( stopTypeLoss, stopModePercent, stopPercent, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Мар 17, 2013 11:30 pm Ответить с цитатой Вернуться к началу

Этот код абсолютно правильный. У меня прекрасно работает.

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



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

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

Всем привет.
Олег, у меня не работает. Пишет эту же ошибку. Вставляю этот же код без RSI,работает. Может посмотришь, если время будет. Вот этот работает:

SetTradeDelays(0, 0, 0, 0); // Задержка исполнения сигнала
// Например. Если мы дождались закрытия дня и приняли решение купить завтра утром, то это задержка 1 (решили сейчас а купили на следующем баре)
PeriodEMA = Optimize("Period EMA", 10, 1, 200, 1); //оптимизировать EMA10 от 1 до 200 с шагом 1
BuyCond1 = C > Ref(C, -1); // Первое условие покупки. Цена закрытия больше цены закрытия предыдущей свечи. Тут вместо BuyCond1 можно использовать любое удобное имя.
BuyCond2 = Ref(L > EMA(C, PeriodEMA), -1); // Второе условие покупки. EMA по закрытию с периодом 10 ниже минимума. На предыдущей свече.
Buy = BuyCond1 AND BuyCond2; // Покупка. Оба условия вместе
BuyPrice = C;
// Цена покупки. В момент закрытия свечи увидели, что есть условия на вход и немедленно вошли.
// Размер сделки не задаем. Будем торговать на все доступные деньги.
ShortCond1 = C < Ref(C, -1);
ShortCond2 = Ref(H < EMA(C, PeriodEMA), -1);
Short = ShortCond1 AND ShortCond2;
ShortPrice = C;
// Условие выхода не по стопу не задано. Вероятно переворот при противоположном сигнале.
Sell = Short;
Cover = Buy;
// Стоп
stopPercent = Optimize("stop Percent", 2, 0.5, 4, 0.5); //Оптимизировать StopLoss 2% от 0,5 до 4 с шагом 0,5%
ApplyStop( stopTypeLoss, stopModePercent, stopPercent, ExitAtStop = 1, volatile = False, ReEntryDelay = 0);
// Стоп лосс, задается в процентах, 2%, выходить немедленно по цене стопа, пока открыта сделка стоп не двигать,
// после исполнения стопа запретить последующий вход на протяжении 0 баров.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Мар 18, 2013 6:02 pm Ответить с цитатой Вернуться к началу

Только что взял код из сообщения, вставил в АА и сделал бактест на VTB (15 мин). Прекрасно работает.... Crying or Very sad

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



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Пн Мар 18, 2013 7:45 pm Ответить с цитатой Вернуться к началу

У меня без RSI на всех акцмях работает, а с RSI пишет ошибку 701. Missing buy/sell variable assignments. почему то. А ты не знаешь что она означает?
Посмотреть профиль Отправить личное сообщение
Shara



Зарегистрирован: 11.02.2013
Сообщения: 30
Откуда: местный

СообщениеДобавлено: Пн Мар 18, 2013 8:20 pm Ответить с цитатой Вернуться к началу

Переписал весь код вручную, что бы русские буквы не попали, вставил в формулаедитор, пишет ошибку в этой строчке:

Buy = BuyCond1 AND BuyCond2 AND BuyCond3;

error 29. Variable "buycond3" used without having been initialized.

Чето ему не хватает.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen