Автор |
Сообщение |
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Суть системки:
Берем индикатор, здесь например RSI
"Желаемая цена входа" определяется как Low бара при котором Rsi вышел из зеленой зоны, но покупка должна осуществлять только если в один из последующих баров цена опускалась ниже или равной "Желаемой цене входа"
Выход из сделки осуществляется только по стопу (лосс или профит) либо если получен сигнал на обратную сделку.
код:
Код: |
//JSB_InitLib();
Length=10;//Optimize( "Length ", 10, 10, 12,2);
R = RSI(Length); //обычный рси
maxClip = Optimize( "maxClip", 70, 70, 80, 5 ); //определяем зону минимума
minClip = Optimize( "minClip", 30, 20, 30, 5 ); //определяем зону максимума
//УСЛОВИЯ ВХОДА В СДЕЛКУ
BuyCond = IIf( (r>minClip) AND (Ref(r,-1)<minClip),1,0); // "Условие на покупку" - когда RSI выходит из зоны минимума
BuyCondPrice = Low; //Определяем желаемую цену входа, как Low на баре на котором выполнилось "Условие на покупку"
ShortCond = IIf( (r<maxClip) AND (Ref(r,-1)>maxClip),1,0); // "Условие на шорт" - когда RSI выходит из зоны максимума
ShortCondPrice = High; //Определяем желаемую цену входа, как High на баре на котором выполнилось "Условие на шорт"
Buy = IIf(Low<=BuyCondPrice,1,0); //если текущий Low становится меньше желаемой цены входа, значит входим по желаемой цене
Short = IIf(High>=ShortCondPrice,1,0); //если текущий High становится больше желаемой цены входа, значит входим по желаемой цене
Sell = (r>100); //выход будет по стопу (профит или лосс), поэтому стоит нереальное значение
Cover = (r>100); //выход будет по стопу (профит или лосс), поэтому стоит нереальное значение
BuyPrice = BuyCondPrice; //покупаем по желаемой цене
ShortPrice = ShortCondPrice; // шортим по желаемой цене
//СТОПЫ
ApplyStop(stopTypeLoss, stopModePoint, Optimize( "max. loss stop level", 2.5, 1, 3, 0.25 ), True ); //выходим всегда по стопу
ApplyStop(stopTypeProfit , stopModePoint, Optimize( "max. take profit", 2, 1, 3, 0.25 ), True ); ////выходим всегда по стопу
//РИСОВАНИЕ
Plot(maxClip,"",colorRed,styleDashed );
Plot(minClip,"",colorGreen,styleDashed);
Plot(45,"",colorRose,styleDashed);
Plot(55,"",colorRose,styleDashed);
Plot( R, _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
PlotOHLC(55,55,45,45,"Banda",ColorRGB(235,245,255),styleCloud );
PlotOHLC( r,r,50,r, "", IIf( r > 50, colorRed, colorBrightGreen ), styleCloud | styleNoLabel | styleClipMinMax, minClip, maxClip );
PlotShapes(IIf(Buy,shapeUpArrow,0),colorGreen,0,Graph0,-12);
PlotShapes(IIf(Short,shapeDownArrow,0),colorRed,0,Graph0,-24);
|
Вопросы:
1. Не понимаю почему стрелочки рисуются не на графике а на одной линии
2. Сигналы Buy и Short отображаются постоянно, хотя условия из возникновения прописаны
3. Как сделать ограничение на количество баров которое дается цене чтобы она достигла "Желаемую цену входа"
[/code] |
Последний раз редактировалось: Амиброкеровец (Чт Мар 05, 2009 3:10 pm), всего редактировалось 2 раз(а) |
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
2. Добавь после условий входа выхода
Equity(1);
3. попробуй BarsSince() |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Юр, спасибо за barsince(), попробую как разберусь со стрелками, т.к equity(1) не помогло
картинку прилагаю |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
reg4all писал(а): |
Юр, спасибо за barsince(), попробую как разберусь со стрелками, т.к equity(1) не помогло
картинку прилагаю |
У меня плагин юриковский только на домашнем стоит, дома постараюсь глянуть в чем косяк, скорее всего чтото с условиями не так. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
юриковский RSI_ можно смело заменить на обычный RSI, вот первые три строчки кода:
//JSB_InitLib();
Length=10;//Optimize( "Length ", 10, 10, 12,2);
R = RSI(Length); //обычный рси
также подправил первое сообщение |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
reg4all писал(а): |
юриковский RSI_ можно смело заменить на обычный RSI, вот первые три строчки кода:
//JSB_InitLib();
Length=10;//Optimize( "Length ", 10, 10, 12,2);
R = RSI(Length); //обычный рси
также подправил первое сообщение |
Блин счас пригляделся к коду, замени нафик в стопе stopModePoint на stopModePercent, либо укажи нормальное значение пунктов, 3 это не просто мало, а пипец как мало И мне кажется это не единственный косяк, т.к. входы покрайне мере на графике не соответствуют условиям заявленным тобой. Вобщем вечером. какраз теща приезжает отмазка будет |
_________________ Юра
Последний раз редактировалось: commenced (Чт Мар 05, 2009 3:26 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
это спецально так сделано, системка для S&Pfut, где 2 п это 100$ около 15% от входа
Во вложении тиковые котировки за пару дней, в архиве который надо переименовать из afl в RAR также формат для их импорта (база должна быть тиковая иначе мало данных будет) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
глянул, все просто, косяк действительно в условии. Вобщем ты его написал так
Buy = L<=L; //а это условие верно для всех баров шорт аналогично. если хочеш напишу сразу как правильно, но лучше если ты сам поймеш свою ошибку.
Небольшая подсказка.
BuyCond = IIf( (r>minClip) AND (Ref(r,-1)<minClip),1,0);
BuyCondPrice = Low;
первое выражение это масив из 1 и 0, второе это массив равный L, накакой связи между ними нет, а ты их в дальнейшем используеш, так какбудто 2 полученных массива соотнесены с друг другом. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Юр, я кажется понял. Вот подправил код, но результат тот же
(кусок кода входа в сделку)
Код: |
//УСЛОВИЯ ВХОДА В СДЕЛКУ
BuyCond = IIf( (r>minClip) AND (Ref(r,-1)<minClip),1,0); // "Условие на покупку" - когда RSI выходит из зоны минимума
if (BuyCond = 1)
BuyCondPrice = Low; //Определяем желаемую цену входа, как Low на баре на котором выполнилось "Условие на покупку"
ShortCond = IIf( (r<maxClip) AND (Ref(r,-1)>maxClip),1,0); // "Условие на шорт" - когда RSI выходит из зоны максимума
if (ShortCond = 1)
ShortCondPrice = High; //Определяем желаемую цену входа, как High на баре на котором выполнилось "Условие на шорт"
Buy = IIf(Low<=BuyCondPrice AND BuyCond==1,1,0) ; //если текущий Low становится меньше желаемой цены входа, значит входим по желаемой цене
Short = IIf(High>=ShortCondPrice AND ShortCond==1,1,0) ; //если текущий High становится больше желаемой цены входа, значит входим по желаемой цене
Sell = (r>100); //выход будет по стопу (профит или лосс), поэтому стоит нереальное значение
Cover = (r>100); //выход будет по стопу (профит или лосс), поэтому стоит нереальное значение
BuyPrice = BuyCondPrice; //покупаем по желаемой цене
ShortPrice = ShortCondPrice; // шортим по желаемой цене
Equity(1); |
|
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
BuyCond = Cross(r, minClip);
BuyCondPrice = ValueWhen(BuyCond, Low);// цена покупки
BuyTimeCond = BarsSince(BuyCond) < 5; // на протяжении скольки баров ждем достижения цены покупки
Buy = Cross(BuyCondPrice, L) AND BuyTimeCond;
BuyPrice = BuyCondPrice;
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
000 писал(а): |
Код: |
BuyCond = Cross(r, minClip);
BuyCondPrice = ValueWhen(BuyCond, Low);// цена покупки
BuyTimeCond = BarsSince(BuyCond) < 5; // на протяжении скольки баров ждем достижения цены покупки
Buy = Cross(BuyCondPrice, L) AND BuyTimeCond;
BuyPrice = BuyCondPrice;
|
|
Ну вот, учебный процесс сорван Не зря админов всегда ругают, че хотят то творят |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Амиброкеровец
Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия
|
Спасибо товарищи! |
_________________ Антон |
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|