[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 226

 
doon :

Danışmana belirli bir zamanda nasıl alış veya satış yaptırılır ( uyku kullanmayın)?

Tarih-saat işlevleri yardımcı olacaktır: https://book.mql4.com/ru/functions/datetime
 
Fam :
Tarih-saat işlevleri yardımcı olacaktır: https://book.mql4.com/ru/functions/datetime

Teşekkürler, ama yine de oraya bir fiş eklemeniz gerekiyor.

 
İnsanlar! Riske bağlı olarak çok fazla ticaret yaptığımdan emin olmaya çalışıyorum .... iyi, işe yaramıyor .... yazıyor
 EURUSD,M15: OrderSend error 4051

lütfen hata nerede söyleyin...

 void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend ( Symbol (),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC, 0 ,clOpenBuy); 
   if (UseSound) PlaySound (NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend ( Symbol (),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC, 0 ,clOpenSell); 
   if (UseSound) PlaySound (NameFileSound); 
} 
string GetCommentForOrder() {   return (Name_Expert); } 
double GetSizeLot() { 
   double ldlot=Lots;
   int     orders=HistoryTotal();     // history orders total
   int     losses= 0 ;                   // number of losses orders without a break
   ldlot= NormalizeDouble (AccountFreeMargin()*MaximumRisk/ 1000.0 , 1 );
   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 ) ldlot= NormalizeDouble (ldlot-ldlot*losses/DecreaseFactor, 1 );
     }
   if (ldlot< 0.1 ) ldlot= 0.1 ;
                         } 
double GetStopLossBuy() {       return (Bid-sStopLoss* Point );} 
double GetStopLossSell() {       return (Ask+sStopLoss* Point ); } 
double GetTakeProfitSell() {     return (Bid-sTakeProfit* Point ); } 
double GetTakeProfitBuy() {     return (Bid+sTakeProfit* Point ); } 

return ( 0 );
 

Herkese teşekkürler, deneyeceğim...
 
charter :

Korkarım bu sadece zaman serileri için geçerli.

Benim durumumda, onu dürtecek bir yer bile yok.

Fikriniz doğru, yani. Sıralamayı bir şekilde genişletmem gerekiyor ama henüz nasıl yapacağımı bilmiyorum


endişelenme, işe yarıyor
 
Vovo4ka :
İnsanlar! Riske bağlı olarak çok fazla ticaret yaptığımdan emin olmaya çalışıyorum .... iyi, işe yaramıyor .... yazıyor

lütfen hata nerede söyleyin...


partiye bir çizgi koymayı unuttum
 return (ldlot);
 
todem :

partiye bir çizgi koymayı unuttum

tam olarak ...... unuttum .... ATP büyük .... yoksa zaten 20 kez kontrol ettim, ne olduğunu anlayamadım ..))
 

Requote+slippage ile ilgili bir soruyla ilgili yardım.

Durum şu şekilde - Uzman Danışman olarak işlem yapmak için emir gönderiyorum, Slippage=3pt, 138 Requote hatası çıkıyor. RefreshRates() yapıyorum ve yeni bir Ask ile tekrar deniyorum, ancak sunucuda fiyat zaten gönderdiğim Ask'tan daha iyi (RefreshRates()'ten sonra ikinci kez) ve mantıksal olarak, onunla aynı fikirde olmanız gerekiyor, ancak nedeniyle uygulamadaki Slippage boyutundan sunucudaki fiyat sapmasının daha fazla olması - böyle bir uygulama reddedilir. ((((

Böyle bir durum nasıl kontrol edilebilir? Onlar. fiyat sunucuda daha iyiyse, uygulamanın sunucu tarafından kabul edilmesi için Slippage'i ayırın. Yoksa mümkün değil mi?

 
ZZZEROXXX :

Requote+slippage ile ilgili bir soruyla ilgili yardım.

Durum şu şekilde - Uzman Danışman olarak işlem yapmak için emir gönderiyorum, Slippage=3pt, 138 Requote hatası çıkıyor. RefreshRates() yapıyorum ve yeni bir Ask ile tekrar deniyorum, ancak sunucuda fiyat zaten gönderdiğim Ask'tan daha iyi (RefreshRates()'ten sonra ikinci kez) ve mantıksal olarak, onunla aynı fikirde olmanız gerekiyor, ancak nedeniyle uygulamadaki Slippage boyutundan sunucudaki fiyat sapmasının daha fazla olması - böyle bir uygulama reddedilir. ((((

Böyle bir durum nasıl kontrol edilebilir? Onlar. fiyat sunucuda daha iyiyse, uygulamanın sunucu tarafından kabul edilmesi için Slippage'i ayırın. Yoksa mümkün değil mi?


Kaymayı artırın. Hızlı bir piyasada anlaşmalar açılmış gibi görünüyor. Bazen önemli bir haberden sonra aynı Eurobucks'ın 1-2 vuruşta patladığı oluyor, ki bu sadece bir kabus. Sunucu, danışmanın siparişini işlerken, fiyat çok hızlı değişiyor.
 
Zhunko :
MT4'ün yerleşik bir dönüştürücüsü vardır. Servis -> Alıntılar arşivi .

Teşekkür ederim! Ama amaç şu. Yer değiştiren günlük çubuklar (şamdanlar) tekliflerin alınmasıyla güncellenir, grafik normal bir grafik gibi davranır: üzerine başka göstergeler, danışmanlar asabilir, kanallar, seviyeler vb. oluşturabilirsiniz. Standart olmayan zaman dilimleri gibi bir şey olmalıdır, yalnızca standart olmayan, çubukların (mumların) terminal zamanına göre kaymasıdır: H4 - -3, -2, -1, 1, 2 veya 3 saat; D1 - -23, -22, ... 1, 2, ... veya 23 saatte; W1 - -6, -5, ... veya 6 gün ve benzeri için. Ofset , göstergenin giriş parametrelerinde belirtilmelidir.

Böyle bir şey var mı?

Şimdiden teşekkürler.