Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С синхронизацией с грехом пополам разобрался . Подскажите плз , есть ли какой нибудь способ заморозить терминал ( чтобы он не принимал котировки ) на время работы скрипта или эксперта .
Это нонсенс.
Зачем это надо?
Это нонсенс.
Зачем это надо?
возвращать в ТС не номер бара , а время открытия на котором ведутся расчеты , но тогда это усложнение для пользователя
Ну вот первая ласточка по мультивалютнику . Сразу предупрежу , это даже не релиз , код не оптимизирован и до конца не отлажен в нем обязательно должны быть ошибки . Если не трудно гляньте и выскажете пожелания , плеваться пока рано.
Тестер предназначен для мультивалютного тестирования выбранного куска истории . Все торговые функции взяты из 4-ки . Подробная инструкция после доделок .
Забыл добавить должны быть открыты все интересующие графики на однинаковых таймфреймах
Первый релиз
Доброго дня вашему вниманию представлен класс для написания мультивалютного тестера внутри скриптов, индикаторов или советников .Тестирование происходит по ценам открытия .
Методы класса
void Initialization() ;// в этом методе происходит обнуление переменных метод должен стоять в самом начале с него начинается работа .
void AddSymbol(string Symb) ;// метод добавления тестируемого символа в тестер символ должен быть загружен и терминале выведен график на тестируемом периоде .
bool SetBeginEnd( int Begined, int Ended);// устанавливает начало и конец тестируемой истории . Ввиду принятого стандарта индексация начинается с конца . поэтому начальный бар тестируемой истории больше конечного .
void Visualisation(true); //разрешение визуализации сделок .По умолчанию запрещено
void Printing(true) ;// вывод результатов сделки в журнал по умолчанию запрещено .
bool Start(datetime &IndexInstrum[]) в этом методе проверятся окончание выбранного тестируемого периода , а также возвращается массив времени начала бара тестируемых инструментов . Это необходимо для синхронизации тестирования разных инструментов при условии наличия пропусков .
int GetBarsNambe(string GSimb,datetime TimeOpen);// возвращает номер бара по выбранному символу и времени открытия бара.
void Vedenie_v() основной метод где производится проверка всех установленных ордеров на предмет срабатывания , закрытия по стопу или профиту .
Тестирование идет по образцу Mql4 то есть каждый ордер живет своей жизнью , поэтому можно локировать и открывать встречные ордера .
Все методы торговых функций взяты также из Mql4 . Это сделано для легкой адаптации советников написанных на этом языке .
Внимание метод OrderClose_v закрывает выбранную позицию полностью .
OrderCloseBy отсутствует .
double OrderProfit_v( ) рассчитывает прибыль без учета плеча , плечи на разных тестируемых инструментов могут быть разными .
Остальное все без изменений см документацию.
Порядок применения
Вначале идет инициализация . Затем выбор тестируемой истории . Затем добавление тестируемых инструментов . Разрешение на визуализацию при необходимости . Разрешение на вывод отчета при необходимости .
Само тестирование происходит внутри цикла Do –While
Первым идет обязательно метод
aaa=Test.Start(timeopen) ; возвращает признак окончания тестирования и массив времен открытия бара для тестируемых инструментов . Размерность timeopen должна совпадать с кол-вом тестируемых инструментов .Если к примеру timeopen[0] <0 то это признак пропуска в истории см пример .
Далее идет сама торговая система их кол-во не ограничено . Для удобства пользования по времени открытия возвращаем номер бара это обеспечивает метод nambebars=Test.GetBarsNambe(Symbol(),timeopen[0]) ; где соотв символ торгового инструмента и время открытия бара . По этому номеру можно рассчитать значения индикаторов и установить торговый сигнал согласно логике ТС .
В самом конце обязательно должен идти метод Vedenie_v.
После окончания тестирования ( выхода из цикла ) доступна вся торговая история по всем ордерам . См описание и форум к Mql4
Также необходим файл HeadTester.mqh для полного совмещения формата торговых функций Mql4 .
Удачи и процветания .
Первый релиз
...
Удачи и процветания .
Господа ПЛЗ. Где то очень интенсивно притормаживаю. Вопрос касаемся SOM. Если можно на конкретном примере .
Предположим есть карта состоящая из 50Х60 нейронов (прямоугольные ячейки). Берем случайно обучающий вектор пусть его размерность равна 5 Х1={х1,х2,х3,х4,х5}.Общая длина обучающей выборки предположим 5000 векторов. Предположим наиболее близкий к входному вектору нейрон имеет индекс 25,30 я его нашел , благо детеныш в школе уже геометрию проходит. А дальше все моя нейросетка больше не оптимизируется . Собственно далее куча вопросов .
1 Как вычислить индексы нейронов подлежащие обучению на 1 шаге.
2 Как вычислить индексы нейронов подлежащие обучению на 2 шаге.
3 Сколько всего шагов обучения должно быть для входного вектора Х1.
4 если тормозну с правилом обучения Кохонена спрошу еще.
ПС Статью читал, доп литературу читал, коды смотрел , вывод требуется пендель.
Ну вроде с окрестностью нейрона победителя внутри которой идет обучение как разобрался . Теперь следующий вопрос
Есть какой то критерий сколько раз необходимо обучать нейроны внутри окрестности . Как то этот вопрос плохо описан, не могу понять один раз обучаем и берем следующий вектор. Или обучаем до тех пор пока средняя ошибка не уменьшится до скажем 5%.
Необходим алгоритм раскраски карты Кохонена. Есть большое желание не рисовать все карты , а обойтись одной , соответственно каждому кластеру надо назначить свой цвет . Как это сделать ума не приложу .На рисунке представлена карта которая получилась у мну . По вей видно что есть разделение по признакам .Принцип раскраски, вектор большей длины красится в наиболее светлый цвет . Хотя это не правильно вектора Х1=(1,1) и Х2=(-1,-1). имеют одинаковую длину но принадлежат к разным областям .