我将从一段代码开始,它可能会派上用场(我计划用M5时间框架工作,进行计算,每5分钟做一次决定)。
输入datetime作为dt
class date_time(dt.datetime): ''' Класс описывает отсчёт даты и времени. Представляет собой расширение класса datetime библиотеки datetime. ''' @property def M5_view(self): minute = (self.minute//5)*5 if minute < 10: _minute = '0'+str(minute) else: _minute = str(minute) return self.strftime('%Y%m%d%H')+_minute @property def nice_view(self): return self.strftime('%Y.%m.%d %H:%M:%S') def __str__(self): return self.M5_view def __repr__(self): return self.__str__()
由于有了这个类,记录正在发生的事情将变得很方便。
例如,可以这样写
dt_stamp_read = ... print('\n'+date_time.now().nice_view, '- начал работу, планирую прочитать файлы с ценами в {}'.format(dt_stamp_read.nice_view))
并得到类似的输出。
2021.12.11 22:41:23 - начал работу, планирую прочитать файлы с ценами в 2021.12.11 22:45:30
你也会需要它。
class Bar: ''' Класс описывает бар, то есть структуру данных, удобную для описания изменения цен финансовых инструментов на интервалах времени. ''' def __init__(self, instrument, time_frame, time_close, price_open, price_low, price_high, price_close, pips_value): self.instrument = instrument self.time_frame = time_frame self.time_close = time_close self.time_open = self.time_close - dt.timedelta(minutes=self.time_frame) self.price_open = price_open self.price_low = price_low self.price_high = price_high self.price_close = price_close self.w = pips_value def __str__(self): str1 = '(Bar: instrument={} time_frame={} time_open={} time_close={}\n' str2 = 'open={} low={} high={} close={} pips_value={})' return (str1+str2).format(self.instrument, self.time_frame, self.time_open.M5_view, self.time_close.M5_view, self.price_open, self.price_low, self.price_high, self.price_close, self.w) def __repr__(self): return self.__str__()
这里的字体不是单行的,所以从视觉上看,格式有点偏差,但这不是重点
而与MQL的实施相比,其优势是什么?
我想知道在python上测试交易系统的计划是怎样的?
用python进行交易是不错的...
但python适合分析数据,但不适合交易。
如果你考虑MACD选项,在python上。
- 它很容易加载报价。
- MACD数据可以很容易地计算出来。
然后在每个新的条形图上取一个条件,例如:MACD值和信号线,慢线和快线的陡峭度,价格远离慢线的运动......。
通过历史记录运行条件,显示一定时期内指定队形的统计数字加减。其他一切(开仓/平仓/交易)都应该在MQL中完成。
你不必发明一个测试器--我们有一个现成的。
在Python中,报价和指标被存储在SQLite上。连接MQL - python通过socket、文件或数据库(socket更好)。
一切...
Python - 仅用于数据分析,具有丰富的以2D(3D)图表显示分析结果的能力。
copy_rates_from 对于完整的数据分析是不够的。如果有可能提取指标数据(包括自定义指标),分析环就会被关闭。
而通过python进行交易,IMHO是MQL5的一个公关举措。
Mikhael1983:
你忘了加上 "静静地等待利益")
我将在本线程中用Python实现这一策略。
我想请人建议一个简单的(明知是输的,不是重点)交易策略。
如果信息是理智的,也就是说,会或多或少地明确提出需要做什么,在这里实施,在这个线程中,在这个策略上交易,在Python中。
我在等待 )