iMA_handle=iMA("EURUSD",PERIOD_H1,40,0,MODE_SMA,PRICE_CLOSE); //连接指示器并获取其句柄 ....... ChartIndicatorAdd(ChartID(),0,iMA_handle); // 将指标添加到价格图表这样是行不通的。但如果去掉符号和时间,一切就都好了。
iMA_handle=iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE);
祝贺你
非常简单,代码写得很好...我认为,通过引用库,你用几行代码就完成了我用近 100 行代码才完成的工作(仅仅是打开多头仓位和关闭多头仓位)。
我特别提到这几行:
if(m_Position.Select(my_symbol))//如果该符号的位置已经存在
{
if(m_Position.PositionType()==POSITION_TYPE_SELL) m_Trade.PositionClose(my_symbol);//这是一个卖出仓位,然后平仓
if(m_Position.PositionType()==POSITION_TYPE_BUY)return;//or 否则,如果是买入头寸,则退出
}
m_Trade.买入(0.1,my_symbol);// 如果到此为止,则表示没有头寸;然后打开
}
if(iMA_buf[1]<Close_buf[1] && iMA_buf[0]>Close_buf[0])//if the indicator values were less than the closing price and become greater
{
if(m_Position.选择(my_symbol))//如果该符号的位置已经存在
{
if(m_Position.PositionType()==POSITION_TYPE_BUY) m_Trade.PositionClose(my_symbol);//这是一个买入仓位,然后平仓
if(m_Position.PositionType()==POSITION_TYPE_SELL)返回;//or 否则,如果是卖出仓位,则退出
}
m_Trade.卖出(0.1,my_symbol);// 如果我们到了这里,说明没有头寸;那么我们打开
}
我唯一遗漏的可能是一个仅在新条形图出现时进行交易的命令。 在www.mql5.com/en/forum/5762 上有过讨论。
我使用 mogplus8 发布的以下代码:
static int LastBarCount=0;
if(Bars(_Symbol,_Period)>LastBarCount)
LastBarCount=Bars(_Symbol,_Period);
否则
返回;
我对您关于 "贸易 "的说法有些不解。
文章中介绍的交易与艺术http://mqlmagazine.com/leading-article/orders-positions-and-deals-part-i/ 中的 "封印 "非常接近。 它们是一回事吗?
顺便说一下,在链接的页面中,作者确实说过:在市场上下达的每个订单本身就是一笔交易,有自己的结果,与其他交易无关。
我把这些话贴在这里,只是为了向那些关注评论的人澄清可能存在的误解。
谢谢。
- mqlmagazine.com
新文章 初学者快速入门或简明指南已发布:
亲爱的读者,您好!本文中,我们会试着为您解释并向您呈现可以如何轻松快速地掌握创建EA交易、使用指标等等原则的要领。本文面向初学者,所以不会包含任何难懂或晦涩的示例。
作者:Dmitriy Parfenovich