Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1139

 
kuznat399 :
Android için robotlar var mı?


Metatrader'ın mobil versiyonunda otomatik ticaret yoktur ve görünüşe göre yakın gelecekte görünmeyecektir. Telefonunuzdan bir robotu yönlendirmek istiyorsanız, üzerinde robotlu bir terminalin olacağı bir VPS'ye ihtiyacınız var, + telefonunuzda uzaktan erişim için bir program.
 
Söyleyin bana, görselleştirme test cihazında görüntülenmiyor (derleme 1065) - düzeltmek mümkün mü?
 
MT5'te haftalık on döviz çifti tablosu açıyorum, 800 megabaytlık kene geçmişi terminale yükleniyor. Ve grafiklerde neredeyse hiç değişiklik olmamasına rağmen sürekli yükleniyor. Soru - sadece haftalık grafikler kullanıyorsam neden bir onay geçmişine ihtiyacım var? Bu arada, MT4'te haftalık grafikler anında ve gecikmeden açılır.
 
sober :
MT5'te haftalık on döviz çifti tablosu açıyorum, 800 megabaytlık kene geçmişi terminale yükleniyor. Ve grafiklerde neredeyse hiç değişiklik olmamasına rağmen sürekli yükleniyor. Soru - sadece haftalık grafikler kullanıyorsam neden bir onay geçmişine ihtiyacım var? Bu arada, MT4'te haftalık grafikler anında ve gecikmeden açılır.


bu MT5'in bir özelliğidir - her şeyi M1'e yüklüyoruz ve ardından gerekli süreyi oluşturuyoruz ... selyavi (

ve böylece her zaman, her karakter için

 
MT5 için iki takılabilir blok vardır (sinyal ve sipariş bloğu ve takip eden blok). MQL5'te aldım. Bir Expert Advisor oluştururken, sinyal bloğu bunu görmez, ancak takip eden blok görür. "MQL5\Include\Expert\Signal" ve "MQL5\Include\Expert" dosyalarını yerleştirdi. Lütfen yardım et.
 

Bir danışmanın fikri, fiyat yatay bir seviyeye veya manuel olarak çizilen bir trend çizgisine dokunduğunda almak veya satmaktır. Farklı çalışma danışmanlarından bir danışman ve bir gösterge derlendi. Ama danışman çalışmıyor. Bunun yerine, sadece SAT'ı açar ve ilk tikte sinyal vermez. Sorun nedir?

/+------------------------------------------------ ------------------+

//| |

//| Telif Hakkı © 2010, MetaQuotes Yazılım A.Ş. |

//| http://www.mql4.com/ru/users/rustein |

//+------------------------------------------- --------------------+

#define MAGIC 131313 // kanalın içinde açılıyor

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



harici int TF=15;


//+------------------------------------------- --------------------+

harici int StopLoss = 300;

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



harici çift TakeProfit = 3000;

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


harici int Per_MA= 20;



//---- sabitler


#define OP_BUY_0

#define OP_SELL_1



//------------------------------------------------ --------------------+

dış çift Lot = 0.1;

harici çift MaximumRisk = 1;

dış çift Azaltma Faktörü = 0;



bool b_1=true, s_1=true;


//+------------------------------------------- --------------------+

//| Açık pozisyonları hesaplayın |

//+------------------------------------------- --------------------+

çift MA=iMA(NULL,TF,Per_MA,0,0,0,1);





int CalculateCurrentOrders(dize sembolü)

{

int satın alır = 0, satar = 0;

//----

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)

{

if(OrderType()==OP_BUY) satın alır++;

if(OrderType()==OP_SEL) satıyor++;

}

}

//---- iade sipariş hacmi

if(satın alır>0) iade(satın alır);

başka iade(-satış);

}

//+------------------------------------------- --------------------+

//| Optimum parti boyutunu hesaplayın |

//+------------------------------------------- --------------------+

çift LotOptimize Edilmiş()

{

çift lot=lot;

int siparişler=TarihToplam(); // geçmiş sipariş toplamı

int kayıplar=0; // Kesintisiz siparişlerin sayısı

//---- parti boyutunu seç

//lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,2);

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100/MarketInfo(Symbol(),MODE_TICKVALUE)/StopLoss,2);

//---- Kesintisiz siparişlerin sayısını hesapla

if(DecreaseFactor>0)

{

for(int i=sipariş-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Geçmişte hata!"); kırmak; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) devam ediyor;

//----

if(OrderProfit()>0) kırılması;

if(OrderProfit()<0) kayıpları++;

}

if(kayıplar>1) lot=NormalizeÇift(lot-lot*kayıplar/AzalışFaktörü,2);

}

//---- parti boyutunu iade et

if(lot<0.01) lot=0.01;

dönüş(lot);

}

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

/* göstergeden bu kısım */

int CheckBreakoutLines(int shift)

{

// Toplam Nesneler

int obj_total = NesnelerToplam();

// Çubuğun zamanı

tarihsaat şimdi = Saat[shift];

// Yinele

for(int i = obj_total - 1; ben >= 0; ben--)

{

// Nesne adı

string etiketi = NesneAdı(i);

// türler

int OType = ObjectType(etiket);

bool eğilim çizgisi = yanlış;

bool hline = yanlış;

// değerlendirilecek fiyat

çift fiyat = 0;

// Eğilim çizgileri

if(OType == OBJ_TREND )

{

bool ray = ObjectGet(etiket, OBJPROP_RAY);

eğer(!ray)

{

tarihsaat x1 = ObjectGet(etiket, OBJPROP_TIME1);

tarihsaat x2 = ObjectGet(etiket, OBJPROP_TIME2);

if(x1 < şimdi && x2 < şimdi) devam et;

}

cprice = GetCurrentPriceOfLine(etiket, vardiya);

eğilim çizgisi=doğru;

} else if(OType == OBJ_HLINE ) {

cprice = ObjectGet(etiket, OBJPROP_PRICE1);

hline=doğru;

} başka {

devam etmek;

}

// Eğilim çizgilerinin ve hline'ların kırılmaları ve yanlış kırılmaları

if(MA>cfiyat &&Sor<cfiyat)

{

if(trendline) { dönüş(OP_BUY_); } else if(hline) { return(OP_BUY_); }

} else if (MA>cprice &&Ask<cprice) {

if(trendline) { dönüş(OP_SELL_); } else if(hline) { return(OP_SELL_); }

}

}

dönüş ( BOŞ_DEĞER );

}


double GetCurrentPriceOfLine(dize etiketi, int shift)

{

double fiyat1 = ObjectGet(etiket, OBJPROP_PRICE1);

çift fiyat2 = ObjectGet(etiket, OBJPROP_PRICE2);

tarihsaat d1 = ObjectGet(etiket, OBJPROP_TIME1);

tarihsaat d2 = ObjectGet(etiket, OBJPROP_TIME2);

int shiftfrom = iBarShift(Symbol(), 0, d1, false);

int shiftto = iBarShift(Symbol(), 0, d2, false);

int lapse = MathAbs(shiftto - shiftfrom);

int mesafe = MathAbs(shift - shiftfrom);

double pendiente = (fiyat2 - fiyat1) / gecikme;

çift nokta = fiyat1 + (mesafe * pendiente);

dönüş(nokta);

}


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

//+------------------------------------------- --------------------+

//| Açık sipariş koşullarını kontrol edin |

//+------------------------------------------- --------------------+

geçersiz CheckForOpen()

{

iç;


//------------------------------------------------ --------------------+

//------------------------------------------------ --------------------+

//---- satın alma koşulları

eğer(OP_BUY_&&b_1)

{

res=SiparişGönder(Symbol(),OP_BUY,LotsOptimized(),Sor,3,Sor-(Zarar Durdur*Puan),Sor+Kar Al*Puan," VV",MAGIC,0,Yeşil);

b_1=yanlış; s_1=doğru;

dönüş;

}


//---- satış koşulları

if(OP_SELL_&&s_1)

{

res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+(StopLoss*Puan),Teklif-AlKar*Point," VV",MAGIC,0,Kırmızı);

s_1=yanlış; b_1=doğru;

dönüş;

}

//----

}


//+------------------------------------------- --------------------+

//| başlatma işlevi |

//+------------------------------------------- --------------------+

geçersiz başlangıç()

{

//---- geçmişi ve ticareti kontrol et

if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;

//---- açık siparişleri mevcut sembole göre hesapla

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

}


//+------------------------------------------- --------------------+

//|---------------------// SON //--------------- ------ ---------|

//+------------------------------------------- --------------------+

Warstein
Warstein
  • www.mql5.com
Профиль трейдера
 
ValerVL35 :

Bir danışmanın fikri, fiyat yatay bir seviyeye veya manuel olarak çizilen bir trend çizgisine dokunduğunda almak veya satmaktır. Farklı çalışma danışmanlarından bir danışman ve bir gösterge derlendi. Ama danışman çalışmıyor. Bunun yerine, sadece SAT'ı açar ve ilk tikte sinyal vermez. Sorun nedir?

/+------------------------------------------------ ------------------+

//| |

//| Telif Hakkı © 2010, MetaQuotes Yazılım A.Ş. |

//| http://www.mql4.com/ru/users/rustein |

//+------------------------------------------- --------------------+

#define MAGIC 131313 // kanalın içinde açılıyor

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



harici int TF=15;


//+------------------------------------------- --------------------+

harici int StopLoss = 300;

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



harici çift TakeProfit = 3000;

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


harici int Per_MA= 20;



//---- sabitler


#define OP_BUY_0

#define OP_SELL_1

................................................................

................................................................

//---- geçmişi ve ticareti kontrol et

if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;

//---- açık siparişleri mevcut sembole göre hesapla

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

}


//+------------------------------------------- --------------------+

//|---------------------// SON //--------------- ------ ---------|

//+------------------------------------------- --------------------+

Programı not defterine yükledim ve boş satırları sildim. Bir göz atmak için bir fırsat vardı. SRC düğmesine bastım ve yerleştirdim. İşte olanlar. 1) Neden tanımla

 #define OP_BUY_   0
#define OP_SELL_ 1

zaten OP_BUY=0 ve OP_SELL=1 varsa

2) Kötülüğün kökü bu parçadadır. Aynı koşul (MA>cprice &&Ask<cprice) iki kez kontrol edilir ve farklı kararlar alınır.

        // Breakouts and false breakouts of trendlines and hlines
       if (MA>cprice && Ask <cprice)
      {
         if (trendline) { return (OP_BUY_); } else if (hline) { return (OP_BUY_); }
      } else if (MA>cprice && Ask <cprice) {
         if (trendline) { return (OP_SELL_); } else if (hline) { return (OP_SELL_); }    
      }

3) Her şubede daha fazla kontrol yapılır, ancak sonuç hala aynıdır.

 if (trendline) { return (OP_BUY_); } else if (hline) { return (OP_BUY_); }
 if (trendline) { return (OP_SELL_); } else if (hline) { return (OP_SELL_) ; }

ve genel olarak yukarıdaki satır basitleştirilebilir ve bu şekilde yazılabilir.

          if(trendline)return OP_BUY;
          if(hline)    return OP_BUY;
или еще проще
          if(trendline or hline) return OP_BUY;

//+------------------------------------------------------------------+
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                             http://www.mql4.com/ru/users/rustein |
//+------------------------------------------------------------------+
#define MAGIC   131313 // открытие внутрь канала
//---------------------------------------
extern int TF= 15 ;
extern int     StopLoss          = 300 ;
extern double TakeProfit = 3000 ;
extern int Per_MA= 20 ;
extern double Lots              = 0.1 ;
extern double MaximumRisk       = 1 ;
extern double DecreaseFactor    = 0 ;

//---- constants
#define OP_BUY_   0
#define OP_SELL_ 1

bool b_1= true , s_1= true ;

//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
 double MA= iMA ( NULL ,TF,Per_MA, 0 , 0 , 0 , 1 );
int CalculateCurrentOrders( string symbol)
  {
   int buys= 0 ,sells= 0 ;
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false ) break ;
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==MAGIC)
        {
         if ( OrderType ()== OP_BUY )  buys++;
         if ( OrderType ()== OP_SELL ) sells++;
        }
     }
//---- return orders volume
   if (buys> 0 ) return (buys);
   else        return (-sells);
  }

//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int     orders= HistoryTotal ();     // history orders total
   int     losses= 0 ;                   // number of losses orders without a break
//---- select lot size
   //lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,2);
   lot= NormalizeDouble ( AccountFreeMargin ()*MaximumRisk/ 100 / MarketInfo ( Symbol (), MODE_TICKVALUE )/StopLoss, 2 );

//---- calcuulate number of losses orders without a break
   if (DecreaseFactor> 0 )
     {
       for ( int i=orders- 1 ;i>= 0 ;i--)
        {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== false ) { Print ( "Error in history!" ); break ; }
         if ( OrderSymbol ()!= Symbol () || OrderType ()> OP_SELL ) continue ;
         //----
         if ( OrderProfit ()> 0 ) break ;
         if ( OrderProfit ()< 0 ) losses++;
        }
       if (losses> 1 ) lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 2 );
     }
//---- return lot size
   if (lot< 0.01 ) lot= 0.01 ;
   return (lot);
  }
   //-------------------------------------------------

   /* эта часть из индикатора*/
   int CheckBreakoutLines( int shift)
{
   // Total Objects 
   int obj_total = ObjectsTotal ();

   // Time of bar 
   datetime now = Time [shift];

   // Iterate
   for ( int i = obj_total - 1 ; i >= 0 ; i--)
   {
       // Object name
       string label = ObjectName (i);

       // Types
       int OType = ObjectType (label);
       bool trendline = false ;
       bool hline = false ;

       // Price to evaluate
       double cprice = 0 ;

       // Trendlines
       if (OType == OBJ_TREND )
      {
         bool ray = ObjectGet (label, OBJPROP_RAY );
         if (!ray)
         {
             datetime x1 = ObjectGet (label, OBJPROP_TIME1 );
             datetime x2 = ObjectGet (label, OBJPROP_TIME2 );
             if (x1 < now && x2 < now) continue ;
         }
         cprice = GetCurrentPriceOfLine(label, shift);
         trendline = true ;
      } else if (OType == OBJ_HLINE ) {
         cprice = ObjectGet (label, OBJPROP_PRICE1 );
         hline = true ;
      } else {
         continue ;
      }

       // Breakouts and false breakouts of trendlines and hlines
       if (MA>cprice && Ask <cprice)
      {
         if (trendline) { return (OP_BUY_); } else if (hline) { return (OP_BUY_); }
      } else if (MA>cprice && Ask <cprice) {
         if (trendline) { return (OP_SELL_); } else if (hline) { return (OP_SELL_); }    
      }
     }
   return ( EMPTY_VALUE );       
}

double GetCurrentPriceOfLine( string label, int shift)
{
   double price1 = ObjectGet (label, OBJPROP_PRICE1 );
   double price2 = ObjectGet (label, OBJPROP_PRICE2 );
   datetime d1   = ObjectGet (label, OBJPROP_TIME1 );
   datetime d2   = ObjectGet (label, OBJPROP_TIME2 );
   int shiftfrom = iBarShift ( Symbol (), 0 , d1, false );
   int shiftto   = iBarShift ( Symbol (), 0 , d2, false );
   int lapse = MathAbs (shiftto - shiftfrom);
   int distance = MathAbs (shift - shiftfrom);
   double pendiente = (price2 - price1) / lapse;
   double cpoint = price1 + (distance * pendiente);
   return (cpoint);
}
   //-------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   int     res;

//--------------------------------------------------------------------+
//---- buy conditions 
 if (OP_BUY_&&b_1)
     {
      res= OrderSend ( Symbol (), OP_BUY ,LotsOptimized(), Ask , 3 , Ask -(StopLoss* Point ), Ask +TakeProfit* Point , " VV" ,MAGIC, 0 ,Green);
      b_1= false ; s_1= true ; 
       return ;
     }  

//---- sell conditions
     if (OP_SELL_&&s_1)
 {
      res= OrderSend ( Symbol (), OP_SELL ,LotsOptimized(), Bid , 3 , Bid +(StopLoss* Point ), Bid -TakeProfit* Point , " VV" ,MAGIC, 0 ,Red);
        s_1= false ;b_1= true ;
       return ;
     } 
//----
  }

//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
//---- check for history and trading
   if ( Bars < 100 || IsTradeAllowed ()== false ) return ;

//---- calculate open orders by current symbol
   if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen();
  }   

//+------------------------------------------------------------------+
//|---------------------------// END //------------------------------|
//+------------------------------------------------------------------+
 
LRA :

Programı not defterine yükledim ve boş satırları sildim. Bir göz atmak için bir fırsat vardı. SRC düğmesine bastım ve yerleştirdim. İşte olanlar. 1) Neden tanımla

zaten OP_BUY=0 ve OP_SELL=1 varsa

2) Kötülüğün kökü bu parçadadır. Aynı koşul (MA>cprice &&Ask<cprice) iki kez kontrol edilir ve farklı kararlar alınır.

3) Her şubede daha fazla kontrol yapılır, ancak sonuç hala aynıdır.

ve genel olarak yukarıdaki satır basitleştirilebilir ve bu şekilde yazılabilir.


Cevap için teşekkürler, değiştirdim ama yine de OP_SELL =1 olduğundan anladığım kadarıyla sadece SATIŞ açılıyor. Bu koşul her zaman karşılanır. böyle değiştirdim

siparişlerin açılması durdu bence çalışmıyor int CheckBreakoutLines(int shift) Belki olması gerektiği yerde değil mi?

 //+------------------------------------------------------------------+
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                             http://www.mql4.com/ru/users/rustein |
//+------------------------------------------------------------------+
#define MAGIC   131313 // открытие внутрь канала
//---------------------------------------
extern int TF= 15 ;
extern int     StopLoss          = 300 ;
extern double TakeProfit = 3000 ;
extern int Per_MA= 20 ;
extern double Lots              = 0.1 ;
extern double MaximumRisk       = 1 ;
extern double DecreaseFactor    = 0 ;
bool OP_BUY_= false ;   
bool OP_SELL_ = false ;   

bool b_1= true , s_1= true ;

//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
 double MA= iMA ( NULL ,TF,Per_MA, 0 , 0 , 0 , 1 );
int CalculateCurrentOrders( string symbol)
  {
   int buys= 0 ,sells= 0 ;
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false ) break ;
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==MAGIC)
        {
         if ( OrderType ()== OP_BUY )  buys++;
         if ( OrderType ()== OP_SELL ) sells++;
        }
     }
//---- return orders volume
   if (buys> 0 ) return (buys);
   else        return (-sells);
  }

//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int     orders= HistoryTotal ();     // history orders total
   int     losses= 0 ;                   // number of losses orders without a break
//---- select lot size
   //lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,2);
   lot= NormalizeDouble ( AccountFreeMargin ()*MaximumRisk/ 100 / MarketInfo ( Symbol (), MODE_TICKVALUE )/StopLoss, 2 );
//---- calcuulate number of losses orders without a break
   if (DecreaseFactor> 0 )
     {
       for ( int i=orders- 1 ;i>= 0 ;i--)
        {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )== false ) { Print ( "Error in history!" ); break ; }
         if ( OrderSymbol ()!= Symbol () || OrderType ()> OP_SELL ) continue ;
         //----
         if ( OrderProfit ()> 0 ) break ;
         if ( OrderProfit ()< 0 ) losses++;
        }
       if (losses> 1 ) lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 2 );
     }
//---- return lot size
   if (lot< 0.01 ) lot= 0.01 ;
   return (lot);
  }
   //-------------------------------------------------

   /* эта часть из индикатора*/
   int CheckBreakoutLines( int shift)
{
   // Total Objects 
   int obj_total = ObjectsTotal ();
   // Time of bar 
   datetime now = Time [shift];
   // Iterate
   for ( int i = obj_total - 1 ; i >= 0 ; i--)
   {
       // Object name
       string label = ObjectName (i);
       // Types
       int OType = ObjectType (label);
       bool trendline = false ;
       bool hline = false ;
       // Price to evaluate
       double cprice = 0 ;
       // Trendlines
       if (OType == OBJ_TREND )
      {
         bool ray = ObjectGet (label, OBJPROP_RAY );
         if (!ray)
         {
             datetime x1 = ObjectGet (label, OBJPROP_TIME1 );
             datetime x2 = ObjectGet (label, OBJPROP_TIME2 );
             if (x1 < now && x2 < now) continue ;
         }
         cprice = GetCurrentPriceOfLine(label, shift);
         trendline = true ;
      } else if (OType == OBJ_HLINE ) {
         cprice = ObjectGet (label, OBJPROP_PRICE1 );
         hline = true ;
      } else {
         continue ;
      }
       // Breakouts and false breakouts of trendlines and hlines
       if (MA>cprice && Ask <cprice)
      {OP_BUY_= true ;
         if (trendline ||hline)   return (OP_BUY_); 
      } else if (MA<cprice && Bid >cprice) {OP_SELL_ = true ;
         if (trendline ||hline)   return (OP_SELL_);     
      }
     }
   return ( EMPTY_VALUE );       
}

double GetCurrentPriceOfLine( string label, int shift)
{
   double price1 = ObjectGet (label, OBJPROP_PRICE1 );
   double price2 = ObjectGet (label, OBJPROP_PRICE2 );
   datetime d1   = ObjectGet (label, OBJPROP_TIME1 );
   datetime d2   = ObjectGet (label, OBJPROP_TIME2 );
   int shiftfrom = iBarShift ( Symbol (), 0 , d1, false );
   int shiftto   = iBarShift ( Symbol (), 0 , d2, false );
   int lapse = MathAbs (shiftto - shiftfrom);
   int distance = MathAbs (shift - shiftfrom);
   double pendiente = (price2 - price1) / lapse;
   double cpoint = price1 + (distance * pendiente);
   return (cpoint);
}
   //-------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   int     res;

//--------------------------------------------------------------------+
//---- buy conditions 
 if (OP_BUY_&&b_1)
     {
      res= OrderSend ( Symbol (), OP_BUY ,LotsOptimized(), Ask , 3 , Ask -(StopLoss* Point ), Ask +TakeProfit* Point , " VV" ,MAGIC, 0 ,Green);
      b_1= false ; s_1= true ; 
       return ;
     }  

//---- sell conditions
     if (OP_SELL_ &&s_1)
 {
      res= OrderSend ( Symbol (), OP_SELL ,LotsOptimized(), Bid , 3 , Bid +(StopLoss* Point ), Bid -TakeProfit* Point , " VV" ,MAGIC, 0 ,Red);
        s_1= false ;b_1= true ;
       return ;
     } 
//----
  }

//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
//---- check for history and trading
   if ( Bars < 100 || IsTradeAllowed ()== false ) return ;
//---- calculate open orders by current symbol
   if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen();
  }   

//+------------------------------------------------------------------+
//|---------------------------// END //------------------------------|
//+------------------------------------------------------------------+
Warstein
Warstein
  • www.mql5.com
Профиль трейдера
 

Sevgili uzmanlar. Kurulumdan önce, MT4 kurulumu sırasında veya sonrasında, daha sonra alıntıların geçmişi sistem diski dışındaki herhangi bir diskten yazılması/okunması için ne yapılması gerekiyor, yoksa bu mümkün değil mi?

Tüm aracılardan MT4, her şeyi C:\Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (sırasıyla her aracı ve terminallerinin her biri için) üzerine atar. 3-4 çift için iki brokerden iki MT4 25GB, yani tüm boş hafızayı yedi. Aynı yerde, test sırasında gerekli alıntılar test cihazı C:\Users\.......\tester\history içine yüklenir.

Lütfen disk boyutlarının yeniden dağıtılmasıyla Windows'un yeniden yüklenmesini (7'im var) dikkate almayan tavsiyelerle yardımcı olun. Belki yanlış bir şey yapıyorum? Eğer kaçırdıysam ve bu daha önce bir yerde tartışıldıysa - lütfen bana bir bağlantı atın ...

Şimdiden teşekkürler.

 
piranija :

Sevgili uzmanlar. Kurulumdan önce, MT4 kurulumu sırasında veya sonrasında, daha sonra alıntıların geçmişi sistem diski dışındaki herhangi bir diskten yazılması/okunması için ne yapılması gerekiyor, yoksa bu mümkün değil mi?

Tüm aracılardan MT4, her şeyi C:\Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (sırasıyla her aracı ve terminallerinin her biri için) üzerine atar. 3-4 çift için iki brokerden iki MT4 25GB, yani tüm boş hafızayı yedi. Aynı yerde, test sırasında gerekli alıntılar test cihazı C:\Users\.......\tester\history içine yüklenir.

Lütfen disk boyutlarının yeniden dağıtılmasıyla Windows'un yeniden yüklenmesini (7'im var) dikkate almayan tavsiyelerle yardımcı olun. Belki yanlış bir şey yapıyorum? Kaçırdıysam ve bu daha önce bir yerde tartışıldıysa - lütfen bana bir bağlantı atın ...

Şimdiden teşekkürler.

Basit bir kopyalama ile terminalin tüm klasörünü sistem dışı bir sürücüye aktarın, bunun için bir kısayol oluşturun ve /portable anahtarını yazın