任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 647

 
simpleton:

如果需要进行总头寸价格以外的计算,你可以通过引用变量本身来 "返回 "S1和S2的值给被调用的函数,并从函数中返回错误符号。也就是说,被调用函数的原型可以是这样的:"bool fun(double &S1, double &S2);"。调用函数启动变量,将它们传递给fun(),如果fun()返回真,则使用传递的变量的值(这些变量本身可能有不同的名字)作为S1和S2。

谢谢你!罗杰。除了在OrderSelect 上出现错误,除了继续,不知道如何停止。

删除了迟来的帖子,做了与描述几乎相同的事情。

double CenaUsrednenija(const int type,const int Magic){
double nn=0,bb=0;
 double factb=0;
  int total=OrdersTotal();

for(int i=total-1; i>=0; i--)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;  

   if(OrderSelect(i,SELECT_BY_POS))
     {
      if(OrderSymbol()==Symbol())
        {
         if(OrderType()==type && OrderMagicNumber()==Magic)
           {
            double op=OrderOpenPrice();
            double llot=OrderLots();
            double itog=op*llot;
            bb=bb+itog;
            nn=nn+llot;
            factb=NormalizeDouble(bb/nn,_Digits);
        //  Print("  type= ",type," Цена открытия= ",op, " Лот= ",llot, " itog=op*llot= ",itog, " factb=bb/nn= ",factb);
        
           }
        }
     }
  }  return(factb);  
}  
 

我不能写一个这样的函数。

- 如果一个卖出订单处于-1000点的损失。然后我们在第一个订单的1000点处打开同样的卖出订单。如果再出现-1000点,我们就再开一个卖出单,等等。

 
Top2n:

我不能写一个这样的函数。

- 如果一个卖出订单处于-1000点的损失。然后我们在第一个订单的1000点处打开同样的卖出订单。如果再出现-1000点,我们就再开一个卖出单,等等。


这里有什么问题呢?您选择必要的 OrderSelect-order ,例如在票据上,将其上的利润与OrderProfit-order 进行比较,然后发送一个请求,再开一个 OrderSend
 
Top2n:

我不能写一个这样的函数。

- 如果一个卖出订单处于-1000点的损失。然后我们在第一个订单的1000点处打开同样的卖出订单。如果再出现-1000点,我们就再开一个卖出单,等等。


根据这一条件,第二笔订单必须在当前价格开仓,该价格与第一笔订单的开仓价格 相差约1000点,所以没有什么困难--一个简单的订单就能开出新的头寸。
 
先生们,谁能告诉我在哪里可以找到质量更好的报价档案。
 
Top2n:
先生们,谁能告诉我在哪里可以找到质量更好的报价档案。

我们下载Tickstory,用它从Dukascopia下载ticks,然后我们可以把它们导出到MT4,但这只是暂时的,终端会用自己的文件覆盖它们。也就是说,它只针对测试人员,所以模拟质量为99.9%。
 
evillive:

你下载Tickstory,用它从Dukascopy下载ticks,然后你可以把它们导出到MT4,但这只是暂时的,终端会用自己的文件覆盖它们。也就是说,它只针对测试人员,所以模拟质量为99.9%。

是的,这个话题,非常感谢!)
 

搞不清楚WindowTimeOnDropped()的问题出在哪里。重置到图表时没有数值(所有时间=0)。写了一点代码来检查它。


//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters

double xBuffer[];
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,xBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mouse";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   return(0);
  }

int start()
  {
  datetime Mouse=WindowTimeOnDropped();
  Alert(" Mouse= ",Mouse);
  xBuffer[0]=Mouse;
  return(0);
  }
 
同事们,请教如何在EA中忽略onChartEvent(...)事件?

问题是,如果你在EA运行时改变时间框架,EA将重新初始化并重新开启交易。反过来,之前已经打开的交易仍然 "无人问津"。

如何挣扎?我不得不奇迹般地重新绘制图表,但它需要一个先前初始化的EA。

 
intrade:
同事们,请教如何在EA中忽略onChartEvent(...)事件?

问题是,如果你在EA运行时改变时间框架,EA将重新初始化并重新开启交易。反过来,之前已经打开的交易仍然 "无人问津"。

如何挣扎?我不得不奇迹般地重新绘制图表,但它需要一个先前初始化的EA。


要规定准确无误的开放条件!