//+------------------------------------------------------------------+//| Current_sar_value_summary.mq4 |//| Орлов Денис Владимирович |//| orlovkem@mail.ru |//+------------------------------------------------------------------+#property copyright "Орлов Денис Владимирович"#property link "orlovkem@mail.ru"//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init(){//----//----return(0);}//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit(){//----//----return(0);}//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start(){//----//объявляем переменныеdouble _sar_value;//текущий уровень Сарdouble _price;//текущий уровень ценыint _ticket;//возвращает количество открытых позиций
_sar_value=iSAR(0,0,0.02,0.2,0);//приравнял переменную _sar_value к текущему значению индикатора Сар
_price=Bid;//приравнял переменную _price к текущему уровню цены Бид//описываем условие покупки: если уровень цены был ниже значения сарif(_price<_sar_value){if(_price>=_sar_value)// а потом стал выше, то покупаем{Alert("Надо покупать");
_ticket=OrderSend(Symbol(),OP_BUY,1,Ask,1,Bid-10*Point,Ask+10*Point,NULL,0,0,Red);Print("OrderSend failed with error #",GetLastError());return(0);}return(0);}if(_price>_sar_value)//описываем условие покупки: если уровень цены был выше значения сар{if(_price<=_sar_value)// а потом стал ниже, то продаем{Alert("Надо продавать");
_ticket=OrderSend(Symbol(),OP_SELL,1,Bid,1,Ask+10*Point,Bid-10*Point,NULL,0,0,Red);Print("OrderSend failed with error #",GetLastError());return(0);}return(0);}//----return(0);}//+------------------------------------------------------------------+
亲爱的论坛专家,以前也几乎什么都不懂。
我正试图编写一个简单的专家顾问,使用抛物线Sar 指标作为训练工具。它的行动应该是基本的:如果价格低于Sar值,然后走高,那么我们应该在价格越过指标的那一刻准确地买入,并准确地设置止损和10点获利。而如果是反过来,那就卖掉。
问题是,它总是买进和卖出,但它是在存款有闲钱的情况下进行的,而不是一次。换句话说,只要价格上升到Sar的水平之上,他就不断地买进,直到价格更高,而一旦价格低于Sar,他就一直卖出,直到价格低于Sar。
事实上,问题是:如何使我们的EA在这些条件出现时只做一笔交易,而不是无休止地做一套交易?
以下是我的专家顾问的代码。
我想请你帮忙想办法,我保证当我成为大师的时候,我不会忽视像我这样的人的请求。
问候,丹尼斯-奥尔洛夫。
亲爱的论坛专家,以前也几乎什么都不懂。
我正试图编写一个简单的专家顾问,使用抛物线Sar指标作为训练工具。它的行动应该是基本的:如果价格低于Sar值,然后走高,那么我们应该在价格越过指标的那一刻准确地买入,并准确地设置止损和10点获利。而如果是反过来,那就卖掉。
问题是,它总是买进和卖出,但它是在存款有闲钱的情况下进行的,而不是一次。换句话说,只要价格上升到Sar的水平之上,他就会不断地买进,直到价格更高,而只要价格低于Sar,他就会一直卖出,直到价格低于Sar。
事实上,问题是:如何使我们的EA在这些条件出现时只做一笔交易,而不是无休止地做一套交易?
以下是我的专家顾问的代码。
我想请你帮忙。 我保证,当我成为大师时,我不会忽视其他像我一样的傻瓜的请求。
真诚的,丹尼斯-奥尔洛夫。
你把指标的预测值放在哪里?(在什么变量中......?)与价格值相同
以及你在哪里有指标的前值?(在哪个变量中......?),与价格值相同
重点是,前一个指标值在前一根蜡烛上,而价格在当前蜡烛上与指标值交叉。
价格也是一样的,"以前的价格值 "是什么意思,是以前的刻度线的价格吗,还是以前蜡烛的收盘价,但不是这样的。
我明白,我必须添加一些东西,但具体是什么我不明白。请帮助,这是我的第一次经验。
>> 尊敬的奥尔洛夫-丹尼斯。
重点是,前一个指标值在前一根蜡烛上,而价格在当前蜡烛上与指标值交叉。
价格也是如此,"前一个价格值 "是什么意思,是前一个刻度的价格吗,还是前一个蜡烛的收盘价,但事实并非如此。
我明白,我必须添加一些东西,但具体是什么我不明白。请帮助,这是我的第一次经历。
真诚的,奥尔洛夫-丹尼斯。
那你明白你说的话吗?你是在检查某一特定时间的值。
两个相互排斥的条件。那么他是什么时候变高的呢?
那你明白你说的话吗?你是在检查某个时间的值。
两个相互排斥的条件。什么时候变高了?
也许我制定的评论是错误的,但本质仍然是真实的,价格水平已经高于指标值,你要买,它就买,但你要做一次,只要存款有钱,EA就会买。你只需要限制交易的数量。一次不做超过一个,这就是没有用的。
但如果历史上有一个卖出订单,然后专家顾问关闭了它(在历史类型中,它(其关闭)显示为T/P或S/L - 它将被视为最后一个?
如果一个订单(买入或卖出)最后被关闭(专家顾问关闭了它,或者它触发了t/p或s/l)并在以下条件下通过
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MagicNumber){
如果一个订单(买入或卖出)最后被关闭(专家顾问关闭它,或t/p或s/l被触发)并通过条件
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MagicNumber){
是的,这可能是因为我把OrderMagicNumber()从代码中排除了。
我想避免在订单被关闭后重新开启。我想让我的订单在平仓后不会重新开仓(有时会发生重新开仓的条件仍然存在)。 卖出的情况也是如此。 我认为在我的条件中说明如果我有一个买入头寸并且有利润--而不是重新开出买入头寸,会很酷)。
((
是的,这可能是因为我在代码中排除了OrderMagicNumber()。
我想让订单在关闭后不会重新打开。我想,如果我在条件中指定,如果我有一个买入头寸并且有利润--不要再重新打开买入,那会很酷。 但它仍然打开--混蛋!))))。
((
控制同时开仓的订单数量的最简单方法
阅读OrderSend( ...)的描述。
当一个订单被发送到服务器时,魔法号码(magik)被分配给它。
这主要是用来识别待定订单/仓位。
即,使EA不接触 "外来 "订单。这是由EA或脚本完成的。
魔术师不能手动设置。你自己在EA/脚本中设置规则。
魔术师通常是一个静态的,但必要时也可以是动态的。
看看Kodobase的一些简单例子,你就会明白了。
为什么你不能通过票号来识别 "你的 "订单?无论有多少个专家顾问在运行,它们都是独一无二的。
例如,一个EA开了一个订单,记住了这个票据,关闭了它,又忘记了它。
为什么你不能通过票号来识别 "你的 "订单?无论有多少个专家顾问在运行,它们都是独一无二的。
例如,一个EA开了一个订单,记住了票据并忘记了它,之后它又关闭了它。