如何从 MQL4 中的 CSV 文件绘制图表?
How to draw a chart from a CSV-file in MQL4?
我是 MQL
和 MetaTrader 4
,
的新手,但我想要读取 .CSV
文件并绘制我在 Expert Advisor
图表中得到的值我正在处理。
每个 .CSV
文件的格式为:
;EURUSD;1
DATE;TIME;HIGH;LOW;CLOSE;OPEN;VOLUME
2014.06.11;19:11:00;1.35272;1.35271;1.35271;1.35272;4
2014.06.11;19:14:00;1.35287;1.35282;1.35284;1.35283;30
其中EURUSD
部分是另一个程序生成的_Symbol
,1
是句点,其他都是要绘制的数据。
在 Expert Advisor
中是否有任何形式可以做到这一点,或者我需要使用 Custom Indicator
?
如果是这样,我怎样做才能最简单?
P.S.: 我读取数据在一个struct
:
struct entry
{
string date;
string time;
double high;
double low;
double close;
double open;
int volume;
};
MT4 提供三种主要不同的方法
首先,
可以
重新排列数据单元格为兼容格式T,O,H,L,C,V
和
导入记录使用F2
History Center
[Import]
MetaTrader 终端的功能。可以创建自己的 Symbol
-name 以避免 History Center
数据库中的名称冲突。
这样一来,MT4
就可以使用平台的底层图形引擎创建 TOHLCV
数据的系统级插图。
其次,
人们可能会忽略底层图形引擎并
在用户控制的 GUI 覆盖层上工作
以便
实现一个算法来读取CSV
文件和
创建一组MQL4
GUI 对象算法,基于上述 CSV
文件中包含的数据。基于经验的决定是否使用 { ExpertAdvisor | CustomIndicator }
将屈服于为此目的使用 Script
,因为它是一次性处理。
人们应该意识到,MT4
代码执行生态系统在 MQL4
代码(即 运行 )和MT4.Graph
不允许在 GBPJPY
MT4.Graph
上启动的代码直接处理对象,相关FTSE.100
MT4.Graph
。是的,如果需要,可以实施一些附加组件并开发一个复杂的分布式处理模型来使这项工作 "accross" 上述上下文绑定边界。
第三,
对于某些情况,最有趣的方法是基于文件的方法,其中
可能
pre-process CSV
数据以与第二个选项类似的方式但不是在 live-MT4
进程中,而是 "beforehand" 和
生成自己的Profile
文件,保持MT4
放置约定&
- ~/profiles/<aProfileNAME>/
chart01.chr
- ~/profiles/<aProfileNAME>/
order.wnd
的内容
-~/profiles/
lastprofile.ini
,第一行<aProfileNAME>
这样,一旦MT4
会话开始,预制文件就会自动加载并显示,Q.E.D.
一个.chr
文件语法示例:
<chart>
id=130394787628125000
comment=msLIB.TERMINAL: _______________2013.04.15 08:00:00 |cpuClockTIXs = 448765484 |
symbol=EURCHF
period=60
leftpos=6188
digits=4
scale=4
graph=1
fore=0
grid=0
volume=1
scroll=0
shift=1
ohlc=1
...
<window>
height=100
fixed_height=0
<indicator>
name=main
<object>
type=10
object_name=Fibo 16762
...
<object>
type=16
object_name=msLIB.RectangleOnEVENT
period_flags=0
create_time=1348596865
color=25600
style=0
weight=1
background=0
filling=0
selectable=1
hidden=0
zorder=0
time_0=1348592400
value_0=1.213992
time_1=1348624800
value_1=1.209486
ray=0
</object>
...
<object>
type=17
object_name=msLIB.TriangleMarker
period_flags=0
create_time=1348064992
color=17919
style=2
weight=1
background=0
filling=0
selectable=1
hidden=0
zorder=0
time_0=1348052400
value_0=1.213026
time_1=1348070400
value_1=1.213026
time_2=1348070400
value_2=1.210476
</object>
我是 MQL
和 MetaTrader 4
,
的新手,但我想要读取 .CSV
文件并绘制我在 Expert Advisor
图表中得到的值我正在处理。
每个 .CSV
文件的格式为:
;EURUSD;1
DATE;TIME;HIGH;LOW;CLOSE;OPEN;VOLUME
2014.06.11;19:11:00;1.35272;1.35271;1.35271;1.35272;4
2014.06.11;19:14:00;1.35287;1.35282;1.35284;1.35283;30
其中EURUSD
部分是另一个程序生成的_Symbol
,1
是句点,其他都是要绘制的数据。
在 Expert Advisor
中是否有任何形式可以做到这一点,或者我需要使用 Custom Indicator
?
如果是这样,我怎样做才能最简单?
P.S.: 我读取数据在一个struct
:
struct entry
{
string date;
string time;
double high;
double low;
double close;
double open;
int volume;
};
MT4 提供三种主要不同的方法
首先,
可以
重新排列数据单元格为兼容格式T,O,H,L,C,V
和
导入记录使用F2
History Center
[Import]
MetaTrader 终端的功能。可以创建自己的 Symbol
-name 以避免 History Center
数据库中的名称冲突。
这样一来,MT4
就可以使用平台的底层图形引擎创建 TOHLCV
数据的系统级插图。
其次,
人们可能会忽略底层图形引擎并
在用户控制的 GUI 覆盖层上工作
以便
实现一个算法来读取CSV
文件和
创建一组MQL4
GUI 对象算法,基于上述 CSV
文件中包含的数据。基于经验的决定是否使用 { ExpertAdvisor | CustomIndicator }
将屈服于为此目的使用 Script
,因为它是一次性处理。
人们应该意识到,MT4
代码执行生态系统在 MQL4
代码(即 运行 )和MT4.Graph
不允许在 GBPJPY
MT4.Graph
上启动的代码直接处理对象,相关FTSE.100
MT4.Graph
。是的,如果需要,可以实施一些附加组件并开发一个复杂的分布式处理模型来使这项工作 "accross" 上述上下文绑定边界。
第三,
对于某些情况,最有趣的方法是基于文件的方法,其中
可能
pre-process CSV
数据以与第二个选项类似的方式但不是在 live-MT4
进程中,而是 "beforehand" 和
生成自己的Profile
文件,保持MT4
放置约定&
- ~/profiles/<aProfileNAME>/
chart01.chr
- ~/profiles/<aProfileNAME>/
order.wnd
的内容
-~/profiles/
lastprofile.ini
,第一行<aProfileNAME>
这样,一旦MT4
会话开始,预制文件就会自动加载并显示,Q.E.D.
一个.chr
文件语法示例:
<chart>
id=130394787628125000
comment=msLIB.TERMINAL: _______________2013.04.15 08:00:00 |cpuClockTIXs = 448765484 |
symbol=EURCHF
period=60
leftpos=6188
digits=4
scale=4
graph=1
fore=0
grid=0
volume=1
scroll=0
shift=1
ohlc=1
...
<window>
height=100
fixed_height=0
<indicator>
name=main
<object>
type=10
object_name=Fibo 16762
...
<object>
type=16
object_name=msLIB.RectangleOnEVENT
period_flags=0
create_time=1348596865
color=25600
style=0
weight=1
background=0
filling=0
selectable=1
hidden=0
zorder=0
time_0=1348592400
value_0=1.213992
time_1=1348624800
value_1=1.209486
ray=0
</object>
...
<object>
type=17
object_name=msLIB.TriangleMarker
period_flags=0
create_time=1348064992
color=17919
style=2
weight=1
background=0
filling=0
selectable=1
hidden=0
zorder=0
time_0=1348052400
value_0=1.213026
time_1=1348070400
value_1=1.213026
time_2=1348070400
value_2=1.210476
</object>