Уважаемый читатель, в настоящей статье я опишу процесс создания моделей, описывающих закономерность рынка при ограниченном наборе переменных и наличии гипотезы о закономерности его поведения, являющихся результатом работы алгоритма машинного обучения CatBoost от Яндекса. Для получения моделей не потребуется знание таких языков программирования...
Не получается распечатать первые пять строк объекта DataFrame.
Беру скрипт из поставки 'data folder'\Scripts\Python\copy_rates_from.py' и добавляю строки:
from datetime import datetime
import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# импортируем модуль pandas для вывода полученных данных в табличной форме
import pandas as pd
pd.set_option('display.max_columns', 500) # сколько столбцов показываем
pd.set_option('display.width', 1500) # макс. ширина таблицы для показа
# импортируем модуль pytz для работы с таймзоной
import pytz
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
mt5.shutdown()
# установим таймзону в UTC
timezone = pytz.timezone("Etc/UTC")
# создадим объект datetime в таймзоне UTC, чтобы не применялось смещение локальной таймзоны
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# получим 10 баров с EURUSD H4 начиная с 01.10.2020 в таймзоне UTC
rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_H4, utc_from, 10)
# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
# выведем каждый элемент полученных данных на новой строке
print("Выведем полученные данные как есть")
for rate in rates:
print(rate)
# создадим из полученных данных DataFrame
rates_frame = pd.DataFrame(rates)
from datetime import datetime
import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# импортируем модуль pandas для вывода полученных данных в табличной форме
import pandas as pd
pd.set_option('display.max_columns', 500) # сколько столбцов показываем
pd.set_option('display.width', 1500) # макс. ширина таблицы для показа
# импортируем модуль pytz для работы с таймзоной
import pytz
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
mt5.shutdown()
# установим таймзону в UTC
timezone = pytz.timezone("Etc/UTC")
# создадим объект datetime в таймзоне UTC, чтобы не применялось смещение локальной таймзоны
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# получим 10 баров с EURUSD H4 начиная с 01.10.2020 в таймзоне UTC
rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_H4, utc_from, 10)
# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
# выведем каждый элемент полученных данных на новой строке
print("Выведем полученные данные как есть")
for rate in rates:
print(rate)
# создадим из полученных данных DataFrame
rates_frame = pd.DataFrame(rates)
# выведем пять первых строк (метод 'head' pandas)
print("\nВыведем пять первых строк")
rates_frame.head()
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
# выведем данные
print("\nВыведем датафрейм с данными")
print(rates_frame)
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')
# выведем данные
print("\nВыведем датафрейм с данными")
print(rates_frame)
а метод ничего не выводит:
(1578614400, 1.11051, 1.11093, 1.11017, 1.11041, 2448, 1, 0)
Выведем пять первых строк
Выведем датафрейм с данными
Aleksey Vyazmikin: Опубликовали мою статью. Приглашаю к прочтению и критике :)
Алексей, вопрос Вам и всем: почему?,-" В качестве целевой возьмем сигнал пересечения скользящего среднего и не касание его на следующем баре..."
Можно же учить "Идеальному" сигналу. Взять ЗЗ(несколько ЗЗ) и циклом из настоящего в прошлое в каждый бар сохранить, что будет идти точно вверх/вниз, на столько то, столько баров.
Ещё в бытность Neuroshell Day Trader Professional учил такому сигналу и получил первый вменяемый результат, только прикрутить его к реалу тогда было проблематично.
Алексей, вопрос Вам и всем: почему?,-" В качестве целевой возьмем сигнал пересечения скользящего среднего и не касание его на следующем баре..."
Можно же учить "Идеальному" сигналу. Взять ЗЗ(несколько ЗЗ) и циклом из настоящего в прошлое в каждый бар сохранить, что будет идти точно вверх/вниз, на столько то, столько баров.
Ещё в бытность Neuroshell Day Trader Professional учил такому сигналу и получил первый вменяемый результат, только прикрутить его к реалу тогда было проблематично.
Поэтому тогда и не знали, что точки разворота плохо прогнозируются таким методом, а обучение идет в основном по тенденции....
Для диверсификации вполне разумно использовать разные стратегии, а МО помогает улучшить базовые стратегии, чем я и предложил пользоваться в статье.
Поэтому тогда и не знали, что точки разворота плохо прогнозируются таким методом, а обучение идет в основном по тенденции....
Для диверсификации вполне разумно использовать разные стратегии, а МО помогает улучшить базовые стратегии, чем я и предложил пользоваться в статье.
Так не о точках разворота же речь(
Речь о сплошном "Идеальном" учителе. Сохранить в каждую строку временных рядов Тime/OHLC/V ещё и информацию из будущего, что точно ещё пойдет вверх без откатов на заданные %/пункты, и будет это продолжаться столько то баров. И в Вашей власти выбирать(дать алгоритму выбирать), что лучше прогнозируется, чему лучше обучается. И/или как сам пользую - в какую цель лучше и робастнее(с минимальным переобучением/подгонкой) эволюционирует.
Речь о сплошном "Идеальном" учителе. Сохранить в каждую строку временных рядов Тime/OHLC/V ещё и информацию из будущего, что точно ещё пойдет вверх без откатов на заданные %/пункты, и будет это продолжаться столько то баров. И в Вашей власти выбирать(дать алгоритму выбирать), что лучше прогнозируется, чему лучше обучается. И/или как сам пользую - в какую цель лучше и робастнее(с минимальным переобучением/подгонкой) эволюционирует.
Вариаций много. Нет цели выбрать лучший гипотетический вариант.
Владимир, вы теперь с нами, на темной стороне?
Я только учусь...
Владимир, вы теперь с нами, на темной стороне?
Не получается распечатать первые пять строк объекта DataFrame.
Беру скрипт из поставки 'data folder'\Scripts\Python\copy_rates_from.py' и добавляю строки:
а метод ничего не выводит:
Опубликовали мою статью. Приглашаю к прочтению и критике :)
Алексей, вопрос Вам и всем: почему?,-" В качестве целевой возьмем сигнал пересечения скользящего среднего и не касание его на следующем баре..."
Можно же учить "Идеальному" сигналу. Взять ЗЗ(несколько ЗЗ) и циклом из настоящего в прошлое в каждый бар сохранить, что будет идти точно вверх/вниз, на столько то, столько баров.
Ещё в бытность Neuroshell Day Trader Professional учил такому сигналу и получил первый вменяемый результат, только прикрутить его к реалу тогда было проблематично.
Алексей, вопрос Вам и всем: почему?,-" В качестве целевой возьмем сигнал пересечения скользящего среднего и не касание его на следующем баре..."
Можно же учить "Идеальному" сигналу. Взять ЗЗ(несколько ЗЗ) и циклом из настоящего в прошлое в каждый бар сохранить, что будет идти точно вверх/вниз, на столько то, столько баров.
Ещё в бытность Neuroshell Day Trader Professional учил такому сигналу и получил первый вменяемый результат, только прикрутить его к реалу тогда было проблематично.
Поэтому тогда и не знали, что точки разворота плохо прогнозируются таким методом, а обучение идет в основном по тенденции....
Для диверсификации вполне разумно использовать разные стратегии, а МО помогает улучшить базовые стратегии, чем я и предложил пользоваться в статье.
Не получается распечатать первые пять строк объекта DataFrame.
Беру скрипт из поставки 'data folder'\Scripts\Python\copy_rates_from.py' и добавляю строки:
а метод ничего не выводит:
print( rates_frame.head())
Может так надо?
print( rates_frame.head())
не, по ходу ide какая-то корявая
Поэтому тогда и не знали, что точки разворота плохо прогнозируются таким методом, а обучение идет в основном по тенденции....
Для диверсификации вполне разумно использовать разные стратегии, а МО помогает улучшить базовые стратегии, чем я и предложил пользоваться в статье.
Так не о точках разворота же речь(
Речь о сплошном "Идеальном" учителе. Сохранить в каждую строку временных рядов Тime/OHLC/V ещё и информацию из будущего, что точно ещё пойдет вверх без откатов на заданные %/пункты, и будет это продолжаться столько то баров. И в Вашей власти выбирать(дать алгоритму выбирать), что лучше прогнозируется, чему лучше обучается. И/или как сам пользую - в какую цель лучше и робастнее(с минимальным переобучением/подгонкой) эволюционирует.
Так не о точках разворота же речь(
Речь о сплошном "Идеальном" учителе. Сохранить в каждую строку временных рядов Тime/OHLC/V ещё и информацию из будущего, что точно ещё пойдет вверх без откатов на заданные %/пункты, и будет это продолжаться столько то баров. И в Вашей власти выбирать(дать алгоритму выбирать), что лучше прогнозируется, чему лучше обучается. И/или как сам пользую - в какую цель лучше и робастнее(с минимальным переобучением/подгонкой) эволюционирует.
Вариаций много. Нет цели выбрать лучший гипотетический вариант.