Автор |
Сообщение |
Oleg
Гость
|
Привет!
Добавил стоп
ApplyStop( stopTypeNBar, stopModeBars, 5 );
Но он работает и в позиции long и в позиции Short при прогоне long&Short,
а нужно только чтобы срабатывал когда система была в позиции Short.
как это сделать? |
|
|
|
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй так
Код: |
ApplyStop( stopTypeNBar, stopModeBars, IIf(BarsSince(Buy) > BarsSince(Short), 5, 10000) );
|
Суть в следующем. Если последний сигнал был на шорт, то n-баровый стоп будет 5, в противном случае 10000 (очень далекий) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
Привет Олег, подскажи у меня по стоп лоссу при закрытии лонга рисуется стрелка по условию PlotShapes(IIf(Sell==2,shapeDownTriangle,0),colorRed,0,SellPrice);
, а вот при закрытии шорта по стопу по этомы условию ничего не появляется PlotShapes(IIf(Buy==2,shapeUpTriangle,0),colorGreen,0,C);
Чего неправильно делаю? Там где должен быть зеленый триугольник рисуется стрелка с условия COVER |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
Сергей писал(а): |
Привет Олег, подскажи у меня по стоп лоссу при закрытии лонга рисуется стрелка по условию PlotShapes(IIf(Sell==2,shapeDownTriangle,0),colorRed,0,SellPrice);
, а вот при закрытии шорта по стопу по этомы условию ничего не появляется PlotShapes(IIf(Buy==2,shapeUpTriangle,0),colorGreen,0,C);
Чего неправильно делаю? Там где должен быть зеленый триугольник рисуется стрелка с условия COVER |
Вопрос снимается, ответ найден) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Sergiovy
Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск
|
Сергей писал(а): |
Привет Олег, подскажи у меня по стоп лоссу при закрытии лонга рисуется стрелка по условию PlotShapes(IIf(Sell==2,shapeDownTriangle,0),colorRed,0,SellPrice);
, а вот при закрытии шорта по стопу по этомы условию ничего не появляется PlotShapes(IIf(Buy==2,shapeUpTriangle,0),colorGreen,0,C);
Чего неправильно делаю? Там где должен быть зеленый триугольник рисуется стрелка с условия COVER |
Тоже столкнулся с этой проблемой, Странно, ведь всем же понятно что движения лонг и шорт разные, почему же стопы одни и те же?
Пробовал так: но не считает профит...
Стопы для лонга:
ApplyStop( stopTypeLoss, stopModePoint, IIf(BarsSince(Short) > BarsSince(Buy), Optimize("Lo2St",500,250,750,250), 20000),1,False,0);
ApplyStop( stopTypeProfit, stopModePoint, IIf(BarsSince(Short) > BarsSince(Buy), Optimize("Lo2TP",3000,1000,4000,1000), 20000),1,False,0);
Это стопы для шорта
ApplyStop( stopTypeLoss, stopModePoint, IIf(BarsSince(Buy) > BarsSince(Short), Optimize("Sh8St",500,250,750,250), 20000),1,False,0);
ApplyStop( stopTypeProfit, stopModePoint, IIf(BarsSince(Buy) > BarsSince(Short), Optimize("Sh8TP",3000,1000,4000,1000), 20000),1,False,0);
Ловит убытки 20000 п. Может есть другая идея?
Нужен независимый оптимизируемый стоп для лонга и шорта.
Чтобы они работали вместе.
Ну, еще в тестере чтобы можно было переключать лонг и шорт, -
сейчас надо ручками комментировать неработающую часть...
Иначе стопы все равно ловит чужие.
Выход по стопу и профиту с циклами обеспечивал независимость, но чего то вдруг перестал стабильно работать.- дает часть доходов и убытков не равных стопу и профиту. -Все цифры проверял - есть по делу- типа не было другой возможности, а есть просто пропущен выход по стопу или профиту и выходит когда вздумается...
(это примерно процентов 10 сделок) остальные нормально...
бывали ли такие нестабильности у кого еще? |
_________________ "Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Использование разных стопов (насколько я знаю) возможно только в вариантах системы когда появление обратного сигнала на вход закрывает текущую позицию (активирована опция Reverse entry signal forces exit)
Тогда можно просто определить текущую позицию в коде. Например при помощи перекдючателя
Код: |
position = Flip(Buy, Short);
|
и далее в зависимости от значения position устанавливаем размеры стопов. Если position == 1, то длинная позиция, если 0, то короткая.
Вообще разберусь с этой проблеммой и если есть универсальный способ решения, то обязательно сообщу. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sergiovy
Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск
|
000 писал(а): |
Использование разных стопов (насколько я знаю) возможно только в вариантах системы когда появление обратного сигнала на вход закрывает текущую позицию (активирована опция Reverse entry signal forces exit)
Тогда можно просто определить текущую позицию в коде. Например при помощи перекдючателя
Код: |
position = Flip(Buy, Short);
|
и далее в зависимости от значения position устанавливаем размеры стопов. Если position == 1, то длинная позиция, если 0, то короткая.
Вообще разберусь с этой проблеммой и если есть универсальный способ решения, то обязательно сообщу. |
// Так должно сработать
Код:
Buy1 = Cross(MA(C,10),MA(C,20));
Loss = 0.002;
Prof = 0.002;
Sell1 = Cross(MA(C,20),MA(C,10));
Loss = IIf(Sell1, 0.0015, Loss);
Prof = IIf(Sell1, 0.0025, Loss);
EndDay= Hour() > Ref(Hour(), 1);
Buy2 = EndDay;
Loss = IIf(Buy2, 0.001, Loss);
Prof = IIf(Buy2, 0.001, Prof);
Buy = Buy1 OR Buy2;
Sell = Sell1;
ApplyStop(1, 2, Prof, 1, False);
ApplyStop(0, 2, Loss, 1, False);
Вот тут некто "ООО" - выдал идею, которую похоже можно использовать... Если получится - отпишусь. |
_________________ "Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен |
|
Посмотреть профиль Отправить личное сообщение |
|
Sergiovy
Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск
|
Разные стопы для лонга и шорта.
Можно оптимизировать...
(В Примере константы)
Loss=1500;
Profit=5500;
Loss= IIf(Buy,500,Loss);
Profit=IIf(Buy,2000,Profit);
ApplyStop( stopTypeLoss, stopModePoint, Loss, 1, False ,0 );
ApplyStop( stopTypeProfit, stopModePoint, Profit, 1, False ,0 ); |
_________________ "Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Угу. Это только если стопы не изменяемые (volatile = False) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если при задании стопов при помощи ApplyStop задаются постоянные значения (volatile = False), то стопы с течением времени не меняются и остаются равными заданным в момент открытия. Поэтому в случае volatile = False можно задавать разные стопы для Long и Short.
Удобно это делать при помощью кончтрукции
Код: |
ApplyStop( type, mode, IIf(Buy, Buy_amount, Short_amount), exitatstop, volatile = False)
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
а если изменяемые?...
и вообще, где указываются значения функций по умолчанию?
я так понимаю, в Applystop volatile = false по умолчанию и мне опять пересчитывать надо системку... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|