//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 03.08.2008 |//| Описание : Рассчитывает количество ордеров по типам. |//+----------------------------------------------------------------------------+//| Параметры: |//| mo - массив количества ордеров по типам |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+void CountOrders(int& mo[],int mn=-1){int i, k=OrdersTotal();if(ArraySize( mo)!=6)ArrayResize( mo,6);for( i=0; i< k; i++){if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)){if( mn<0||OrderMagicNumber()== mn) mo[OrderType()]++;}}}
int a;......int start(){//----if(Time[0]== prevtime)return(0);//ждём нового бара
prevtime =Time[0];//если появился новый бар , включаемсяif( isFractalUp()> isFractalDn()){//если это Down-фрактал
a =iLow(NULL,0, GetFractalBar(NULL,0,0));Comment( GetFractalBar(NULL,0,0));}
而当我在图表的角落里显示评论数字时,一切都很好。我看到左角有分形的条形的最小价格值。
if( isFractalUp()> isFractalDn()){//если это Down-фрактал
a =iLow(NULL,0, GetFractalBar(NULL,0,0));Comment(iLow(NULL,0, GetFractalBar(NULL,0,0)));}
但在一般情况下,进一步说是不清楚的!只要我在注释中插入变量 "a "而不是函数本身,注释就会在角落里返回1,而不是价格值!在这里:
if( isFractalUp()< isFractalDn()){
a =iLow(NULL,0, GetFractalBar(NULL,0,0));Comment( a);}
我认为这是有可能的。显然,有必要在每个级别(交叉点)检查当前未结头寸的手数是多少。而正是根据这个标准,我们应该实施一个关闭机制 !
这类函数(返回手数)在该分支中可用。请看第。17 и 27
非常感谢您!万岁!现在我可以继续前进了,非常感谢!"。
为了确定是否需要在OpenPosition()函数中进行额外的手数检查,你需要看看你,如何计算手数以及在哪里调用;我在分支中没有看到这个函数
也许我错过了。
如果像这样计算,https://championship.mql5.com/2012/ru/news, 你可能会得到一个134的错误,并错过冠军 :-)
嗨,KimIV.发送了一件事,将不得不把它写回去。我不太擅长编程,而且我正在学习成为一名交易员,为期3周。我的语法也不怎么样。
这里。我的问题是这样的。 是否有可能使用CCi指标制作一个EA?
水平CCi 250,50,-50,-250。我们的想法是,当它分别达到(跨越)-50和50时,我将卖出或买入。考虑交易应该何时停止。
1然后(比方说有一笔买卖)图形穿过-250,然后它在相反的方向穿过-250(你可以在图片上看到)。
2 图中没有达到250,并交叉回到50。
对于购买来说,情况是一样的,但反之亦然。
报价欧元/美元,任何时间框架。
这样一个毛绒绒的EA需要多少钱????
如果是同样的价格,你能提供更好的东西吗?
提前感谢。我希望如此。好吧,我去上了一个外汇课程。
顺便说一下,外汇是一种真正的赚取面包和黄油的方式????
向大家问好。
发现了这个指标,对其进行了一些改变--构建了良好的趋势线。
炮制一个函数会很有趣...(这是一种KimIV的要求)。
关于。
OpenPosition("GBPJPY", OP_SELL, 0.1, pb+23*po, pb-44*po);
也许调用OpenPosition("GBPJPY",OP_SELL, 0.1, 23, 44)会更好。
这个建议,Sergei,增加了使用止损的便利性,并以点为单位进行设置。那么,由价格水平设定止损和止盈的情况呢?例如,停在前一栏的低点或高点。或者通过某种线路。是否在调用函数前将其转换为点数,并在函数中转换回价格?这是一个多余的操作。所以我将保持现状。
我们将在后面考虑GetSizeLot() 函数(顺便说一下,它现在被称为GetLots())。首先,我们需要完成使用b-ForTest.mqh 和b-Positions.mqh 库。
测试员的CountOrders()函数。
在我的测试(仅用于MT4的测试器)版本的Expert Advisors中,函数CountOrders() 取代了以下函数:ExistOrders(),ExistPositions(),NumberOfOrders() 和NumberOfPositions()。也就是说,它可以提供任何类型的头寸或订单的存在信息,以及每种类型的交易数量信息。这样的交易所有其自身的优势,表现在一次性参考一个tick的订单基础,并一次性获得所有必要的信息。而上述函数,特别是在一起使用时,它们中的每一个都是独立地与一个相同的订单基数一起工作,所以它们会重复进行相同的调用。因此,CountOrders() 函数可以将一次通过的时间减少几秒钟,从而可以节省几个小时的优化时间。
函数CountOrders()接受以下参数。
P.S. 附上一个脚本,用于在线测试CountOrders()函数。
下午好,伊戈尔和其他人也是。我在使用GetFractalBar(NULL,0,0)函数时遇到一个问题。- 它按其编号返回分形条数。更准确地说,问题不在功能上。但在它附近的某个地方。
用这种设置显示评论时,一切都很好。我在图表的角落里保存了条形图的编号。
而当我在图表的角落里显示评论数字时,一切都很好。我看到左角有分形的条形的最小价格值。
但在一般情况下,进一步说是不清楚的!只要我在注释中插入变量 "a "而不是函数本身,注释就会在角落里返回1,而不是价格值!在这里:
我已经坐了三个小时了,我不明白什么是错的!请告诉我,如果你能....只要我在注释中插入变量 "a "而不是函数本身,注释就会在角落里返回1,而不是价格值 !
你已经将变量 "a "声明为一个整数变量,即
int a;
你应该把它声明为一个实数变量,即
双A。
测试员的ModifyOrder()函数。
这是第7页 公布的ModifyOrder() 函数的简化版,旨在改变一个预先选择的订单或头寸的绝对价格水平。
ModifyOrder() 函数接受以下参数。