Отправлено: 14.04.14 09:56. Заголовок: Я в шоке! Подскажите.
Всем привет! Я в шоке! Выпал из рынка на 3,5 месяца, а тут такие перемены. Игорь подскажи, где можно ознакомиться с изменениями в MQL4? Хотел перенести все данные на новый комп, но некоторые индикаторы после компиляции перестают работать. Вот один из них. http://gfile.ru/a8cCP Хотя не перекомпилированные файлы работают. Компиляция ошибок в коде не выявляет. Но при отладке выдается ошибка формирования массива стр.67. Но в чем ошибка не пойму. Буду благодарен, если найдешь время исправить.
Остался вопрос: Чтобы осознать не бесполезность своих действий, подскажите где хранятся глобальные переменные? Я к примеру не знаю, думаю и большинство трейдеров тоже.
Сергей, список появится при нажатии в терминале клавиши F3, его можно менять и удалять.
Могу добавить, что время тестового периода явно прописанное в программе, по крайней мере в старых билдах интерпретатора, видно при открытии файла в редакторе (типа FAR, например). Т.е получив сообщение о том, что тестовый период истек - нажимается F4, поиск по дате, а потом год меняется с 2014 на 3014... ву а ля. Поэтому после компиляции имел смысл обработать код программой защиты от декомпиляции - программой типа ex4_protector.
Сообщение: 947
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация:
2
Отправлено: 18.11.14 13:45. Заголовок: Перечитай мой пост ..
Sergey пишет:
цитата:
Хреново! Идея была неплохой, как мне казалось. Развалилась простым нажатием F3. У кого есть идеи по-лучше?
Перечитай мой пост выше - я его дополнил. Достаточно эффективно - перенос части кода в dll. Хотя в защите, как и во всем, лучше соизмерять затраты на защиту с доходами от продажи.
Отправлено: 18.11.14 13:57. Заголовок: А если в коде пропис..
А если в коде прописать создание отдельного файла хранящего информацию о времени. И затем, при необходимости, вызывать эти данные. Такое возможно? Если да, то где об этом почитать?
Сообщение: 948
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация:
2
Отправлено: 18.11.14 14:02. Заголовок: Sergey пишет: А есл..
Sergey пишет:
цитата:
А если в коде прописать создание отдельного файла хранящего информацию о времени. И затем, при необходимости, вызывать эти данные. Такое возможно? Если да, то где об этом почитать?
тогда надо будет шифровать данные в файле или подписывать, иначе их можно просто поменять. А чем плох вариант Игоря? Или есть желание менять только файл лицензии с демо на коммерческий без замены самой программы?
Отправлено: 18.11.14 15:27. Заголовок: Genry пишет: А чем..
Genry пишет:
цитата:
А чем плох вариант Игоря?
Этот вариант я знаю и применяю. Но он больше подходит под отдельного пользователя. А хочется не заморачиваться под каждого. Дать возможность пользователям скачивать, но автоматически ограничивать время с начала первого запуска.
Если все элементы секрета находятся у злоумышленника - то взлом это вопрос времени, добавит трудностей взломщику перенос части кода в dll. Наиболее стойкая защита - это когда разделен и секрет, и алгоритм работы программы. Здесь повторюсь: надо соизмерять собственные затраты на защиту (и неудобство от ее применения - например, пользователь не понимая значения файла с датой его случайно удалил, получил сбой в торговле большими деньгами и выкатил претензию) с доходами от продажи.
Сообщение: 950
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация:
2
Отправлено: 18.11.14 16:44. Заголовок: Sergey пишет: А хоч..
Sergey пишет:
цитата:
А хочется не заморачиваться под каждого. Дать возможность пользователям скачивать, но автоматически ограничивать время с начала первого запуска.
Сергей, это путь сопряжен с различными проблемами. Отследить внешний файл и удалить его трудностей не составит, и снова наступил 1 запуск. Лучше сделать полноценное Демо для какого-то экзотического инструмента, а остальные валюты - в коммерческой версии. Короче дать полное представление о возможностях работы и ограничить по функционалу. Например история берется только за несколько дней назад, а не вся. Или работать будет только на Демо-счете или закрыт прогон в тестере. Вот и будут две версии, одна - демо доступная всем и всегда, вторая - коммерческая, которая берется с закрытого раздела сайта после оплаты или еще как-нибудь
Сергей, это путь сопряжен с различными проблемами. Отследить внешний файл и удалить его трудностей не составит
Чисто с психологической точки зрения, не многие поймут, что ограничение можно снять удалив файл или гл.переменную. Именно потому, что это может быть так просто. Одни по незнанию, другие от большого знания.
Genry пишет:
цитата:
Лучше сделать полноценное Демо для какого-то экзотического инструмента, а остальные валюты - в коммерческой версии. Короче дать полное представление о возможностях работы и ограничить по функционалу. Например история берется только за несколько дней назад, а не вся. Или работать будет только на Демо-счете или закрыт прогон в тестере.
Этот стандартный подход хотелось немного дополнить.
А что касается 1% спецов, то любая защита для них не проблема. И вряд ли они могут заинтересоваться моими продуктами.
Отправлено: 18.11.14 21:08. Заголовок: Наиболее оптимальный..
Наиболее оптимальный способ демо-версии для советников - это пожизненная демо-версия для демо-счетов. В MQL4 тип счета определяется так:
цитата:
ENUM_ACCOUNT_TRADE_MODE accountType = (ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE); switch (accountType) { case ACCOUNT_TRADE_MODE_DEMO: Print("Демо-счет"); break; case ACCOUNT_TRADE_MODE_CONTEST: Print("Конкурсный счет"); break; case ACCOUNT_TRADE_MODE_REAL: Print("Реальный счет"); break; }
Для индикаторов и скриптов придется придумывать что-то другое. Как вариант, если есть свой сайт, то можно проверять лицензию через WebRequest. Если же распространение не через сайт, то вполне достаточно того варианта, который я предложил в своем предыдущем посте. Перекомпиляция программы перед отправкой - секундное дело, больше времени потратите на отправку письма.
Отправлено: 19.11.14 21:51. Заголовок: Sergey пишет: Идея ..
Sergey пишет:
цитата:
Идея была в защите демо-версии от копировальщиков ордеров.
Против лома нет приема, т. е. универсального способа. Поэтому потрудитесь защищать каждую версию индивидуально. В этом нет ничего сложного. Не думаю, что поток запросов на демо-версии больше, чем десяток в день (это огромная цифра!). А для каждого из этих запросов в день у Вас будет одна версия. Новый день - следующая версия. Скомпилили - раскидали по запросам.
Отправлено: 24.11.14 17:39. Заголовок: Столкнулся с такой п..
Столкнулся с такой проблемой. При выводе StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL)*Point; // текущий уровень стопов через Alert StopLevel=0.0 Однако в реалии брокер не дает устанавливать уровень столосс ближе 30 pip на пятизнаке.(Пробовал в ручную перетащить не получилось.) При этом TP перетащить на Ask для Buy ордеров можно. Получается, что функция проверки расчета уровней SL и TP и корректной установки или модификации ордеров, использующие StopLevel в качестве минимального уровня - бутафория. Как выяснить действительный уровень? И почему они разные для SL и TP. Даже с учетом спреда ни чего не стыкуется. Спред всего 10-15 pip.
Столкнулся с такой проблемой. При выводе StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL)*Point; // текущий уровень стопов через Alert StopLevel=0.0 Однако в реалии брокер не дает устанавливать уровень столосс ближе 30 pip на пятизнаке.
Этим грешит Alpari. Возможно, есть другие брокеры. Стоплевел у них завуалированный - устанавливать стопы и отложки не ближе, чем 2 спреда. В своей библиотеке пришлось извратится следующим образом:
// Коррекция Stop Level ля тех ДЦ, в которых его вроде бы нет (но на самом деле есть - скрытый) и для тех ДЦ, у которых есть. Для последних увеличивается на тик для повышения надежности if (m_symbolInfo.stopLevel == 0) { if (!m_isECN) m_symbolInfo.stopLevel = NormalizeDouble(2 * m_symbolInfo.spread, m_symbolInfo.digits); } else m_symbolInfo.stopLevel = NormalizeDouble(m_symbolInfo.stopLevel + m_symbolInfo.tickSize, m_symbolInfo.digits);
Здесь m_isECN указывает программе, что нулевому стоплевелу можно верить. В противном случае используется вариант для Альпари.
Все даты в формате GMT
2 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет