Ücretsiz bir danışman yazacağım - sayfa 156

 
Valeriy Yastremskiy # :

İyi için, test cihazında izlemek istiyorsanız, çeki gerçek olandan bir süre sonra kaldırabilirsiniz. OnInit'te. Ve test cihazında 4k'de zaman akımı talebinin test cihazının zamanını döndürüp döndürmeyeceğini hatırlamıyorum. Benim düşünceme göre, şimdiki zamanı döndürür, bu nedenle test cihazında siparişler bir kerede oraya verilir ve bu kadar. Ayrıca yerel saati sorgulamak mevcut yerel saati döndürür.

Bu, test cihazında 5k'de ortamın tam bir emülatörüdür.

açıklamalar için teşekkürler

 
Bir önceki maalesef uymadı. dikkatli olun   kod tabanı, neredeyse ihtiyacınız olanı buldu

https://www.mql5.com/ru/code/10236

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                       http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property  copyright   "Copyright ? 2011, AM2 && Tiburond"
#property  link        " http://www.forexsystems.biz "

#define  MAGIC   20110406

extern   int  StopLoss    =  1300 ;    //???????? ??????
extern   int  StartHour   =  21 ;      //??? ?????? ????????(???????????? ?????)
extern   int  Distance    =  250 ;     //?????????? ?? ???? ??? ????????? ??????
extern   int  Step        =  50 ;      //??? ????????? ???????
extern   int  Count       =  4 ;       //?????????? ??????????????? ???????
extern   int  Expiration  =  4 ;       //????? ????????? ??????
extern   double  Lots     =  1 ;       //???
extern   bool  MM         =  true ;    //?????????? ???????????????
extern   double  TSP      =  5 ;       //????
extern   bool  BU         =  true ;    //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern   int  BUHour      =  2 ;       //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int  init()
  {
//----
  
//----
    return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int  deinit()
  {
//----
  
//----
    return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int  start()
  {
    int  b= 0 ,s= 0 ,res;
    datetime  expiration =  TimeCurrent ()+ 3600 *Expiration;
    double  BuyPrice=fND(Open[ 0 ]-Distance* Point );
    double  SellPrice=fND(Open[ 0 ]+Distance* Point );  
    for  ( int  i= OrdersTotal ()- 1 ;i>= 0 ;i--)
     {
       if  ( OrderSelect (i, SELECT_BY_POS))
        {  
          if  (OrderSymbol()!= Symbol () || OrderMagicNumber()!=MAGIC)  continue ;
          if  (OrderType()==OP_BUYLIMIT) b++;
          if  (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
    if  (Hour()>BUHour && Hour()<StartHour && AllProfit()> 0 ) ClosePositions();
    if  (Hour()>BUHour && DayOfWeek() ==  5 ) ClosePositions();  
    if  (Hour()==StartHour && b< 1  && DayOfWeek() !=  5 )
    for (i= 1 ;i<=Count;i++)
    {
     {              
      res= OrderSend ( Symbol (),OP_BUYLIMIT,fLots(),fND(Ask-(Distance* Point +i*Step* Point )), 3 ,fND(BuyPrice-StopLoss* Point ),fND(Open[ 0 ]), "" ,MAGIC,expiration,Blue);      
       Sleep ( 3000 );
       if (res< 0 )
         {
             Print ( "??????: " , GetLastError ());
         }  else  {
            RefreshRates();
         }    
     }
    }
        
    if  (Hour()==StartHour && s< 1  && DayOfWeek() !=  5 )
    for (i= 1 ;i<=Count;i++)
    {  
     {              
      res= OrderSend ( Symbol (),OP_SELLLIMIT,fLots(),fND(Bid+(Distance* Point +i*Step* Point )), 3 ,fND(SellPrice+StopLoss* Point ),fND(Open[ 0 ]), "" ,MAGIC,expiration,Red );
       Sleep ( 3000 );
       if (res< 0 )
         {
             Print ( "??????: " , GetLastError ());
         }  else  {
            RefreshRates();
         }    
     }
    }    
//----  
    return ( 0 );
  }
//+------------------------------------------------------------------+
double  fND( double  d,  int  n=- 1 )
  {  
    if  (n< 0 )  return ( NormalizeDouble (d,  Digits ));
    return ( NormalizeDouble (d, n));
  }
//+------------------------------------------------------------------+
double  fLots()
  {
    double  lot=Lots;
    double   lot_min =MarketInfo(  Symbol (), MODE_MINLOT  );
    double   lot_max =MarketInfo(  Symbol (), MODE_MAXLOT  );
    if  (MM)
     {
       double   lot_step =MarketInfo(  Symbol (), MODE_LOTSTEP );
       double   lotcost =MarketInfo(  Symbol (), MODE_TICKVALUE );      
       double   dollarsPerPip= 0.0 ;

      lot = AccountFreeMargin()*TSP/ 100.0 ;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost,  2 );      
      lot=fND(lot/lot_step,  0 ) * lot_step;
     }
    if  (lot<lot_min) lot=lot_min;
    if  (lot>lot_max) lot=lot_max;
    return (lot);
  }
//+------------------------------------------------------------------+
void  ClosePositions()
  {
    if (BU)
    for  ( int  i= OrdersTotal ()- 1 ;i>= 0 ;i--)
    {
       OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
       if  (OrderSymbol() ==  Symbol ())
       {
          if  (OrderSymbol() ==  Symbol () && OrderMagicNumber() == MAGIC)
          {
             if  (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid,  3 , Blue);
             if  (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask,  3 , Red);
          }
          Sleep ( 1000 );
      }
    }
  }
//+------------------------------------------------------------------+
double  AllProfit()
  {
    double  Profit =  0 ;
    for  ( int  i= OrdersTotal ()- 1 ;i>= 0 ;i--)
    {
       OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
       if  (OrderSymbol() !=  Symbol () || OrderMagicNumber() != MAGIC)  continue ;
       if  (OrderSymbol() ==  Symbol () && OrderMagicNumber() == MAGIC)
          if  (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
    return  (Profit);
  }
//+------------------------------------------------------------------+


Lütfen değişiklik yapmama yardım et. Bu Uzman Danışman, açık siparişleri zorla kapatmaz. Sınırların belirlenmesi için gereken süre ile birlikte, bunların zorunlu olarak kapatılacağı zamanın belirlenmesinin de mümkün olması arzu edilir.
Optimize etmek için TP ve trol gerekir. Thrall, böylece tüm sınırlar biraz olsun, ancak gece gürültüsü toplarlar.
Советник по стратегии "Возврат".
Советник по стратегии "Возврат".
  • www.mql5.com
Ночной скальпер. EURUSD H1.
 
Merhaba. MT4 için bir danışmanla kim yardımcı olabilir? Elle verilen siparişlere (sihirli veya sihirsiz) eşlik edecek zili ve ıslığı olmayan bir danışmana ihtiyacımız var. Emir stoploss ile kapatılırsa, EA verilen lot, SL ve TP ile aynı yönde yeni bir emir açar. Kar al ile emir kapatılırsa, EA verilen lot, SL ve TP ile ters yönde yeni bir emir açar. Belki hazır seçenekler vardır, hiçbir şey bulamadım. Şimdiden çok teşekkür ederim.
 
Anton Yakovlev :
Eğer iyi bir stratejiniz varsa ve bunu paylaşmaya hazırsanız, bir danışman yazabilirim . Seni halka açık tartışmaya davet ediyorum
Merhaba şamdan hareketlerine (desen) dayalı bir indikatöre ihtiyacım var.bunu yazmanız mümkün mü , ne kadar ve nasıl bir istekte bulunabilirsiniz.teşekkürler
 
Merhaba!
Strateji :
Dur, al, takip et ile birbirinden X mesafesinde 2 karşı limitli alış/satış limitli emrin yerleştirilmesi.
Örneğin:
Eğer fiyat herhangi bir limite takılıp bu emri durdur ya da al ile kapatırsa karşı limit iptal edilir ve tekrar 2 zıt limit belirlenir.
EA seçenekleri:
Çok güzelsin
Durmak
almak
Trol
sınırlar arasındaki mesafe
Büyü
kayma
 
Ivan Bielyi # :
Bir spread limiti ile karşılıklı 2 alış/satış limiti emrinin yerleştirilmesi

Ve sınırlardaki yayılmayı nasıl sınırlayabilirsiniz?

 
Evgeny Belyaev # :

Ve sınırlardaki yayılmayı nasıl sınırlayabilirsiniz?

Demek istediğim, yayılma, örneğin 5p'den yüksekse, gecikmeleri ayarlamayın, ancak bu çok sorunluysa, bu parametreyi atlayabilirsiniz.
 
Ivan Bielyi # :
Demek istediğim, yayılma, örneğin 5p'den yüksekse, gecikmeleri ayarlamayın, ancak bu çok sorunluysa, bu parametreyi atlayabilirsiniz.

Bunun anlamı ne? Şimdi yürütülmeyecekler (bunlar sınırlar). Ve zamanı geldiğinde, büyü tamamen farklı olacak.

 
Evgeny Belyaev # :

Bunun anlamı ne? Şimdi yürütülmeyecekler (bunlar sınırlar). Ve zamanı geldiğinde, büyü tamamen farklı olacak.

Tupanul, o zaman kesinlikle bu parametre olmadan)))
 
Daniil Osipov # :
Temel olarak neyi alır ve algoritma ne kadar karmaşıktır.

Hareketli ortalamaya göre trendi belirler

TrendUp := MAvg[ 1 ]>TrendUp[ 1 ] ? max(Up,TrendUp[ 1 ]) : Up
Neden: