如何从 MQL4 中的 CSV 文件绘制图表?

How to draw a chart from a CSV-file in MQL4?

我是 MQLMetaTrader 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部分是另一个程序生成的_Symbol1是句点,其他都是要绘制的数据。

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
导入记录使用F2History 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>