Ответить
23.01.2014, 20:14
Аватар для gince
gince gince вне форума Местный знаток
Регистрация: 09.09.2008 / Адрес: Литва / Сообщений: 448
Поблагодарили 810 раз(а) / Репутация: 810
  • Отправить сообщение для gince с помощью Skype™
Советник поставлен на тиковый график. Тест советник рисует ветртикальные линии разного цвета на покупку, продажу и закрытие. Открывает в нужнуя сторону по услувию
условие _на _покупку/условие _на _продажу. Закрывать должен по истечению указаного времени . Т.е. открыли в 17-55-32. Указаное время на существование позиции t1=1 минута.
Значит позиция должна закрыться в >=17-56-32.
В даном коде так неполучаеться. практически после открытия, сразу идет закрытие. Может из того , что тиковый график или ошибка в коде.
2014.01.22 11:53:10 PriceBorder EURUSD,M2: Ex = 1390477981
2014.01.22 11:53:10 PriceBorder EURUSD,M2: curr = 1390477981
2014.01.22 11:53:10 PriceBorder EURUSD,M2: t = 1390477981
2014.01.22 11:52:59 PriceBorder EURUSD,M2: Ex = 1390477970
2014.01.22 11:52:59 PriceBorder EURUSD,M2: curr = 1390477970
2014.01.22 11:52:58 PriceBorder EURUSD,M2: t = 1390477969

Код:
extern int t1 = 1; //Время выдержки в минутах
bool op=false;
//+------------------------------------------------------------------+

int start()
{ 
//---- 
datetime t; 

//ExistPositions
if(op) 
{
if(TimeCurrent()-t>t1*60)
Print("curr = ",TimeCurrent());
Print("Ex = ",TimeCurrent()-t);
//ClosePositions 
SetVLine(Yellow); 
op=false; 
}
else 
{
if(условие _на _покупку )
{ 
//OpenPosition 
op=true;
SetVLine(Blue); 
t=TimeCurrent();
Print("t = ",t);
}
if(условие_на_продажу)
{
//OpenPosition
op=true;
SetVLine(Red); 
t=TimeCurrent(); 
} 
} 
//----
return(0);
}
Гинтарас
23.01.2014, 20:23
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Советник поставлен на тиковый график. Тест советник рисует ветртикальные линии разного цвета на покупку, продажу и закрытие. Открывает в нужнуя сторону по услувию
условие _на _покупку/условие _на _продажу. Закрывать должен по истечению указаного времени . Т.е. открыли в 17-55-32. Указаное время на существование позиции t1=1 минута.
Значит позиция должна закрыться в >=17-56-32.
В даном коде так неполучаеться. практически после открытия, сразу идет закрытие. Может из того , что тиковый график или ошибка в коде.
2014.01.22 11:53:10 PriceBorder EURUSD,M2: Ex = 1390477981
2014.01.22 11:53:10 PriceBorder EURUSD,M2: curr = 1390477981
2014.01.22 11:53:10 PriceBorder EURUSD,M2: t = 1390477981
2014.01.22 11:52:59 PriceBorder EURUSD,M2: Ex = 1390477970
2014.01.22 11:52:59 PriceBorder EURUSD,M2: curr = 1390477970
2014.01.22 11:52:58 PriceBorder EURUSD,M2: t = 1390477969

Скрытый текст

Код:
extern int t1 = 1; //Время выдержки в минутах
bool op=false;
//+------------------------------------------------------------------+

int start()
{ 
//---- 
datetime t; 

//ExistPositions
if(op) 
{
if(TimeCurrent()-t>t1*60)
Print("curr = ",TimeCurrent());
Print("Ex = ",TimeCurrent()-t);
//ClosePositions 
SetVLine(Yellow); 
op=false; 
}
else 
{
if(условие _на _покупку )
{ 
//OpenPosition 
op=true;
SetVLine(Blue); 
t=TimeCurrent();
Print("t = ",t);
}
if(условие_на_продажу)
{
//OpenPosition
op=true;
SetVLine(Red); 
t=TimeCurrent(); 
} 
} 
//----
return(0);
}
[свернуть]
Вынеси datetime t; на глобальный уровень.
С каждым тиком эта переменная инициализируется нулём и получается что текущее время минус 0 всегда будет больше 1 минуты.

ps; И условие на покупку\продажу не забудь сделать так, чтобы не открыть кучу ордеров.

Последний раз редактировалось AlexeyVik; 23.01.2014 в 20:25.
gince 
23.01.2014, 20:30
Аватар для gince
gince gince вне форума Местный знаток
Регистрация: 09.09.2008 / Адрес: Литва / Сообщений: 448
Поблагодарили 810 раз(а) / Репутация: 810
  • Отправить сообщение для gince с помощью Skype™
Вынеси datetime t; на глобальный уровень.
С каждым тиком эта переменная инициализируется нулём и получается что текущее время минус 0 всегда будет больше 1 минуты.

ps; И условие на покупку\продажу не забудь сделать так, чтобы не открыть кучу ордеров.
Спасибо, попробую.
Гинтарас
23.01.2014, 20:50
Аватар для gince
gince gince вне форума Местный знаток
Регистрация: 09.09.2008 / Адрес: Литва / Сообщений: 448
Поблагодарили 810 раз(а) / Репутация: 810
  • Отправить сообщение для gince с помощью Skype™
сделал, но все тоже
PHP код:
bool op=false;
 
datetime  t

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {   
//----  
   
            
if(op)//(ExistPositions(NULL, -1))    
            
{
               Print(
"atidaryta pozicija yra");
               if(
TimeCurrent()-t>Expiration*60)//(SecondsAfterOpenLastPos()>Expiration*60)
                  
Print("curr = ",TimeCurrent());
                  Print(
"Ex   = ",TimeCurrent()-t);
                  
//ClosePositions(NULL, -1);  
                  
SetVLine(Yellow);
                  
//SetArrow(5,Yellow,"",Time[0],Close[0]);
                  
op=false
            }
            else 
            {
               Print(
"atidarytos pozicijos nera");
               if(!
op && price_border_lower1 Close[1] && price_border_lower2 Close[2] && price_border_lower5 price_border_lower1 2*Point )//на подьем
               

                  
//OpenPosition(NULL, OP_BUY, 0.01, 0, 0, 555);
                  
                  
op=true;
                  
SetVLine(Blue);
                  
//SetArrow(5,Aqua,"","",Time[0],Close[0]);
                  
t=TimeCurrent();
                  Print(
"t = ",t);
               }
               if(!
op && price_border_upper1 Close[1] && price_border_upper2 Close[2] && price_border_upper1 price_border_upper5 2*Point )//на понижение
               
{
                  
//OpenPosition(NULL, OP_SELL, 0.01, 0, 0, 555);
                  
op=true;
                  
SetVLine(Red);
                  
//SetArrow(5,Magenta,"","",Time[0],Close[0]);
                  
t=TimeCurrent();
                  
               }     
            }
          
             
  
//----
   
return(0);
  } 
Гинтарас

Последний раз редактировалось admin; 06.02.2014 в 10:54.
23.01.2014, 20:56
Аватар для ansol
ansol ansol вне форума Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,038
Поблагодарили 871 раз(а) / Репутация: 857
Нет, ansol, ты не прав. Значение индикаторов в отдельном окне (в подвале) часто, почти всегда, не совпадают с ценой. Поэтому их показания использовать для трала неразумно. Эти показания надо как-то приводить в соответствие с ценой инструмента, а это, чаще всего, невыполнимо.
Ну к примеру взять индикатор ATR, бывает что линия индикатора направлена вниз, а цена движется вверх, а потом наоборот, индикатор вверх а цена вниз. И как тут тралить??? Ну понятно, что когда линия индикатора вниз, то трал на месте... А когда индикатор вверх, а цена вниз??? В этом случае велика вероятность получить ошибку 130. Да и геморно это писать. Зачем себе усложнять жизнь.
Я как раз по ATR и трали-вали сейчас.
Это вопрос конкретной стратегии, а ATR показывает не что иное как ширину канала(!). Вычитаем ATR из Bid или прибавляем к Ask - вот вам и стоп на расстоянии тащится за ценой. Или две ширины канала, если боимся, что снесет раньше времени.
В трале самое главное, что стоплосс не может идти в другую сторону,
Т.е. для buy условие выглядит так(перед тем, как модифицировать ордер):
PHP код:
if(StopLoss OrderStopLoss()) ордермодифи(StopLoss
Для стопа наоборот и чуточку сложнее.
Аналогично, я расправлюсь с другим индюком - был бы смысл!
С ATR ваще детский сад - канал уменьшается перед разворотом, стоплосс приближается к цене - прямо сказка для трала

Последний раз редактировалось ansol; 23.01.2014 в 20:58.
Milord 
23.01.2014, 21:18
Аватар для Milord
Milord Milord вне форума Местный знаток
Регистрация: 26.03.2011 / Сообщений: 596
Поблагодарили 708 раз(а) / Репутация: 711
Я как раз по ATR и трали-вали сейчас.
Это вопрос конкретной стратегии, а ATR показывает не что иное как ширину канала(!). Вычитаем ATR из Bid или прибавляем к Ask - вот вам и стоп на расстоянии тащится за ценой. Или две ширины канала, если боимся, что снесет раньше времени.
В трале самое главное, что стоплосс не может идти в другую сторону,
Т.е. для buy условие выглядит так(перед тем, как модифицировать ордер):
PHP код:
if(StopLoss OrderStopLoss()) ордермодифи(StopLoss
Для стопа наоборот и чуточку сложнее.
Аналогично, я расправлюсь с другим индюком - был бы смысл!
С ATR ваще детский сад - канал уменьшается перед разворотом, стоплосс приближается к цене - прямо сказка для трала
интересно было бы сравнить(по профиту или просадке) трал по ATR,трал по МА, и классический как я его называю с 3 мя параметрами TralStart,TralStep,TralStop....
ктонибудь делал тесты для сравнения или хотябы теорию выскажет и свои мысли???
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
23.01.2014, 21:37
Регистрация: 13.03.2009 / Сообщений: 2,357
Поблагодарили 1,965 раз(а) / Репутация: 2042
ATR показывает не что иное как ширину канала(!).
Вообще то ATR индикатор волатильности. Считается как средняя длинна баров High-Low, но с учётом гэпов, если они попадаются между свечами.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
23.01.2014, 21:39
Аватар для _SERG_
_SERG_ _SERG_ вне форума Активный участник
Регистрация: 21.07.2009 / Сообщений: 271
Поблагодарили 86 раз(а) / Репутация: 86
В общем Ваша задача очень мутно описана, дайте конкретный пример и Вам помогут.
А так, лично я, запутался )))
Не проблема закодить, проблема в чтобы соответствовало техзаданию.
Смысл в сильном профитном движняке, как корекция пошла так и закрываемся по рынку. (N пунктов откатила.)
23.01.2014, 21:48
Регистрация: 13.03.2009 / Сообщений: 2,357
Поблагодарили 1,965 раз(а) / Репутация: 2042
интересно было бы сравнить(по профиту или просадке) трал по ATR,трал по МА, и классический как я его называю с 3 мя параметрами TralStart,TralStep,TralStop....
ктонибудь делал тесты для сравнения или хотябы теорию выскажет и свои мысли???
Больше тралов хороших и разных. Разным системам подходят разные тралы. То что для моей системы лучше всего подходит трейлинг полностью аналогичный встроенному в терминал, не означает что он лучший для всех систем.
Когда то давно я пользовался советником в котором был трейлинг "люстра по ATR на старшем тайм фрейме". Трейлинг как в терминале, там был бесполезен.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Milord 
24.01.2014, 05:08
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
if(TimeCurrent()-t>Expiration*60)//(SecondsAfterOpenLastPos()>Expiration*60)
{} скобки потерялись.
24.01.2014, 05:14
Аватар для ansol
ansol ansol вне форума Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,038
Поблагодарили 871 раз(а) / Репутация: 857
Вообще то ATR индикатор волатильности. Считается как средняя длинна баров High-Low, но с учётом гэпов, если они попадаются между свечами.
Его часто используют как индикатор волатильности. Очевидно, что ширина канала уже на флете и шире на тренде. Т.е. для трейлинга в самый раз.
Кто не верит - может разделить ATR на Point или сравнить с Болингером/Енвелопами. Конечно, это будет "своя" ширина канала(или пол-канала), не равная другой, вычисленной другим способом, но тем не менее.

P.S. Average True Range - средний истинный диапазон(дословный перевод)!
24.01.2014, 05:45
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Я как раз по ATR и трали-вали сейчас.
Вычитаем ATR из Bid или прибавляем к Ask - вот вам и стоп на расстоянии тащится за ценой.
Вот выделены ключевые слова в твоём трале.
И сравни это с тем, за чем "тащится" стоп если тралить по МА или параболику...
24.01.2014, 06:10
Аватар для ansol
ansol ansol вне форума Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,038
Поблагодарили 871 раз(а) / Репутация: 857
Вот выделены ключевые слова в твоём трале.
И сравни это с тем, за чем "тащится" стоп если тралить по МА или параболику...
Ну, уж выдай нам своё видение процесса. Можно подумать, что МА не зависит от цены и не тащится за ней. А что касается Bid и Ask, то тут выделять нечего - ближе стоп все равно не поставить, так что, просим...
24.01.2014, 07:36
Аватар для asers1111
asers1111 asers1111 вне форума Активный участник
Регистрация: 22.12.2011 / Сообщений: 170
Поблагодарили 42 раз(а) / Репутация: 43
Добрый день.Подскажите,пожалуйста ,как взять из индикатора показания стрелок для советника,если для этих стрелок нет буферов?Буфера только для линий.В тестере индикатор отрисовывается,стрелки не отстают,на сколько я мог заметить,не перерисовываются.Как их можно в советник записать?
24.01.2014, 07:37
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Ну, уж выдай нам своё видение процесса. Можно подумать, что МА не зависит от цены и не тащится за ней. А что касается Bid и Ask, то тут выделять нечего - ближе стоп все равно не поставить, так что, просим...
А что тут выдавать-то???
Значение индикатора МА или параболика можно поставить значением СЛ в функцию OrderModify() а значение таких индикаторов как ATR, MACD и им подобным, без дополнительных преобразований, НЕТ. Такая попытка приведёт к ошибке исполнения или поставит стоп не там где было задумано.
Я говорил только об этом. О методах и необходимости трейлинга как такового я рассуждать не буду. Для себя я уже всё решил. И со мной многие не согласятся, но и переубедить себя я не позволю.
24.01.2014, 07:40
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Добрый день.Подскажите,пожалуйста ,как взять из индикатора показания стрелок для советника,если для этих стрелок нет буферов?Буфера только для линий.В тестере индикатор отрисовывается,стрелки не отстают,на сколько я мог заметить,не перерисовываются.Как их можно в советник записать?
Если это не "буферные" стрелки, то значит объекты, надо перебирать список объектов, искать подходящие и читать координаты через ObjectGet().
Сразу не заметил, если есть исходник индикатора, то всяко проще перенести код, рисующий стрелки, в советник, чем искать их среди объектов.

Последний раз редактировалось qqmber; 24.01.2014 в 07:43.
24.01.2014, 07:50
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Если это не "буферные" стрелки, то значит объекты, надо перебирать список объектов, искать подходящие и читать координаты через ObjectGet().
Сразу не заметил, если есть исходник индикатора, то всяко проще перенести код, рисующий стрелки, в советник, чем искать их среди объектов.
Ты не совсем прав. В этом индикаторе, как и вовсех подобных, алгоритм такой, что при определённом положении значений буферов рисовать на графике стрелку.

Судя по рисунку я предполагаю, что стрелки рисуют в момент пересечения линий индикатора. Можно взять значения буферов на 2х барах и в советнике их сравнить. Если есть пересечение то...
Но рисуют их со сдвигом на 3-5 баров взад. И на картинке смотрится граалем для продажи, а на самом деле куриного помёта не стоит.
24.01.2014, 08:15
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Ты не совсем прав. В этом индикаторе, как и вовсех подобных, алгоритм такой, что при определённом положении значений буферов рисовать на графике стрелку.

Судя по рисунку я предполагаю, что стрелки рисуют в момент пересечения линий индикатора. Можно взять значения буферов на 2х барах и в советнике их сравнить. Если есть пересечение то...
Но рисуют их со сдвигом на 3-5 баров взад. И на картинке смотрится граалем для продажи, а на самом деле куриного помёта не стоит.
Глянул код индикатора, там действительно что-то странное творится, рекурсивный вызов с другим таймфреймом использован, сдается мне, ты прав насчет грааля пометного.
24.01.2014, 08:27
Аватар для asers1111
asers1111 asers1111 вне форума Активный участник
Регистрация: 22.12.2011 / Сообщений: 170
Поблагодарили 42 раз(а) / Репутация: 43
Глянул код индикатора, там действительно что-то странное творится, рекурсивный вызов с другим таймфреймом использован, сдается мне, ты прав насчет грааля пометного.
А как же они достигают того,что в тестере стрелка отрисовывается ну ,может,на 1 или 2 бара назад ,от идущей цены?Вот сейчас еще раз глянул - так и есть....
24.01.2014, 08:29
Регистрация: 13.03.2009 / Сообщений: 2,357
Поблагодарили 1,965 раз(а) / Репутация: 2042
Его часто используют как индикатор волатильности. Очевидно, что ширина канала уже на флете и шире на тренде. Т.е. для трейлинга в самый раз.
Кто не верит - может разделить ATR на Point или сравнить с Болингером/Енвелопами. Конечно, это будет "своя" ширина канала(или пол-канала), не равная другой, вычисленной другим способом, но тем не менее.

P.S. Average True Range - средний истинный диапазон(дословный перевод)!
А где в названии канал? А при чём тут конверт Боллинжера? А при чём тут Envelopes?
Конверт Боллинжера и Envelopes имеют каналы, так же как канал регрессии, Price Channel...
Ни один из выше приведённых каналов не имеет отношения к ATR, тем более ATR не является каналом.
В конверте Боллинжера есть индикатор волатильности Standart Deviation. Но то что господин Боллинжер собрал свой конверт из МА и Standart Deviation не означает что Standart Deviation или МА это канал.
С использованием ATR то же можно собрать канал, но это совсем не означает что средняя длинна свечей это канал.
Envelopes например состоит из МА, так что теперь МА надо считать каналом?
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 24.01.2014 в 08:39.
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 12:09. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO