[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 74

 
Figar0 >> :

这到底是什么设计?

是的,我已经弄明白了,我通过测试进行了检验。

>>很明显,我只是删除了指标值,有什么疑惑?

 
1Rakso писал(а)>>

我已经想明白了,我通过测试进行了测试。

很明显,我只是删除了指标值,那么有什么疑惑呢?

只是不清楚是什么,如果你明白你问的是什么,你怎么能回答?

如果你不知道它是什么,你可能会使用它,因为你不知道与Bid比较什么。它是正确的。

 
anat >> :



请告诉我如何在这个结构中插入一个条件if(iSAR(NULL,0,step0,0.1,0)<Close[0]),这时,例如我们有未平仓的买入头寸,在所有买入头寸关闭之前,我们不开卖出头寸。换句话说,一个交易周期,我们买入3个头寸,等到这三个头寸都平仓。仓位只能通过止损或止盈来关闭。所有头寸都关闭,等待信号,得到信号,买入或卖出(取决于信号)3个头寸,等等。对 "来自KimIV的有用功能 "进行了研究。你可以使用函数CountOrders()、ExistOrders()、ExistPositions()。但我如何实际地插入它们呢?如果((iSAR(NULL,0,step0,0.1,0)>Close[0])&&ExistPositions(NULL,OP_SELL)==false)这个结构不起作用。我明白我需要插入一个逻辑变量,但在实践中我如何做到这一点?我有一点不明白。


阅读整个主题。我已经找到了解决方案--将所有的代码用大括号括起来,并在前面写上if (OrdersTotal( ) == 0)。粗糙的,但它是有效的。我想使用bool变量打开任何数量的订单,在一个条件的指导下,如果(OrdersTotal() >=maxOpen)返回。
 
anat >> :
我已经读了整个分支。解决办法如下--将所有的代码放在大括号内,在它们之前写上if (OrdersTotal( ) == 0)。粗糙的,但它是有效的。我想使用bool变量打开任何数量的订单,基于条件if (OrdersTotal() >=maxOpen) 返回。

如果你想把Total_sell和Total_buy分开,尝试使用函数

int CalculateCurrentOrders(string symbol) from SimpleMACD

int CalculateCurrentOrders(int Type)// OP_BUY , OP_SELL
  {
   int buys=0;
//----
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() )
        {
         if(OrderType()== Type)  buys++;
        }
     } return( buys);
  }
 
请告诉我哪个函数返回当前蜡烛的收盘时间?
 
Diver-si >> :

这不是策略,这只是一个需要检查的假设。顺便问一下,为什么EA不做交易?我不明白为什么。

>> 我不知道。我在测试器上运行了它,它成功了。也许你在参数上犯了一个错误。或者是你没有勾选允许EA交易的复选框。而一个主要TF的时间是以分钟为单位设置的!也就是说,在TFUP变量中,你必须指定不是m5而是5,不是m30而是30,不是H1而是60,等等。

 
gmMarat писал(а)>>
请告诉我哪个函数会返回当前蜡烛的收盘时间。

当前蜡烛的关闭时间是什么?当前的蜡烛还没有关闭,否则它就不再是当前的了,我们可以假设这个时间大约是Time[0]+Period()*60

 
Figar0 >> :

当前蜡烛的关闭时间是什么?当前的蜡烛还没有关闭,否则它就不再是当前的了,我们可以假设这个时间大约是Time[0]+Period()*60

Figar0 谢谢,这正是我需要的。

 
如何在一手交易中确定一个点的价值? 有人建议我使用MarketInfo(Symbol(),MODE_LOTSIZE)*Point的公式,但这是绝对错误的!我想知道的是,如何确定一个点的价值?对于USDJPY,它返回100000美元*0.001=100美元,实际上是一美元,就像大多数符号一样。
 
Цена 1 пункта для стандартного лота:
 
 double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     )      ;
double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  )      ;
double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE )      ;

double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота
Цена 1 пункта для ордера известного размера "ad.OrderSize":

double ad.OrderPoint   = ad.NominalPoint * ad.OrderSize                 ;
原因: