Написание экспертов и индикаторов - бесплатно!
#916
Отправлено 02 August 2010 - 13:03
Можно ли исправить прикрепленный советник, этот советник работает по принципу мартингейла, но при перезагрузке или потере связи, происходит сбой и он ставит ордер без умножения т.е. например, были открыты ордера с множителем 0.1, 0.2, 0.3, 0.4 после перезагрузки следующий ордер советник должен поставить 0.5, но он ставит 0.1, а дальше уже продолжает умножать и ставит 0.5 . Можно это как-то исправить. И можно еще сделать так, что бы он подхватывал открытые вручную ордера, мне подсказали, что это связано с MagicNumber, но как переделать я не знаю.
martingeil.rar 3.65К 25 скачиваний
 
#917
Отправлено 02 August 2010 - 13:07
Я о доливке позиций, а сейчас только один открывает, либо BUY либо SELL.
ааа... понятно.... но тогда мне кажется эффективность его по сравнению с первой версией сильно не изменится... он также будет работать по старшему ТФ... вход только пораньше будет на немного... и поточнее.... а с доливкой он на хорошем тренде забирал бы прилично.... а о результатах интересных..... первая версия их уже показывает... поэтому и хочу до ума довести.... так, что если возможность появится пожалуйста помогайте... Ещё раз огромное спасибо!
#918
Отправлено 02 August 2010 - 14:38
Ещё раз сформулирую.На первом тике новой свечи выставляем два отложника.бай стоп на уровне хая предыдущей свечи и селл стоп на уровне лоу предыдущей(той же самой) свечи.К ним свои ТП и СЛ.
#919
Отправлено 02 August 2010 - 18:43
Michelangelo® К сожалению то что я увидел совсем не похоже на тех задание которое я сформулировал.Может быть вы меня не поняли и из за этого получилось не то что нужно...Я даже не понял алгоритма того что вы написали.
Ещё раз сформулирую.На первом тике новой свечи выставляем два отложника.бай стоп на уровне хая предыдущей свечи и селл стоп на уровне лоу предыдущей(той же самой) свечи.К ним свои ТП и СЛ.
эх Дума ты моя дума...
давай пройдемся по коду...
int start() //запускается на каждом тике...
{
int ticketBuy,ticketSell, expiration;
double point;
double _tpBuy=0.0, _tpSell=0.0, _slBuy=0.0, _slSell=0.0;
//----
point=MarketInfo(Symbol(),MODE_POINT);
//expiration=CurTime()+PERIOD_D1*60;
//----
if (Volume[0]>1) return; // переводится так - если мы не на первом тике текущей свечи (т.е. тиков больше чем один), то ни чего не делать - вернуться вначало процедуры...
// если мы все таки на первом тике то делаем слудеющие действия....
if (_orderLots<MarketInfo(Symbol(),MODE_MINLOT)) _orderLots=MarketInfo(Symbol(),MODE_MINLOT); // проверяем размер лота и если он меньше установленного ДЦ, ставим его равным минимальному...
if (_stopLoss>0){ // если уровень стоплосс задан пользователем - расчитываем стоплос...
_slBuy=NormalizeDouble(High[1]-_stopLoss*Point, Digits); // ... для бай-ордера
_slSell=NormalizeDouble(Low[1]+_stopLoss*Point, Digits); // ... для селл-ордера
}
if (_takeProfit>0){ // если уровень тейкпрофита задн пользователем - расчитываем тейкпрофит...
_tpBuy=NormalizeDouble(High[1]+_takeProfit*Point, Digits); // ... для бай-ордера
_tpSell=NormalizeDouble(Low[1]-_takeProfit*Point, Digits); // ... для селл-ордера
}
while(IsTradeContextBusy()) Sleep(1000); // пока торговый поток занят - ждем...
RefreshRates(); // обновляем котировки (хотя не обязательно...)
ticketBuy=OrderSend(Symbol(),OP_BUYSTOP,_orderLots,High[1],_slippage,_slBuy,_tpBuy,"",_magic,0,Green); // выставляем байстоп на уровень хая предыдущей вечи со стоплосом и тейкпрофитом
ticketSell=OrderSend(Symbol(),OP_SELLSTOP,_orderLots,Low[1],_slippage,_slSell,_tpSell,"",_magic,0,Red); // выставляем селлсоп на уровень лоу предыдущей свечи со стоплосом и тейкпрофитом
//----
return(0); // возвращаемся в начало функции (ждем нового тика)....
}
все четко по алгоритму...
- valenok2003 это нравится
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#920
Отправлено 02 August 2010 - 19:24
Сдраствуйте Michelangelo®'.
Отлично, так и сделайте пожалуста. Ваш вареант даже лудше, так позволет избежать
ложных сигналов входа ( хотя если совсем ижбезать ложных сигналов, то это точно будет ,,граль" ).
Спокойствие, только спокоствие.
( цитата )
вот... попробуй... но что-то мне здесь не нравиться... додумать надо...
Прикрепленные файлы
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#921
Отправлено 02 August 2010 - 20:13
#922
Отправлено 02 August 2010 - 21:01
вот... попробуй... но что-то мне здесь не нравиться... додумать надо...
Сдраствуйте Michelangelo®'.
Попробовал на тестере, таргует всего сутки, потом тишина. В место 0.1 лот, выстовляет 1.10
с последущим прибовлением 2.10, 3.10, 4.10.......Нет функции отключения ( +1 лот ).
Хотя отложники выстовляет правельно (это обнадёживает ). Обратите ваше внимание
пожалуста, на Функцию лоты заданной величины. Вцелом идея вроде начела материлизоваться.
Буду ждать доработанной версией.
Профецитов и процветания.
#923
Отправлено 02 August 2010 - 21:43
эх Дума ты моя дума...
давай пройдемся по коду...
int start() //запускается на каждом тике...
{
int ticketBuy,ticketSell, expiration;
double point;
double _tpBuy=0.0, _tpSell=0.0, _slBuy=0.0, _slSell=0.0;
//----
point=MarketInfo(Symbol(),MODE_POINT);
//expiration=CurTime()+PERIOD_D1*60;
//----
if (Volume[0]>1) return; // переводится так - если мы не на первом тике текущей свечи (т.е. тиков больше чем один), то ни чего не делать - вернуться вначало процедуры...
// если мы все таки на первом тике то делаем слудеющие действия....
if (_orderLots<MarketInfo(Symbol(),MODE_MINLOT)) _orderLots=MarketInfo(Symbol(),MODE_MINLOT); // проверяем размер лота и если он меньше установленного ДЦ, ставим его равным минимальному...
if (_stopLoss>0){ // если уровень стоплосс задан пользователем - расчитываем стоплос...
_slBuy=NormalizeDouble(High[1]-_stopLoss*Point, Digits); // ... для бай-ордера
_slSell=NormalizeDouble(Low[1]+_stopLoss*Point, Digits); // ... для селл-ордера
}
if (_takeProfit>0){ // если уровень тейкпрофита задн пользователем - расчитываем тейкпрофит...
_tpBuy=NormalizeDouble(High[1]+_takeProfit*Point, Digits); // ... для бай-ордера
_tpSell=NormalizeDouble(Low[1]-_takeProfit*Point, Digits); // ... для селл-ордера
}
while(IsTradeContextBusy()) Sleep(1000); // пока торговый поток занят - ждем...
RefreshRates(); // обновляем котировки (хотя не обязательно...)
ticketBuy=OrderSend(Symbol(),OP_BUYSTOP,_orderLots,High[1],_slippage,_slBuy,_tpBuy,"",_magic,0,Green); // выставляем байстоп на уровень хая предыдущей вечи со стоплосом и тейкпрофитом
ticketSell=OrderSend(Symbol(),OP_SELLSTOP,_orderLots,Low[1],_slippage,_slSell,_tpSell,"",_magic,0,Red); // выставляем селлсоп на уровень лоу предыдущей свечи со стоплосом и тейкпрофитом
//----
return(0); // возвращаемся в начало функции (ждем нового тика)....
}
все четко по алгоритму...
Этому советнику нехватает небольшое дополнение, +30 над ХАЯ предыдущей свечи и -10 ниже ЛОЙ предытущей свечи ( 5-ти значный ).
А так светник работает, пока без сбоев. Уже несколько чесов на демо. Если нетрудно, добавте пожалуста это дополнение.
#924
Отправлено 02 August 2010 - 22:28
что значит "при принудительном закрывании зделки"?Добрый вечер!Подскажите пожалуйста у кого есть советник,который при принудительном закрывании зделки открывает противоположную (обратную) зделку на следующем тике?
Можно ли исправить прикрепленный советник, этот советник работает по принципу мартингейла, но при перезагрузке или потере связи, происходит сбой и он ставит ордер без умножения т.е. например, были открыты ордера с множителем 0.1, 0.2, 0.3, 0.4 после перезагрузки следующий ордер советник должен поставить 0.5, но он ставит 0.1, а дальше уже продолжает умножать и ставит 0.5 . Можно это как-то исправить. И можно еще сделать так, что бы он подхватывал открытые вручную ордера, мне подсказали, что это связано с MagicNumber, но как переделать я не знаю.
Держите исправленного мартина (проблема с лотами устранена, магики не используются,т.е. будет подхватывать ордера выставленные вручную) .
Прикрепленные файлы
- MCM это нравится
#925
Отправлено 03 August 2010 - 01:21
А так светник работает, пока без сбоев. Уже несколько чесов на демо. Если нетрудно, добавте пожалуста это дополнение.
Откуда взялись магические +30 и -10 можно объяснить? У меня на тестере непонятно что открывает.
Michelangelo® эх Дума ты моя дума... дальше давай без фамильярностей!Используем оригинальные ники.ОК?
#926
Отправлено 03 August 2010 - 07:28
Этому советнику нехватает небольшое дополнение, +30 над ХАЯ предыдущей свечи и -10 ниже ЛОЙ предытущей свечи ( 5-ти значный ).
А так светник работает, пока без сбоев. Уже несколько чесов на демо. Если нетрудно, добавте пожалуста это дополнение.
Откуда взялись магические +30 и -10 можно объяснить? У меня на тестере непонятно что открывает.
Michelangelo® эх Дума ты моя дума... дальше давай без фамильярностей!Используем оригинальные ники.ОК?
используйте что хотите... более вам помогать не намерен...
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#927
Отправлено 03 August 2010 - 07:58
Сдраствуйте Michelangelo®'.
Попробовал на тестере, таргует всего сутки, потом тишина. В место 0.1 лот, выстовляет 1.10
с последущим прибовлением 2.10, 3.10, 4.10.......Нет функции отключения ( +1 лот ).
Хотя отложники выстовляет правельно (это обнадёживает ). Обратите ваше внимание
пожалуста, на Функцию лоты заданной величины. Вцелом идея вроде начела материлизоваться.
Буду ждать доработанной версией.
Профецитов и процветания.
так обсудим ошибки кода....
1. сутки торгует потом молчит... тут есть заковыка... он сносит (удаляет) не сработавшие отложки если есть команда выставлять новый отложенник, и если мы имеем байстоп, и недотянули до уровня цены байстопа, но нарисовали новый хай - советник сносит этот байстоп и ставит селл стоп под предыдущим лоу... и так пока может длится бесконечно, т.е. советник в рынок не входит... тут надо подумаь что к чему...
2. т.е. последовательность лотов должна быть такой 0.х-1-2-3-4-5 и т.д. с возможностью отключения... 0.х - размер лота установленный пользователем в настройках?
может еще разок модернизировать алгоритм - получили новый хай - ставим селлстоп ниже свечи на которой получили хай, тем самым мы двигаем селлстоп за ценой и когда она разворачивается вниз - продаем... получили новый лой - ставим байстоп выше свечи на котором получили лоу и когда цена разворачивается вверх - покупаем? тогда по идее он будет покупать внизу зигзага, а продавать вверху...
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#928
Отправлено 03 August 2010 - 08:07
так обсудим ошибки кода....
1. сутки торгует потом молчит... тут есть заковыка... он сносит (удаляет) не сработавшие отложки если есть команда выставлять новый отложенник, и если мы имеем байстоп, и недотянули до уровня цены байстопа, но нарисовали новый хай - советник сносит этот байстоп и ставит селл стоп под предыдущим лоу... и так пока может длится бесконечно, т.е. советник в рынок не входит... тут надо подумаь что к чему...
2. т.е. последовательность лотов должна быть такой 0.х-1-2-3-4-5 и т.д. с возможностью отключения... 0.х - размер лота установленный пользователем в настройках?
может еще разок модернизировать алгоритм - получили новый хай - ставим селлстоп ниже свечи на которой получили хай, тем самым мы двигаем селлстоп за ценой и когда она разворачивается вниз - продаем... получили новый лой - ставим байстоп выше свечи на котором получили лоу и когда цена разворачивается вверх - покупаем? тогда по идее он будет покупать внизу зигзага, а продавать вверху...
Сдраствуйте Michelangelo®'.
Вы всё верно изложили, добавить мне нечего.
Буду снетерпением ждать.
#929
Отправлено 03 August 2010 - 08:10
Прикрепленные файлы
#930
Отправлено 03 August 2010 - 08:35
Прикольно, век живи, век учись. Тока я не пойму, как работает. Volume это же тиковый объём. Поясни пож.if (Volume[0]>1) return; // переводится так - если мы не на первом тике текущей свечи (т.е. тиков больше чем один), то ни чего не делать - вернуться вначало процедуры...
- madmax001 это нравится