[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 222

 
ramirez17:

请指出一个错误。


除以0--在日志中应该有一个零除法

在第一遍时

i+Sell_bars-1
你已经超出了允许的Bars尺寸
 
ramirez17,在随机性中寻找最大值/最小值,用它们的比率来代替随机性公式是比较容易的
 
maxstah:

你好,请告诉我在哪里可以找到一个重新绘制日线的指标,使其在不同的时间开始。

例如:终端时间为00:00。在指标的输入参数中,我们把:+4。现在每天的条形图在4点开始。

预先感谢你。

MT4有一个内置的转换器。服务 -> 报价档案
 

你好。

作为一个初学者,我有一个问题。

如何获得未结头寸 的当前利润数据;如何获得当前余额数据。

 
Roger:
比如,新的匹诺曹正在寻找一个可靠的神奇领域。别傻了)。

比如,聪明的彼得罗辛想开个玩笑...)
 

伙计们,错误在哪里....,我已经解决了...这是代码...

当用浮动点差(多加一个数字)在Termenal上交易时,顾问写了一个错误,错误的手数...而用固定点差,一切都很好,交易...

 GBPUSD,H1: OrderSend error 131

但这里是代码本身....,错误在哪里??

 if(ExistPositions() > 0)   {
   for(cnt=0;cnt<OrdersTotal();cnt++)  { 
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && OrderType()==OP_BUY)  {
         if(Ask-OrderOpenPrice() > (TrailingStop * Point))  { 
            if(OrderStopLoss() < (Ask - TrailingStop * Point)) { 
               OrderModify(OrderTicket(),
                           OrderOpenPrice(),
                           Ask - TrailingStop * Point,
                           Ask + sTakeProfit * Point,0,Aqua);
            return(0);  } // close for if(OrderStopLoss() < (Ask - TrailingStop * Point))
                        } // close for if(Ask-OrderOpenPrice() > (TrailingStop * Point))
                } // close for if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && OrderType()==OP_SELL) {
                        if(OrderOpenPrice() - Bid > (TrailingStop * Point))   { 
                                if(OrderStopLoss() > (Bid + TrailingStop * Point))   { 
                           OrderModify(OrderTicket(),
                                       OrderOpenPrice(),
                                       Bid + TrailingStop * Point,
                                       Bid - sTakeProfit * Point,0,Magenta);
            return(0);  } 
                        } // close for if(OrderOpenPrice() - Bid > (TrailingStop * Point))
                 } // close for if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
          } // close for for(cnt=0;cnt<total;cnt++)
   } // close for if(TradesThisSymbol > 0)
}

bool ExistPositions() {
        for (int i=0; i<OrdersTotal(); i++) {
                if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
                        if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) {
                                return(True);
                        }
                } 
        } 
        return(false);
}



void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenBuy); 
   if (UseSound) PlaySound(NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenSell); 
   if (UseSound) PlaySound(NameFileSound); 
} 
string GetCommentForOrder() {   return(Name_Expert); } 
double GetSizeLot() {   return(Lots); } 
double GetStopLossBuy() {       return (Bid-sStopLoss*Point);} 
double GetStopLossSell() {      return(Ask+sStopLoss*Point); } 
double GetTakeProfitSell() {    return(Bid-sTakeProfit*Point); } 
double GetTakeProfitBuy() {     return(Bid+sTakeProfit*Point); } 

return(0);

//+------------------------------------------------------------------+
 
Vovo4ka:

比如,聪明的彼得罗辛想开个玩笑...)

www.dukascopy.com mt4和java技术,最低存款是1000绿币,最近自己发现的。
 
todem:

www.dukascopy.com mt4和java技术,最低配置1000绿,最近自己发现的。

非常感谢。
 
如果指标处于睡眠 的无限循环中,那么你需要插入一个类似if(!deinit)的函数?
 
Vovo4ka:

伙计们,错误在哪里....,已经解决了...这是代码...

当用浮动点差进行热力交易时(多加一个数字),顾问写了一个错误,错误的手...

但这里是代码本身....,错误在哪里??


做到批量规范化

double GetSizeLot() {   return(NormalizeDouble(Lots,2)); }