Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 508

 
Beyler programcılar ne oldu artı yarım gün sonra ertesi gün sabah terminali açtım akşam işe gittim tek bir işlem yok -işlem yapma, diğer durumlarda standart bir lottur.
 void OnTick ()
  {
   datetime EaStartTime = StringToTime (StartTime);   // время начала работы советника
   datetime EaEndTime = StringToTime (EndTime);       // время окончания работы советника
   datetime CurrTime = TimeCurrent ();               // это если нужно взять время терминала
   if (CurrTime<EaStartTime || CurrTime>=EaEndTime)
       return ;                                       // если еще не время торговать - выход
     {
      MacdCurrent= iMACD ( NULL , 0 ,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_MAIN, 0 );
      SignalCurrent= iMACD ( NULL , 0 ,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_SIGNAL, 0 );
      SignalMAPrevious= iMA ( NULL , 0 ,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price, 1 );
      SignalMAThis= iMA ( NULL , 0 ,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price, 0 );
      SignalParabolic= iSAR ( NULL , 0 ,InpSARStep,InpSARMaximum, 0 );
      SignalStochastic_5= iStochastic ( NULL , 5 ,InpKPeriod,InpDPeriod,InpSlowing, MODE_SMA , 0 , 1 , 0 );
      MainStochastic_5= iStochastic ( NULL , 5 ,InpKPeriod,InpDPeriod,InpSlowing, MODE_SMA , 0 , 0 , 0 );
      SignalStochastic= iStochastic ( NULL , 0 ,InpKPeriod,InpDPeriod,InpSlowing, MODE_SMA , 0 , 1 , 0 );
      MainStochastic= iStochastic ( NULL , 0 ,InpKPeriod,InpDPeriod,InpSlowing, MODE_SMA , 0 , 0 , 0 );
      SignalCCIPrevious= iCCI ( NULL , 0 ,InpCCIPeriod, 0 , 1 );
      SignalCCIThis= iCCI ( NULL , 0 ,InpCCIPeriod, 0 , 0 );
       if (CountTrades()== 0 ) CheckForOpen();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
 { if (ModLots())
  {
       //-----Ставим ордер на покупку.
     if (SignalCurrent<MacdCurrent && SignalMAPrevious<SignalMAThis && 
      Ask>SignalParabolic && SignalStochastic_5<MainStochastic_5&&SignalStochastic<MainStochastic&&
      SignalCCIPrevious<SignalCCIThis)
      {
       ticket= OrderSend ( NULL ,OP_BUY,lot,Ask,slippage, 0 , 0 ,exptime,magic, 0 ,Blue);
       if (ticket> 0 )
           return ;
      }
//-----Ставим ордер на продажу.
     if (SignalCurrent>MacdCurrent && SignalMAPrevious>SignalMAThis && 
      Bid<SignalParabolic && SignalStochastic_5>MainStochastic_5&&SignalStochastic>MainStochastic&&
      SignalCCIPrevious>SignalCCIThis)
      {
       ticket= OrderSend ( NULL ,OP_SELL,lot,Bid,slippage, 0 , 0 ,exptime,magic, 0 ,Red);
       if (ticket> 0 )
           return ;
      }
  }
 }
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count= 0 ;
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==magic)
            count++;
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
bool ModLots()
  {
     for ( int i=OrdersHistoryTotal()- 1 ;i>= 0 ;i--)
      {
       if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ;
       if ((OrderMagicNumber()==magic) && (OrderSymbol()== Symbol ()))
         {
           if (OrderProfit()< 0 )
            {lot=OrderLots()*LotMarti;   break ;}
           else { lot=Lots; break ;}
         }
      }
   return ( true );
  }
//+------------------------------------------------------------------+
 
Merhaba. mql4 referansı, strateji test cihazında Timer ve ChartEvent olaylarının işlenmesinin desteklenmediğini söylüyor. Buna göre düğmeler (OBJ_BUTTON) çalışmıyor (daha doğrusu basıldığında hiçbir şey olmuyor). Ancak bazı nedenlerden dolayı bu kural, bu Expert Advisor'ın deneme sürümü için geçerli değildir. Lütfen bana bunun neden olduğunu ve düğmelerin test cihazında nasıl çalıştığını söyler misiniz?
 
Maks_Knyazev :
Merhaba. mql4 referansı, strateji test cihazında Timer ve ChartEvent olaylarının işlenmesinin desteklenmediğini söylüyor. Buna göre düğmeler (OBJ_BUTTON) çalışmıyor (daha doğrusu basıldığında hiçbir şey olmuyor). Ancak bazı nedenlerden dolayı bu kural, bu Expert Advisor'ın deneme sürümü için geçerli değildir. Lütfen bana bunun neden olduğunu ve düğmelerin test cihazında nasıl çalıştığını söyler misiniz?

Evet, çalışmıyorlar. Test cihazında, bunun gibi düğmeleri manuel olarak kontrol etmeniz gerekir.

CButton *cbSell, *cbBuy;

//проверяем из OnTick в тестере 
void CheckButtons()
{
     if (cbSell.Pressed())
    {
        OpenOrderWithCheck2( Symbol (), OP_SELL, 0.1 , Bid, 50 , 0 , 0 , "" , 1 , 0 , clrDeepSkyBlue );
        cbSell.Pressed( false );
    }    
     if (cbBuy.Pressed())
    {
        OpenOrderWithCheck2( Symbol (), OP_BUY, 0.1 , Bid, 50 , 0 , 0 , "" , 1 , 0 , clrRed );
        cbBuy.Pressed( false );
    }
     ChartRedraw ();
}

 
Alexey Volchanskiy :

Evet, çalışmıyorlar. Test cihazında, bunun gibi düğmeleri manuel olarak kontrol etmeniz gerekir.

Çok teşekkürler! Böyle anları anlatan herhangi bir literatür var mı?
 

çakmaktaşı17480 , 2016.02.01 08:58

Merhaba. EURUSD paritesi için mum 09-47'de kar kapanmadı, kar 1.08428'de kaldı, mum 1.08420'ye gitti. Bana ne yapacağımı söyle? Şimdiden teşekkürler.
 

çakmaktaşı17480 , 2016.02.01 08:58

Merhaba. EURUSD paritesi için mum 09-47'de kar kapanmadı, kar 1.08428'de kaldı, mum 1.08420'ye gitti. Bana ne yapacağımı söyle? Şimdiden teşekkürler.

Daha fazla bilgiye ihtiyacınız var:

  1. Açık pozisyon türü: SATIŞ veya ALIM?
  2. Terminaldeki fiyatın BID tarafından çizildiğini biliyor musunuz?

 
Karputov Vladimir :

çakmaktaşı17480 , 2016.02.01 08:58

Merhaba. EURUSD paritesi için mum 09-47'de kar kapanmadı, kar 1.08428'de kaldı, mum 1.08420'ye gitti. Bana ne yapacağımı söyle? Şimdiden teşekkürler.

Yayılmaya dikkat edin, çünkü kısa pozisyonlar Ask tarafından kapatılır ve mumlar Bid tarafından çekilir. Çoğu döviz çifti için 8 pipten fazla beş basamaklı bir spread normaldir.

 
Karputov Vladimir :

çakmaktaşı17480 , 2016.02.01 08:58

Merhaba. EURUSD paritesi için mum 09-47'de kar kapanmadı, kar 1.08428'de kaldı, mum 1.08420'ye gitti. Bana ne yapacağımı söyle? Şimdiden teşekkürler.
Kene tırnakları yazın. kalemimi atar mısın? Kod tabanında birçoğu olmasına rağmen. Yayılma konusunda haklıydın.
 
Herkese iyi günler) bir mobil durdurma kaybı kodunu paylaşın - fiyatı takip edebilmeniz için))) Şimdiden teşekkür ederim
 
Tema97 :
Herkese iyi günler) bir mobil durdurma kaybı kodunu paylaşın - fiyatı takip edebilmeniz için))) Şimdiden teşekkürler
Sondaki durağı neden beğenmedin? Zaten terminalde yerleşik