3 часа назад, sever51 сказал:
Ок, внедрим, очень часто просят данную функцию, значит в ней есть смысл.
3 часа назад, sever51 сказал:
Ок, внедрим, очень часто просят данную функцию, значит в ней есть смысл.
Расскажите, как лучше быть с magic у разных сетов? На сколько я понимаю - робот закроет ордера на разных парах, если magic одинаковый? (такой случай был с Бамбелби)
1 час назад, alksii сказал:Расскажите, как лучше быть с magic у разных сетов? На сколько я понимаю - робот закроет ордера на разных парах, если magic одинаковый? (такой случай был с Бамбелби)
ну не только закроет, а будет строить сетки внахлест и прочую белиберду.
Сочетание маджика и символа должно быть уникальным для всех работающих на счете советников, всегда.
Спасибо за советника, еще бы индикатор этот никчемный выпилить и было бы вообще супер)
2 минуты назад, Zemlyanin сказал:Спасибо за советника, еще бы индикатор этот никчемный выпилить и было бы вообще супер)
Что вы имеете ввиду?
9 минут назад, nba31 сказал:Что вы имеете ввиду?
Я имел ввиду окно данных в левом верхнем углу, как по мне оно ни к чему
54 минуты назад, Zemlyanin сказал:Я имел ввиду окно данных в левом верхнем углу, как по мне оно ни к чему
Наоборот удобно)
В 03.07.2022 в 17:44, nba31 сказал:В 03.07.2022 в 13:44, sever51 сказал:Ок, внедрим, очень часто просят данную функцию, значит в ней есть смысл.
Ну да, смысл есть - без ограничения количества вообще торгующих пар и однонаправленных валют нельзя осмысленного ограничить размер депо.
А нет ограничения размера депо - невозможно добиться высокой рентабельности торгов с понятными и контролируемыми рисками.
Этого бота я пока не смотрел - но как понял, по входу это примерно Байден, но без множества незалеченных багов Байдена.
Если это так, то и во Франклине осталась, по каждому символу, возможность открытия более одной (до 15?) однонаправленных сеток?
Вопрос не праздный: если на каждой паре может быть несколько однонаправленных сеток - как высчитать необходимый депо?!
Но если по каждой паре несколько сеток в одну сторону исключены, то нет и вопроса.![]()
Изменено 5 июля, 2022 пользователем Старик
7 часов назад, Старик сказал:Если это так, то и во Франклине осталась, по каждому символу, возможность открытия более одной (до 15?) однонаправленных сеток?
Да, это так. Но в отличии от байдена, можно использовать только 1 сигнал при желании. В байдене минимум 3 сигнала.
7 часов назад, Старик сказал:Вопрос не праздный: если на каждой паре может быть несколько однонаправленных сеток - как высчитать необходимый депо?!
Только ориентируясь на просадку в тестере. По этому я не рекомендую использовать данного бота без стопа в деньгах. Или же торговать сетами без сеток.
Кстати, в сеточных сетах можно отключить блок рекавери и сет будет зарабатывать, т.к. изначально оптим сигнальную часть, а потом по желанию добавляем сетку.
В 02.07.2022 в 10:10, nba31 сказал:Close by First order –
МА - закроет первый ордер по МА указанному в Exit_MA First order.
TAKE - закроет первый ордер по тейк профиту.
MA_STD - закроет первый ордер по МА, указанному в StDev period (для каждого сигнала свой). - классический режим байдена.
Exit_MA_not_std - закроет первый ордер по МА указанному в Exit ma period (для каждого сигнала свой).
В боте реализованы разные способы закрытия как первого ордера так и сетки, причем они не зависят друг от друга, к примеру первый ордер можно закрыть по ТП, а сетку по МА.
Можно строить сетки с возможностью закрытия в минус, выше в ветке были такие сеты.
Кто-нибудь уже торгует на реале сетами, которые прикреплены ниже?
Запустил с понедельника указанные сеты на реале, сделок пока не было.
*Если у авторов есть желание, можно закрепить мой моник в шапке, на Alpari ECN торгуется.
Изменено 6 июля, 2022 пользователем Старик
4 минуты назад, Air56 сказал:Кто-нибудь уже торгует на реале сетами, которые прикреплены ниже?
Запустил с понедельника указанные сеты на реале, сделок пока не было.
робот торгует не часто, сделок может и не быть по две недели
В 02.07.2022 в 11:49, Lozovoy сказал:скорей всего не заполнено поле ATR FILTER TF,опчу в мт5 и при переносе иногда в мт4 не заполняется это параметр автоматом
Конечно не заполнен с такими пасхалками
В сете AUDCAD у вас ATR_filter_TF=16408
Это что за таймфрейм такой ? Он в минуты не переводится без остатка, если что.
И что по ММ ? Он снова не в приоритете ? Или вовсе выпилен в публичной версии ?
Ну и напоминалка всем любителям кнопки "БАБЛО": Не ставьте бездумно на реал без проверки хотя бы в тестере !
29 минут назад, Lebowski сказал:Конечно не заполнен с такими пасхалками
В сете AUDCAD у вас ATR_filter_TF=16408
Это что за таймфрейм такой ? Он в минуты не переводится без остатка, если что.
И что по ММ ? Он снова не в приоритете ? Или вовсе выпилен в публичной версии ?
Ну и напоминалка всем любителям кнопки "БАБЛО": Не ставьте бездумно на реал без проверки хотя бы в тестере !
какая еще пасхалка?там TF D1
сеты конвертируются из мт5 в мт4 и поэтому так выходит что нужно руками TF ATR перенести
если этот вариант робота не подходит,то всегда можно вернуться к стабильному байдену
по секрету скажу,что финальная версию на данный момент в топике и до этого была проделана колоссальная работа,которая начиналась с версии 1.0
лично я в мм не вижу смысла и так как есть меня все устраивает
я не кодер,если @nba31 решит добавить эту функцию,то версия будет опубликована
5 минут назад, Lozovoy сказал:какая еще пасхалка?там TF D1
сеты конвертируются из мт5 в мт4 и поэтому так выходит что нужно руками TF ATR перенести
MT5 при умножении 24 часов на 60 минут даёт 16408 вместо 1440 ?
Да, это MT5 кривой, а не бот. Безусловно.
33 минуты назад, Lebowski сказал:Конечно не заполнен с такими пасхалками
В сете AUDCAD у вас ATR_filter_TF=16408
Это что за таймфрейм такой ? Он в минуты не переводится без остатка, если что.
И что по ММ ? Он снова не в приоритете ? Или вовсе выпилен в публичной версии ?
Ну и напоминалка всем любителям кнопки "БАБЛО": Не ставьте бездумно на реал без проверки хотя бы в тестере !
Я вот не особо понял ваше сообщение, вы предлагаете разработчикам создать продукт в котором одна кнопка? Мне очень импонирует девиз в теме Сетки : «Разуваем глаза и включаем мозги», предлагаю его сделать девизом всего форума, ибо очень часто натыкаюсь на очень наивные и детские вопросы/предложения, ребята, мы здесь не пасочки лепим, нужно очень серьезно ко всему подходить! Если у вас не переносится сет с мт5 в мт4 или наоборот, то это ваша проблема и вы должны приложить немного усилий ( по секрету скажу: 15 минут), что бы ее решить. Мани менеджмент это тоже ваша проблема, не моя, выбирайте лот под ваш депо и вперед! Все видать обленились и отвыкли работать, я и мои коллеги бывает переносят сеты в ручную по каждой циферке и не по одному сету и это малая часть работы, потому что есть цель и желание и нет лени!
7 минут назад, Lozovoy сказал:какая еще пасхалка?там TF D1
сеты конвертируются из мт5 в мт4 и поэтому так выходит что нужно руками TF ATR перенестиесли этот вариант робота не подходит,то всегда можно вернуться к стабильному байдену
по секрету скажу,что финальная версию на данный момент в топике и до этого была проделана колоссальная работа,которая начиналась с версии 1.0лично я в мм не вижу смысла и так как есть меня все устраивает
я не кодер,если @nba31 решит добавить эту функцию,то версия будет опубликована
Я при реализации мультиплатформенных решений подумал над этой проблемой и решил ее так: таймфреймы у меня задаются кастомными объектами, не штатными.
А при инициализации я их утилитами конвертирую.
Получилось относительно надежно.
Я процитирую значимые части для @nba31, вдруг тебе пригодится.
Оно у меня в разных файлах, поэтому здесь цитатой просто
//этот класс - для удобства логгирования. классом - чтобы не загаживать глобальный namespace
class ToStrHelper {
public:
static string TypeToStr(int _type) {
string str = EnumToString((ENUM_ORDER_TYPE)_type);
return (StringSubstr(str, 11));
}
static string TFtoStr(int _tf) {
if(_tf == PERIOD_CURRENT)
return (TFtoStr(Period()));
string str = EnumToString(TFHelper::ToTF(_tf));
return (StringSubstr(str, 7));
}
};
//этот класс занимается конвертацией
class TFHelper {
public:
//тут мы убеждаемся, что ни при каких обстоятельствах наш ТФ не окажется равен нулю. Возьмем период текущего графика, если вдруг
static int NoCurrent(int _period) {
if(_period == PERIOD_CURRENT)
return (Period());
return (_period);
}
//тут мы переводим число в "родное" значение метатрейдера
static ENUM_TIMEFRAMES ToTF(int _period) {
for(int i = 0; i < ArraySize(TIMEFRAMES); i++)
if(_period == TIMEFRAMES[i])
return (TIMEFRAMES[i]);
switch(_period){
case 60:
case 16385:
return PERIOD_H1;
case 240:
case 16388:
return PERIOD_H4;
case 1440:
case 16408:
return PERIOD_D1;
case 10080:
case 32769:
return PERIOD_W1;
case 43200:
case 49153:
return PERIOD_MN1;
}
return (-1);
}
};
//а это тот самый enum, который я использую в настройках, что в мт5, что в мт4
enum MT_TIMEFRAME {
MTTF_CURRENT = 0, //Current
MTTF_M1 = 1, //1 minute
#ifdef __MQL5__
MTTF_M2 = 2, //2 minutes
MTTF_M3 = 3, //3 minutes
MTTF_M4 = 4, //4 minutes
#endif
MTTF_M5 = 5, //5 minutes
#ifdef __MQL5__
MTTF_M6 = 6, //6 minutes
MTTF_M10 = 10, //10 minutes
MTTF_M12 = 12, //12 minutes
#endif
MTTF_M15 = 15, //15 minutes
#ifdef __MQL5__
MTTF_M20 = 20, //20 minutes
#endif
MTTF_M30 = 30, //30 minutes
MTTF_H1 = 60, //1 hour
#ifdef __MQL5__
MTTF_H2 = 120, //2 hours
MTTF_H3 = 180, //3 hours
#endif
MTTF_H4 = 240, //4 hours
#ifdef __MQL5__
MTTF_H6 = 360, //6 hours
MTTF_H8 = 480, //8 hours
MTTF_H12 = 720, //12 hours
#endif
MTTF_D1 = 1440, //1 day
MTTF_W1 = 10080, //1 week
MTTF_MN1 = 43200, //1 month
};
//ну и снова для удобства - чтобы можно было и в строку, и итерироваться при желании
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES TIMEFRAMES[] = {
#ifdef __MQL5__
PERIOD_M1,
PERIOD_M2,
PERIOD_M3,
PERIOD_M4,
PERIOD_M5,
PERIOD_M6,
PERIOD_M10,
PERIOD_M12,
PERIOD_M15,
PERIOD_M20,
PERIOD_M30,
PERIOD_H1,
PERIOD_H2,
PERIOD_H3,
PERIOD_H4,
PERIOD_H6,
PERIOD_H8,
PERIOD_H12,
PERIOD_D1,
PERIOD_W1,
PERIOD_MN1
#else
PERIOD_M1,
PERIOD_M5,
PERIOD_M15,
PERIOD_M30,
PERIOD_H1,
PERIOD_H4,
PERIOD_D1,
PERIOD_W1,
PERIOD_MN1
#endif
В итоге в коде советника выглядит примерно так:
блок настроек:
input MT_TIMEFRAME IndicatorsTimeFrame = MTTF_H1; //Working timeframe
Функция инициализации:
ENUM_TIMEFRAMES strategyTimeFrame = TFHelper::ToTF(TFHelper::NoCurrent(IndicatorsTimeFrame));
При переносе сетов ничего не бьется
Хозяйке, как говорится, на заметку
2 минуты назад, nba31 сказал:Я вот не особо понял ваше сообщение, вы предлагаете разработчикам создать продукт в котором одна кнопка?
Жаль, что так тяжело приходит понимание. Поясню. Предупреждение для любителей кнопки "бабло" было предупреждением именно для данной категории потребителей. Не для разработчиков. А для тех, кто бездумно ставит на реал, а потом плачет на весь форум "помогите, всё плохо".
7 минут назад, Lebowski сказал:MT5 при умножении 24 часов на 60 минут даёт 16408 вместо 1440 ?
Да, это MT5 кривой, а не бот. Безусловно.
В МТ5 было принято решение почему-то уйти от представления ТФ как количества минут: https://www.mql5.com/en/forum/60054
2 минуты назад, Lozovoy сказал:откуда 16408 цифра,где она вылазит?
Вроде указал явно: в вашем сете: /applications/core/interface/file/attachment.php?id=109578&key=4d49c9c8a53abd5c8802d9b1dc608001
В этом посте:
А, и еще: если где-то в настройках есть APPLIED_PRICE - он тоже побьется. Я не знаю, на кой пенис им понадобилось поменять контракты, я день убил год назад.
Я, поскольку сеты у меня все были под МТ4, решил сохранить их портируемость. Выглядит вот так:
enum MT4_APPLIED_PRICE { MT4_PRICE_CLOSE = 0, //Close MT4_PRICE_OPEN = 1, //Open MT4_PRICE_HIGH = 2, //High MT4_PRICE_LOW = 3, //Low MT4_PRICE_MEDIAN = 4, //Median MT4_PRICE_TYPICAL = 5, //Typical MT4_PRICE_WEIGHTED= 6 //Weighted }; class AppliedPriceHelper { public: static ENUM_APPLIED_PRICE MT4ToApplied(MT4_APPLIED_PRICE _price){ switch(_price) { case MT4_PRICE_CLOSE: return PRICE_CLOSE; case MT4_PRICE_OPEN: return PRICE_OPEN; case MT4_PRICE_HIGH: return PRICE_HIGH; case MT4_PRICE_LOW: return PRICE_LOW; case MT4_PRICE_MEDIAN: return PRICE_MEDIAN; case MT4_PRICE_TYPICAL: return PRICE_TYPICAL; case MT4_PRICE_WEIGHTED: return PRICE_WEIGHTED; } return (-1); } static string ToStr(ENUM_APPLIED_PRICE _price) { switch(_price) { case PRICE_CLOSE: return "PRICE_CLOSE"; case PRICE_OPEN: return "PRICE_OPEN"; case PRICE_HIGH: return "PRICE_HIGH"; case PRICE_LOW: return "PRICE_LOW"; case PRICE_MEDIAN: return "PRICE_MEDIAN"; case PRICE_TYPICAL: return "PRICE_TYPICAL"; case PRICE_WEIGHTED: return "PRICE_WEIGHTED"; } return ("UNEXPECTED: " + EnumToString(_price)); } };
пользоваться так же: параметр задается, как MT4_APPLIED_PRICE, а там, где значением хочется воспользоваться, параметр должен быть завернут в вызов МТ4ToApplied
Поскольку имена констант в enum-ах сохранены, при компиляции на разных платформах оно замапится в нужные значения.
Изменено 9 июля, 2022 пользователем Rigal
35 минут назад, nba31 сказал:Мани менеджмент это тоже ваша проблема, не моя, выбирайте лот под ваш депо и вперед! Все видать обленились и отвыкли работать, я и мои коллеги бывает переносят сеты в ручную по каждой циферке и не по одному сету и это малая часть работы, потому что есть цель и желание и нет лени!
Лень - двигатель прогресса. Всё можно автоматизировать. Даже перенос по циферке. Просто кто-то ленится )
И с манименеджментом у меня нет проблем. Просто спросил почему в старых версиях он был, а в новой нет. Не нужно так агрессивно реагировать, есть риск превратиться в Остапа Ибрагимыча.
Ну, и по ММ ещё на всякий случай поясню: если стратегия хороша, то депо растёт, а лотность остаётся фиксированной без сохранения пропорций. Можно всё время вручную менять, если лень автоматизировать или проблемы с округлением так и не решены )))
Научитесь критику принимать как путь к совершенствованию, а не личное оскорбление. Прогресс будет на лицо.
Изменено 9 июля, 2022 пользователем Lebowski
7 минут назад, Rigal сказал:Я при реализации мультиплатформенных решений подумал над этой проблемой и решил ее так: таймфреймы у меня задаются кастомными объектами, не штатными.
А при инициализации я их утилитами конвертирую.
Получилось относительно надежно.
Я процитирую значимые части для @nba31, вдруг тебе пригодится.
Оно у меня в разных файлах, поэтому здесь цитатой просто
//этот класс - для удобства логгирования. классом - чтобы не загаживать глобальный namespace class ToStrHelper { public: static string TypeToStr(int _type) { string str = EnumToString((ENUM_ORDER_TYPE)_type); return (StringSubstr(str, 11)); } static string TFtoStr(int _tf) { if(_tf == PERIOD_CURRENT) return (TFtoStr(Period())); string str = EnumToString(TFHelper::ToTF(_tf)); return (StringSubstr(str, 7)); } }; //этот класс занимается конвертацией class TFHelper { public: //тут мы убеждаемся, что ни при каких обстоятельствах наш ТФ не окажется равен нулю. Возьмем период текущего графика, если вдруг static int NoCurrent(int _period) { if(_period == PERIOD_CURRENT) return (Period()); return (_period); } //тут мы переводим число в "родное" значение метатрейдера static ENUM_TIMEFRAMES ToTF(int _period) { for(int i = 0; i < ArraySize(TIMEFRAMES); i++) if(_period == TIMEFRAMES[i]) return (TIMEFRAMES[i]); switch(_period){ case 60: case 16385: return PERIOD_H1; case 240: case 16388: return PERIOD_H4; case 1440: case 16408: return PERIOD_D1; case 10080: case 32769: return PERIOD_W1; case 43200: case 49153: return PERIOD_MN1; } return (-1); } }; //а это тот самый enum, который я использую в настройках, что в мт5, что в мт4 enum MT_TIMEFRAME { MTTF_CURRENT = 0, //Current MTTF_M1 = 1, //1 minute #ifdef __MQL5__ MTTF_M2 = 2, //2 minutes MTTF_M3 = 3, //3 minutes MTTF_M4 = 4, //4 minutes #endif MTTF_M5 = 5, //5 minutes #ifdef __MQL5__ MTTF_M6 = 6, //6 minutes MTTF_M10 = 10, //10 minutes MTTF_M12 = 12, //12 minutes #endif MTTF_M15 = 15, //15 minutes #ifdef __MQL5__ MTTF_M20 = 20, //20 minutes #endif MTTF_M30 = 30, //30 minutes MTTF_H1 = 60, //1 hour #ifdef __MQL5__ MTTF_H2 = 120, //2 hours MTTF_H3 = 180, //3 hours #endif MTTF_H4 = 240, //4 hours #ifdef __MQL5__ MTTF_H6 = 360, //6 hours MTTF_H8 = 480, //8 hours MTTF_H12 = 720, //12 hours #endif MTTF_D1 = 1440, //1 day MTTF_W1 = 10080, //1 week MTTF_MN1 = 43200, //1 month }; //ну и снова для удобства - чтобы можно было и в строку, и итерироваться при желании //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ENUM_TIMEFRAMES TIMEFRAMES[] = { #ifdef __MQL5__ PERIOD_M1, PERIOD_M2, PERIOD_M3, PERIOD_M4, PERIOD_M5, PERIOD_M6, PERIOD_M10, PERIOD_M12, PERIOD_M15, PERIOD_M20, PERIOD_M30, PERIOD_H1, PERIOD_H2, PERIOD_H3, PERIOD_H4, PERIOD_H6, PERIOD_H8, PERIOD_H12, PERIOD_D1, PERIOD_W1, PERIOD_MN1 #else PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1 #endifВ итоге в коде советника выглядит примерно так:
блок настроек:
input MT_TIMEFRAME IndicatorsTimeFrame = MTTF_H1; //Working timeframeФункция инициализации:
ENUM_TIMEFRAMES strategyTimeFrame = TFHelper::ToTF(TFHelper::NoCurrent(IndicatorsTimeFrame));При переносе сетов ничего не бьется
Хозяйке, как говорится, на заметку
Спасибо Игорь, возьму на вооружение, как говорится. Но я все же приверженец того, что нужно приложить некоторые усилия, что бы запустить бота и торговать, как минимум что бы вникнуть в его работу. Я, когда собирался ставить коржика на реальный счет, перечитал ветку три раза всю и изучил все его сеты и настройки, ушло на это около двух месяцев! Я конечно, понимаю пользователей, хочется, чтоб бы все и везде вставало и работало без изъянов, но форум - не маркет!
19 минут назад, Lebowski сказал:Лень - двигатель прогресса. Всё можно автоматизировать. Даже перенос по циферке. Просто кто-то ленится )
И с манименеджментом у меня нет проблем. Просто спросил почему в старых версиях он был, а в новой нет. Не нужно так агрессивно реагировать, есть риск превратиться в Остапа Ибрагимыча.
Ну, и по ММ ещё на всякий случай поясню: если стратегия хороша, то депо растёт, а лотность остаётся фиксированной без изменения пропорций. Можно всё время вручную менять, если лень автоматизировать или проблемы с округлением так и не решены )))
Научитесь критику принимать как путь к совершенствованию, а не личное оскорбление. Прогресс будет на лицо.
Я как бы вобще без агрессии и всегда воспринимаю критику очень позитивно. К сожалению, я опять не могу вас понять, о каких старых версиях в которых был мм вы говорите? Франклин пока в единственной версии. Не помню, писал или нет, но франклин - это не байден, от байдена в нем максимум 2 строчки кода условия на первый вход. Это не исправление ошибок, это другой бот.
Прошу прощения, если мое сообщение было в агрессивном контексте!
Изменено 9 июля, 2022 пользователем nba31
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем