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

 
igrok2008 >> :

你好。

有一个专家级的SimpleMA,我为自己做了一点调整,只是一点......:-)),并称之为MASimple_v2x。

然后我试图改进它,但是,但是

实验后我得到了一个错误。

我做错了什么?????????????

>> 预先感谢。



这样试试吧。

而不是 - 如果MAF_0 - MAF_1= A
如果 MAS_0 - MAS_1= B

this - double A = MAF_0 - MAF_1;

双重B = MAS_0 - MAS_1。

 

如果我理解正确的话,你正在跟踪两个MAs都在向同一方向移动的情况。还有许多有趣的发现在等着你 :))

//это выражение не имеет смысла, if здесь лишний
   if MAF_0 - MAF_1= A
   if MAS_0 - MAS_1= B
//если требовалось определить разницу значений МА на 1-ом и нулевом баре, то можно так
   double A = MAF_0 - MAF_1;
   double B = MAS_0 - MAS_1;
 
rushman >> :

你能告诉我,是否有可能在不开新单的情况下增加市场订单的手数?

据我所知,没有!只有当你打开一个新的地段时。交易后增加地段的意义何在?或者你的意思是,你看到你是如何在正确的方向上打开的,而你想要越来越多的钱?

 
alsu 23.10.2009 10:22
>>

И что теперь с этим делать?

NormalizeDouble(Bid,4);   //:))))


可能会更好(更多的用途)。

NormalizeDouble(Bid,Digits);
 

帮助我找到代码中的一个错误。编译时没有错误,但计算和交易没有通过(提前感谢这里的专业人士。

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
extern int    EMA1 = 14;                                  // Период 1-й EМА
extern int    EMA2 = 48;                                  // Период 2-й EМА
extern int    EMA3 = 144;                                  // Период 3-й EМА                             
extern int period=12;
extern int porog =3;
extern int metod =1;
extern int metod2=1;
extern int prise =0;
extern double SL =  1000;                                  // СтопЛосс ордера
extern double TP =  500;                                  // ТэйкПрофит ордера
extern double Lots= 0.1;  
//--------------------------------------------------------------------------------------------
int
   New_Bar,                                              // 0/1 Факт образования нового бара
   Time_0,                                               // Время начала нового бара
   total;                                                // Крличество открытых ордеров
//--------------------------------------------------------------------------------------------
double 
   Lot,                                                  // Количество лотов
   Norm,                                                 // Предыдущее значение 1-й МА (розов)
   Fast,                                                  // Текущее    значение 1-й МА (розов)
   Slow,                                                // Текущее    значение 2-й МА(голубая)
   Signal[];
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int init()  
   {
//============================================================================================
   SL = SL*Point;                                        // SL в пунктах
   TP = TP*Point;                                        // ТР в пунктах
   return;
//============================================================================================
   }  
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int start()  
   {
//============================================================================================
   total=OrdersTotal();                                  // Общее количество ордеров
   if ( total==2)return;                                  // Уже открыты оба ордера

//----------------------------------------------------------------------------- Новый бар ----
   New_Bar=0;                                            // Для начала обнулимся
   if ( Time_0 != Time[0])                                // Если уже другое время начала бара
      {
      New_Bar= 1;                                        // А вот и новый бар
      Time_0 = Time[0];                                  // Запомним время начала нового бара
      } 
//--------------------------------------------------------------------------------------------
//---расчет тренда ввех или вниз (XMA)
   int limit;
   double tmp1, tmp2;
   int counted_bars=IndicatorCounted();
   int i;
   if( counted_bars<0) return(-1);
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
   for ( i = limit; i>=0; i--){
     tmp1=iMA(Symbol(),0, period,0, metod, prise, i);
     tmp2=iMA(Symbol(),0, period,1, metod2, prise, i); 
     if(MathAbs( tmp1- tmp2)>= porog*Point)
     {       Signal[ i]= tmp2;      }
     
//--------------------------------------------------------------------------------------------
   Fast  =iMA(NULL,0, EMA1, 0,MODE_EMA, PRICE_CLOSE, 0);// Текущее    значение 1-й EМА
   Norm =iMA(NULL,0, EMA2, 0,MODE_EMA, PRICE_CLOSE, 0);// Предыдущее значение 2-й EМА
   Slow=iMA(NULL,0, EMA3, 0,MODE_EMA, PRICE_CLOSE, 0);// Текущее    значение 3-й EМА
   
//--------------------------------------------------------------------------------------------
   if ( Fast> Norm && Norm> Slow && New_Bar==1 && Close[ i]> Signal[ i]) Open_Buy();      // Движение снизу вверх = откр. Buy
   if ( Fast< Norm && Norm< Slow && New_Bar==1 && Close[ i]< Signal[ i]) Open_Sell();     // Движение сверху вниз = откр. Sell
   
   }
      return;
//============================================================================================
   }  
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int Open_Buy()  
   {
   if ( total==1)
      {
      OrderSelect(0, SELECT_BY_POS);                     // Выделим ордер
      if (OrderType()==0)return;                         // Если он buy, то не открываемся
      }
   OrderSend(Symbol(),0, Lots, Ask, 0, Ask- SL, Ask+ TP, "", 0, 0, Blue);// Открываемся
   return;
   }
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int Open_Sell() 
   {
   if ( total==1)
      {
      OrderSelect(0, SELECT_BY_POS);                     // Выделим ордер
      if (OrderType()==1)return;                         // Если он sell, то не открываемся
      }
   OrderSend(Symbol(),1, Lots, Bid, 0, Bid+ SL, Bid- TP, "", 0, 0, Red);// Открываемся
   return;
   }
 

大家好,请给我一个建议!!!。有几个问题,自己做不了。

1.如何使一个栏位上只有一个订单开放?

2.有几个买入和卖出条件,用什么函数来处理?

3.如何组织未结头寸 转入盈亏平衡?

4.如何在EA代码中应用所有三个条件(如果可能,请举例说明)?

我期待着你的回答。事先非常感谢你。

 
Piboli >> :

你好。我只是碰巧看到了一篇关于我感兴趣的主题的 文章。也就是这个。选择一个窗口尺寸。....实现了最佳的结果

在选择与数据分形维度数量级相同的窗口大小的情况下。为了计算它,我们应该用一个足够大的滑动窗口对系列进行 "切片"。

(见图5),然后用例如Box-count方法计算所得数据的分形维度....。

请告知(最好是更简单),如何计算这个滑动窗口的大小。或者至少是在哪里看。


作者的联系方式在网站上,我建议咨询原始资料。
 

为工作欢呼吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

感谢狂人和granit77。

最近的一件轶事。在计算机实验室里的文学课,由计算机科学老师主持。

-Gerasim是,这.....thim......nu......a,他没有声卡 :-)))))))))))))))))

嗯,至于专家,我试图缩短交易条件。你知道,为了更好地感知。

也就是说,如果有数学计算,最好通过double来调用它们。

 
Maniac >> :

大家好,请给我一个建议!!!。有几个问题,自己做不了。

1.如何使一个栏位上只有一个订单开放?

....... ...

我在等待你的答案。事先非常感谢你。

https://www.mql5.com/ru/forum/102366

//-----------------

https://www.mql5.com/ru/forum/113983/page2

//-------------

https://www.mql5.com/ru/forum/110184

 
morok >> :

帮助我找到代码中的一个错误。编译时没有错误,但计算和交易没有通过(提前感谢这里的专家们。

在你的代码中,首先引起我注意的是,我不确定在专家顾问 中使用IndicatorCounted()函数是否正确。我没有检查过,但我相信只有在自定义指标 中才能保证其正确性。

原因: