EA: ManualTradeOnStrategyTester

 

ManualTradeOnStrategyTester:

如何能有一种简单的方法, 让 EA 可以从外部链接手动订单命令, 并在 MetaTrader 5 策略测试器里使用它。

作者: SearchSurf

 

以下是在 VisualBasic2010 上编写的简单面板代码示例:(文件路径应与您的终端 "常用文件 "文件夹类似)

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim filepathOut1 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"
        Dim filepathOut2 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"
        Dim filepathIn As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"

        If (My.Computer.FileSystem.FileExists(filepathOut1)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut1)
        End If

        If (My.Computer.FileSystem.FileExists(filepathOut2)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut2)
        End If

        System.IO.File.Create(filepathIn).Dispose()

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim filepathOut As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"
        Dim filepathOut2 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"
        Dim filepathIn As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"

        If (My.Computer.FileSystem.FileExists(filepathOut)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut)
        End If

        If (My.Computer.FileSystem.FileExists(filepathOut2)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut2)
        End If

        System.IO.File.Create(filepathIn).Dispose()

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim filepathOut1 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"
        Dim filepathOut2 As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"
        Dim filepathIn As String = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"

        If (My.Computer.FileSystem.FileExists(filepathOut1)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut1)
        End If

        If (My.Computer.FileSystem.FileExists(filepathOut2)) Then
            My.Computer.FileSystem.DeleteFile(filepathOut2)
        End If

        System.IO.File.Create(filepathIn).Dispose()

    End Sub
 
SearchSurf:

下面是在 VisualBasic2010 上编写的简单面板代码示例:(文件路径应与您的终端常用文件的位置文件夹相似)

您好,感谢您的努力和分享!

我一直在寻找 Mt5 上的手动测试器;我使用的是旧版的 FX Blue Trading Simulator v2 (http://www.fxblue.com/appstore/39/mt4-trading-simulator)

但不幸的是,它只能在 Mt4 上使用,无法让我在目前的 Mt5 账户上测试股票 CFD 的策略。

我已经安装了您的测试工具,并成功创建了模板,但问题是我无法进行任何交易,因为我无法进入面板。

后来我意识到它是在 Vb10 上创建的,所以我下载了 Visualbasic,并尝试复制和粘贴您的代码来创建我的面板(但没有成功)。

我从来没有使用过 Vb10,也没有编写过代码;我只是在一个新的空白项目中复制了你的代码,更改了文件路径,以找到我的终端常用文件。

我无法调试也无法发布面板,因为 Vb10 会返回这个错误:

请您以任何方式帮助我创建面板,以便我可以试用完整的、可运行的策略测试器

非常感谢,并再次感谢您为社区做出的贡献!

马特奥

FX Blue Trading Simulator v2
FX Blue Trading Simulator v2
  • FX Blue Labs - www.fxbluelabs.com
  • www.fxblue.com
The FX Blue Trading Simulator converts the MetaTrader 4 strategy tester into a tool for practising manual trading using historic data. You can use the Simulator to test how well you would have fared under particular historic market conditions - and/or to check how well your favourite indicators would have guided you in the past. The Simulator...
 
<br/ translate="no">
mbertox:

您好,感谢您的努力和分享!

我一直在寻找 Mt5 上的手动测试器;我使用的是旧版 FX Blue Trading Simulator v2(http://www.fxblue.com/appstore/39/mt4-trading-simulator)

但不幸的是,它只能在 Mt4 上使用,无法让我在目前的 Mt5 账户上测试股票 CFD 的策略。

我已经安装了您的测试工具,并成功创建了模板,但问题是我无法进行任何交易,因为我无法进入面板。

后来我意识到它是在 Vb10 上创建的,所以我下载了 Visualbasic,并尝试复制和粘贴您的代码来创建我的面板(但没有成功)。

我从来没有使用过 Vb10,也没有编写过代码;我只是在一个新的空白项目中复制了你的代码,更改了文件路径,以找到我的终端常用文件。

我无法调试也无法发布面板,因为 Vb10 会返回这个错误:

请您以任何方式帮助我创建面板,以便我可以试用完整的、可运行的策略测试器。

非常感谢,并再次感谢您为社区做出的贡献!

马特奥

希望能帮到您...

VB10:

1.打开 visual studio 2010

2.点击 "文件 "部分,选择新建项目,然后点击 Windows 窗体应用程序

3.一个新表单就会出现:


4.在表单上添加三个按钮:


您可以将按钮文本更改为 "购买"、"出售"、"关闭",右键单击按钮,然后单击属性:(您可以稍后执行此操作)

5.双击所有 3 个按钮,然后就会看到下面的内容:


所有私人子按钮都应位于公共类 Form1 内...

6.复制每个按钮的代码,现在你的表单看起来就像这样了:


7.别忘了找到你的 Mt5 公用文件夹,文件路径应与代码上的文件夹一致。

我的文件夹是这样的:"C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\xxx.txt"

找到终端常用文件夹的最快方法是进入 MT5 MetaEditor,转到文件,然后点击 "常用数据文件夹":

然后将路径文件夹复制到您的 VB10 代码文件路径。

8.接下来在 VB10 上转到 "文件",然后单击 "全部保存",记住您将保存 VB10 程序的文件夹。

稍后您会用到它。


在本例中,我将程序命名为 "MyTradingPanel"...

9.试运行,开始调试,如果操作正确,错误列表中应该不会出现错误。


10.仍在调试时,找到 MT5 常用文件夹,看看点击 VB10 面板按钮时是否出现文件。

找到终端常用文件夹的最快方法是进入 MetaEditor,转到文件,然后点击常用文件。

11.测试你的按钮,你应该会看到一个文本文件出现在文件夹上。


12.测试完按钮后,在离开文件夹前手动删除在文件夹上创建的文件。

如果以后使用,EA 应删除这些文件。

13.现在停止调试。

14.现在转到 "Build(构建)"部分,点击你正在处理的项目。(我之前保存的项目名为 MyTradingPanel

)。你应该会看到下面关于 VB10 "构建成功 "的备注。



14.转到你的 VB10 保存文件夹(这是你之前保存项目的文件夹)、

在"\Bin\Debug "文件夹中找回应用程序。



15.你可以将应用程序文件复制粘贴到任何你想要的文件夹中,或者放在桌面上以方便访问。

16.在 MT5 策略测试仪上运行 EA,现在就可以使用面板了。

17.这样,您就完成了 VB10 的基础速成课程:)

祝你好运,希望你能成功运行。

 
mbertox:

你好,感谢你的努力和分享!


我从未使用过 Vb10,也没有编写过代码;我只是在一个新的空白项目中复制了你的代码,更改了文件路径,以定位我的终端的常用文件。

我无法调试也无法发布面板,因为 Vb10 会返回这个错误:

请您以任何方式帮助我创建面板,以便我可以试用完整的、可运行的策略测试器。

非常感谢,并再次感谢您为社区做出的贡献!

马特奥


保存您的项目后......您可能需要在构建之前检查一下您的 VB 设置:

1.在 "解决方案资源管理器 "右侧,右键单击项目,然后转到属性。


2.在 Properties(属性)中,检查 "Compile"(编译)下的 "Build output path"(构建输出路径):(默认情况下 >>> "bin/Debug/"),这应该会将输出保存到您保存项目文件的位置,但您可以浏览并更改输出文件的位置。


检查调试部分,转到 "选项和设置"......或 "工具"、"选项"......,也检查(双击)"项目和解决方案",点击 "构建和运行",在 "运行时,当项目过时时:"中选择 "始终构建"。

希望这能解决你的构建问题。

 
SearchSurf:


保存项目后...... 在构建之前,您可能还需要检查一下 VB 设置:

1.在 "解决方案资源管理器 "右侧,右键单击项目,然后转到属性。


2.在 Properties(属性)中,检查 "Compile"(编译)下的 "Build output path"(构建输出路径):(默认情况下 >>> "bin/Debug/"),这应该会将输出保存到您保存项目文件的位置,但您可以浏览并更改输出文件的位置。


检查调试部分,转到 "选项和设置"......或 "工具"、"选项"......,也检查(双击)"项目和解决方案",点击 "构建和运行",在 "运行时,当项目过时时:"中选择 "始终构建"。

希望这能解决您的构建问题。

感谢您的快速回复!

我用 Vb10 玩了一整天,找到了如何在表单上以图形方式显示按钮的方法,但却无法调试或发布面板。

然后我随手双击了日志上的第一个错误,发现程序建议我修复!

你无法想象我在按下调试按钮后有多高兴!:D

我刚刚在 metatrader 上做了一次全面测试,并打开论坛通知您,这就是您的回复!

也许您的修复方法更可靠,我想按照您的指示创建一个新版本:)

正如我告诉过你的,我从来没有编写过代码,但这次的经历让我很感兴趣...

我在想,如果能实现一个选择手数的方框和一个 SL / TP 功能(也许可以在图表上拖动),那该有多酷。

这些功能必须在 mql5 ea 上编码,然后链接到面板?或者 "仅仅 "是 Vb10 的事情?

我不认为我可以做到这一点。但我想知道需要做多少工作以及成功所需的编码能力水平!:)

总之,我现在拿着我的新交易玩具非常高兴!(漫漫长夜即将来临我整个周末都在模拟和研究!);D

再次感谢您!

再见

马特

 
mbertox:

感谢您的快速回复!

我用 Vb10 玩了一整天,找到了如何在表单上以图形方式显示按钮的方法,但却无法进行调试,也无法发布面板。

然后我随手双击了日志上的第一个错误,发现程序建议我修复!

你无法想象我在按下调试按钮后有多高兴!:D

我刚刚在 metatrader 上做了一次全面测试,并打开论坛通知您,这就是您的回复!

也许您的修复方法更可靠,我想按照您的指示创建一个新版本:)

正如我告诉过你的,我从来没有编过代码,但这次的经历让我很感兴趣...

我在想,如果能实现一个选择手数的方框和一个 SL / TP 功能(也许可以在图表上拖动),那该有多酷。

这些功能必须在 mql5 ea 上编码,然后链接到面板?或者 "仅仅 "是 Vb10 的事情?

我不认为我可以做到这一点。但我想知道需要做多少工作以及成功所需的编码能力水平!:)

总之,我现在拿着我的新交易玩具非常高兴!(漫漫长夜即将来临我整个周末都在模拟和研究!);D

再次感谢您!

再见

马特

有一种方法可以将按钮嵌入 EA 本身,以便在 MT5策略测试仪 上使用,但需要使用一些复杂的代码进行高级编程。 我想这样我就可以利用 mql5 上那些简单的基本代码,并能够在策略测试仪上使用它。我只是个小白,并不是专业程序员,在 MQL5 上也还在学习过程中。请继续关注代码库,也许有人会找到一种完全在 mql5 上进行简单编码的方法......如果我有机会并设法创建了一个,我会发布相同的内容:) ...祝您玩得开心,希望实践能让您在交易中获利更多:)
 

我的一位朋友问我能否在此 EA 上使用 Excel 宏按钮,因为 Excel 上已经有一个内部 VB:....,我想我不妨与大家分享一下,如果你没有创建过 Excel 宏,这个按钮会有点长而且比较麻烦,但如果你已经创建过了,它其实是最基本的东西,而且看起来很简单。

使用 Excel2007:

1.首先自定义 Excel 快速访问工具栏,以方便访问按钮。

- 右键单击 "主页",然后选择 "在功能区下方显示快速访问工具栏"。

- 单击 "快速访问",然后向下滚动以选择更多命令,选择 "自定义",从

不从功能区中选择命令,然后滚动并选择按钮,单击添加,然后单击确定。





2.点击按钮工具,然后在 excel 上创建一个按钮。如果没有出现,请右击按钮,选择 "分配宏"。

在 "分配宏 "窗口中,键入一个名称(在本例中,我将其命名为 EApanel),然后单击 "新建",再单击 "确定"...

点击 "确定 "后,会出现一个 Excel Visual Basic 窗口。


- 用以下代码替换当前出现的代码。(先删除编辑窗口内的所有内容,然后键入或复制粘贴整个新代码)、

注意:输入代码后,先不要保存,否则,如果你以前没有做过这个宏,就会感到困惑。

!!!!注意:MT5 通用文件夹的位置应与您自己的文件夹路径一致!!(文件名中的文件路径为"......")!(代码中文件名中的文件路径是我的文件夹位置,请将其编辑为您自己的文件夹位置路径。

打开 MT5 MetaEditor,在 "文件 "中选择 "打开常用数据文件夹",即可轻松查看文件夹路径。


Dim FileNameIn As String

Sub Buy_Click()

FileNameIn = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\buy.txt"
If DoesFileExist(FileNameIn) = 0 Then
 Open FileNameIn For Output As #1 ' create a new file if does not exist
Else
End If
Close #1

End Sub


Sub Sell_Click()

FileNameIn = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\sell.txt"
If DoesFileExist(FileNameIn) = 0 Then
Open FileNameIn For Output As #1 ' create a new file if does not exist
Else
End If
Close #1

End Sub



Sub Close_Click()

FileNameIn = "C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\close.txt"
If DoesFileExist(FileNameIn) = 0 Then
Open FileNameIn For Output As #1 ' create a new file if does not exist
Else
End If
Close #1
End Sub


Function DoesFileExist(FileName As String) As Byte
' returns 1 if FileName exists, otherwise 0
If Dir(FileName, vbNormal) <> "" Then
 DoesFileExist = 1
Else
 DoesFileExist = 0
End If

End Function


5.现在返回 Excel(不要关闭 vb 窗口)。在 Excel 中...首先将 Excel 保存为 MACRO ENABLED EXCEL FILE... 选择 "另存为",然后选择 "Excel Macro Enabled workbook"。它应该是启用了宏的...

您可以将其保存在任何您想要的文件夹中,我也将其保存为 EApanel,并在 vb 宏中命名,只是为了便于参考,并不一定需要相同的名称。



6.现在回到 Visual Basic 窗口...保存 vb 宏,从文件中单击保存(您的 VB 宏)。

(如果还想保存 module1.bas,请选择导出并将其放在一个文件夹中,请注意,宏 vb 文件保存在一个仅供 excel 使用的特殊文件中、

保存 module.bas 文件有助于备份您制作的宏代码)。

7.现在返回 Excel,再创建两个按钮或复制 Button1 并粘贴,再创建两个按钮(创建另一个按钮或直接复制粘贴第一个按钮)。

8.重新命名按钮,右击并选择 "编辑文本",将三个按钮分别命名为买入、卖出和平仓。

9 现在为每个按钮分配宏......在 Buy 按钮上单击右键并选择分配宏,将其分配为 Buy_click...



10.在两个按钮上做同样的操作,但将它们分别分配给各自的点击分配...卖给 Sell_click,关闭给 Close_click。

11.保存 Excel......再次注意:应将其保存为 MACRO ENABLED WORKBOOK(因为之前已经保存过,所以现在只需点击 "保存 "即可)。

12.回到 Visual Basic 窗口,点击 "调试",然后点击 "编译 VBAproject"。



13.13. 测试一下,最小化 Excel,然后打开 EA 所在文件夹,测试按钮,每次点击都会在 EA 所在文件夹中出现一个文件...

这需要一到两秒的时间,但在策略测试器上单独使用时会更快一些。

此时,当您离开位置文件夹时,请先手动删除文本文件,否则,如果您将文本文件留在文件夹中,EA 在第一次打开时看到文件夹中的第一个文本文件,就会触发命令。


14.再次保存 Excel 文件并关闭 Excel。同时关闭 Excel Visual Basic。

15.注意!!根据默认的 Excel 宏安全设置,每次打开宏驱动的 Excel 文件时都可能会出现警告,这是 Excel 的一项安全功能,用于警告宏文件正在运行。

(如果出现这种情况,如果要求启用,请选择 "启用",以使宏起作用,否则按钮将不起作用,因为宏已被禁用)。



就这样,一切准备就绪,只需打开 Excel 和在策略测试器上运行的 EA,然后开始练习:)

练习交易愉快...... :)

(评论更新日期:2016 年 12 月 12 日)

[删除]  
Automated-Trading:

ManualTradeOnStrategyTester

作者:SearchSurf

好吧,我终于等到了,还不到 7 年,也许它现在仍然适用。
[删除]  
不,我还没等到,.....拄着拐杖的程序员才不关心人工测试,需要人工测试的是交易员,而不是程序员。
 
如何与远离编程的人进行交易?