При создании автоматических торговых систем возникает необходимость написания алгоритмов анализа рыночной ситуации и генерации торговых сигналов, алгоритмов сопровождения открытых позиций, систем управления капиталом и контроля риска торговли. После того как код модулей написан самой сложной задачей является компоновка всех частей и отладка...
哦,非常感谢你,有了这么多的信息,你可以完成很多事情......
我马上就要出差了,所以我想深入研究我所得到的材料,但编码...我也可以在一张纸上做,这将是一个很好的培训工具......
问候,罗曼
这只是你需要知道的一小部分,是程序代码海洋中的一粒沙。但仅仅知道使用什么、在哪里使用以及何时使用是不够的!
如果我们从"机器人创造"这一主题的名称出发,那么你需要有一个 收支平衡(盈利,或任何你想要的称呼)的交易策略,然后才学习MQL5编程语言。
顺便说一下,MT5终端的MetaEditor有MQL5向导,在它的帮助下,你可以很容易地获得现成的专家顾问代码,使用交易信号的模块,而这些模块是在流行指标的基础上创建的,不需要任何编程语言的知识。在MQL5向导的帮助 下,你可以快速建立一个专家顾问,并测试你的策略,如果它只基于指标。以下是关于使用MQL5向导建立交易机器人的文章链接:https://www.mql5.com/ru/articles/171。
真诚的,弗拉基米尔。
57岁,有一点。而你关于 方式的 问题的答案已经知道了,我引用一下。
"Roman Zhilin:不,在自由职业中没有任何程序,你可以根据自己的需要自行发展。而要为我的错误负责的将是我自己,而不是第三方程序员。因此,你将不得不学习,学习,编码,跌跌撞撞,改进你的策略,再学习"。
真诚的,弗拉基米尔。
一个很好的选择,谢谢你。
让我想起了列宁的遗嘱 :)但这是对的,学习永远不会太晚。
为了了解你需要什么样的专家顾问,你应该首先开始着手研究它。
增加了两个关闭仓位 的按钮
......我仍然不明白以"回报"一词开头的恒定短语的含义。
谁回来了,它回到了谁的身边,它回到了哪里,它为什么会回来?我还是搞不清楚......
也许我可以解释一下。
假设你有一个符号(象征,如EUR/USD)在屏幕上振荡,一个程序/顾问/机器人在终端运行。机器人正在执行你填入的代码。而这段代码有这些字符串。
"orderSelect "是一个交易函数,它选择了一个已经打开的订单,以便进一步处理它。//在这个例子中,如果订单选择失败(...==false),"if "函数的进一步执行会被 "break "命令打断。
下一步。我们使用OrderSelect 交易功能 选择了该订单。现在我们用它来工作,有一个特定的顺序。为了简单起见,我们将采取一个条件,即我们只有两个订单未结。
接下来,我们输入一个变量OpenPrice[双倍类型],并将我们选择的订单的价格值分配给它(代码部分OpenPrice=OrderOpenPrice(); )
这里为你解释一下参数的RETURN是什么意思。OrderOpenPrice函数返回 当前工具价格的值 。也就是说,在程序向服务器请求当前价格后,它向你返回 该价格的值,并将该值分配给一个变量。
添加MACD 指标
增加了MACD指标
基础知识已经存在--现在就看你的了
我也许能解释一下。
假设你目前有一个符号(如欧元/美元)在你的屏幕上波动,并在终端运行一个程序/顾问/机器人。机器人正在执行你填入的代码。而这段代码有这些字符串。
"orderSelect "是一个交易函数,它选择了一个已经打开的订单,以便进一步处理它。//在这个例子中,如果订单选择失败(...==false),"if "函数的进一步执行会被 "break "命令打断。
下一步。我们使用OrderSelect 交易功能 选择了该订单。现在我们用它来工作,有一个特定的顺序。为了简单起见,我们将采取一个条件,即我们只有两个订单未结。
接下来,我们输入一个变量OpenPrice[双倍类型],并将我们选择的订单的价格值分配给它(代码部分OpenPrice=OrderOpenPrice(); )
这里为你解释一下参数的RETURN是什么意思。OrderOpenPrice函数返回 当前工具价格的值 。也就是说,在程序向服务器请求当前价格后,它向你返回 该价格的值,并将该值分配给一个变量。
谢谢你的澄清。我希望这也能帮助罗曼掌握编程语言。
问候,弗拉基米尔。
你好!嗯,也许有人可以帮助我...
目前正在处理订单开仓/平仓机制,遇到了平仓的问题。
代码很简单。该算法的想法是在图表上绘制周期为100的MA(移动平均线)。如果前一根蜡烛[1]在 MA上方开盘 ,并在 MA下方收盘 ,那么下一根蜡烛[0]就会打开一个卖出的 订单。
//(购买的条件是相反的,我不作解释了)
为了关闭订单,需要满足以下条件--当前价格已经超过了订单开仓价格的设定值,例如,40点。
例子: 一手以 Bid= 1.20045 开启,它应该以 Ask= 1.20005 收盘。
打开和关闭的代码被装入2个相应的函数中,这些函数又被OnTick()函数调用。事实上,每一个tick都应该检查收盘条件,但事实上,价格可能会下降到指定水平(收盘水平)以下,但订单不会关闭。截图和代码见附件。
你好!嗯,也许有人可以帮助我...
目前正在处理订单开仓/平仓机制,遇到了平仓的问题。
代码很简单。该算法的想法是在图表上绘制周期为100的MA(移动平均线)。如果前一根蜡烛[1]在 MA上方开盘 ,并在 MA下方收盘 ,那么下一根蜡烛[0]就会打开一个卖出的 订单。
//(购买的条件是相反的,我不作解释了)
为了关闭订单,需要满足以下条件--当前价格已经超过了订单开仓价格的设定值,例如,40点。
例子: 一手以 Bid= 1.20045 开启,它应该以 Ask= 1.20005 收盘。
打开和关闭的代码被装入2个相应的函数中,这些函数又被OnTick()函数调用。事实上,每一个tick都应该检查收盘条件,但事实上,价格可能会下降到指定水平(收盘水平)以下,但订单不会关闭。我在此附上截图和代码。
在https://www.mql5.com/ru/forum/160683/page767#comment_10725713,有一个论坛主题
你可能会在那里更快地得到帮助。
真诚的,弗拉基米尔。