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

 
culler:

帮我解决一个问题,确定两条MA线的交点时刻

我不知道如何描述它。

有MAfast和MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1)。

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

如果(MAfast>MAslow),只有当MAfast在底部时才起作用,当它越过它时,它抓住了越过的瞬间,但此时MAfast在顶部,订单进入BUY ))))。

我的代码中已经有了。 那么,究竟如何确定交叉的时刻,并将其与BUY从底部到顶部进行比较,或者反之亦然。

在我的代码中,它只是简单的或多或少。因此出现了错误。

如果((x1-y1)*(x2-y2)<0)
{
// 我们有交集
}
 
culler:

帮我解决一个问题,确定两条MA线的交点时刻

我不知道如何描述它。

有MAfast和MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1)。

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

如果(MAfast>MAslow),只有当MAfast在底部时才起作用,当它越过它时,它抓住了越过的瞬间,但此时MAfast在顶部,订单进入BUY ))))。

我在我的代码中,如何确定交叉的时刻,并比较其方向,从向下到向上或反之亦然。

在我的代码中,它只是简单的或多或少。因此出现了错误。

这里 有很多东西可以看和做。
 
artmedia70:
如果((x1-y1)*(x2-y2)<0)
{
// 我们有交集
}


TarasBY:
这里 有很多有趣的东西等着你。

谢谢你。谢谢你。
 
culler:

帮我解决一个问题,确定两条MA线的交点时刻

我不知道如何描述它。

有MAfast和MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1)。

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

如果(MAfast>MAslow),只有当MAfast在底部时才起作用,当它越过它时,它抓住了越过的瞬间,但此时MAfast在顶部,订单进入BUY ))))。

我在我的代码中,如何确定交叉的时刻,并比较其方向,从向下到向上或反之亦然。

在我的代码中,它只是简单的或多或少。因此出现了错误。


一个非常有用的主题而且是关于你的问题!
 
文件中说。

boolWindowIsVisible( int index)
如果图表子窗口是可见的,返回TRUE,否则返回FALSE。由于放置在其中的指标的可见性属性,图表子窗口可以被隐藏。
参数。
指数 - 图表子窗口的索引。
例子。
 int maywin=WindowFind("MyMACD"); if(maywin>-1 &&WindowIsVisible(maywin)==true) Print("MyMACD窗口可见"); else Print("MyMACD窗口未找到或不可见")

请解释一下它的意思:"一个图表子窗口可能由于放置在其中的指标的可见性属性而被隐藏"?这个指标是什么????
 

stopplay不返回一个int吗?

编译器对这段代码发出了" 由于类型转换可能导致数据丢失 "的警告。

   int slevel = MarketInfo(Symbol(), MODE_STOPLEVEL);
да и на 
   int digits = MarketInfo( Symbol(), MODE_DIGITS);
тоже
 

需要帮助,部分位置在测试EA 时没有关闭

void Zacritie_poz_sell ()
{
 
 int    i, k=OrdersTotal();
 string sy=Symbol();
 
for (i=0; i<k; i++) 
{
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
 {
  if ( OrderSymbol() == sy)
   {
    if (OrderType()==OP_SELL)
     {
       if ( OrderMagicNumber()==Magic)
       {
        double TP = OrderTakeProfit();
        double Prise = OrderOpenPrice();
        double Close_poz = NormalizeDouble( Prise-(Prise-TP)/2,Digits);
        double Lots1 = NormalizeDouble (Lots/4,Digits);
        double TP1 = OrderTakeProfit()+1*Point;
        double SL = OrderOpenPrice()-20*Point;
         if ( Bid == Close_poz && OrderStopLoss() != SL && TP == TP1 && Lots != Lots1)
         {
          
           OrderClose(OrderTicket(),Lots1, Bid, 40*Point, Yellow);

           break;
           Sleep (1000*5);
           RefreshRates();
         
          
         }
         
       }
     }
  
    }
   }
 }
}
 
miha91:

需要帮助,部分位置在测试EA时没有关闭


for (i=k-1; i>=0; i--)
 
evillive:

stopplay不返回一个int吗?

编译器对这样的代码产生了"由于类型转换可能造成的数据丢失 " 的警告。

明确的类型转换。

int slevel = (int)MarketInfo(Symbol(), MODE_STOPLEVEL);
见...该函数的类型double,但请求标识符可以定义返回类型为int。这就是为什么它是脏话。
 

我在优化一个EA,有很多过冲,大约10^17度,还有更多的参数,但不能再优化了。为什么会有这样的限制?

加上一个关于遗传算法 的问题。它似乎在这样的大数据上停止了正常工作,最终的利润跳得相当厉害,经常是向下跳。也就是说,现在它已经找到了有利可图的设置,但其他任何时候都没有。开发商是否要修复它?