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

 

demlin :
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?

https://docs.mql4.com/en/constants/marketinfo

MarketInfo( Symbol (), MODE_TICKVALUE);
 
LazarevDenis :

lütfen danışmana hangi kodu gireceğimi söyleyin, böylece danışman saatte yalnızca bir kez işlem yapar

örneğin, danışman çalıştı, bir sipariş açıldı (artık ilgilenmiyor), siparişin artık saatlik zaman diliminde mevcut çubukta açılmaması gerekiyor

her şey şuna benziyor:

int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
if (CurrentHour!=ss)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Puan,Bid+3*Puan);
hh=ZamanSaati(ZamanAkım());
}

ama sayısız siparişim açık

 int hh = 0 ;
start() ve init()'ten önce ayarlanması gerekir
 
Beyler, tarih test cihazında manuel ticaret için bir danışman bulmama yardım edin. Kod tabanında birkaç tane var, nrafi'nin sol alt köşesindeki etiketleri sürükleyerek kontrol edilen birine ihtiyacım var. Çok basit, bulamıyorum. HistTraining ve Test Görselleştirme. Manuel ticaret aynı değildir. Bekleyin, danışman, testin durduğu seviyeleri yine de ayarlayabilirsiniz.
 
demlin :

Merhaba!

Bunun ne anlama geldiğini söyle:

Satın alma emri ...... başarısız oldu [Ticaret zaman aşımı]

Özellikle, bu zaman aşımı nedir

https://www.mql5.com/ru/forum/112612
Bu, bir ticaretin açılıp açılmadığına bakılmaksızın, sunucudan bir yanıt beklemek için geçen süredir. Ayrıca, işlemin açılmadığına dair bir garanti yoktur.

Bu nedenle, geliştiricilerin önerdiği gibi, bir dakika içinde siparişin açılıp açılmadığını kontrol etmek ve ancak bundan sonra devam etmek gerekir.

 

rlx :


start() ve init()'ten önce ayarlanması gerekir


int hh = 0;
int init()
{
dönüş(0);
}
int başlangıç()
{
//------------------------------------------------ -
int sayıcı;
countorder=SiparişToplam();
if (countorder==0)
{
Uyarı ("açık sipariş yok");
}başka
{
Uyarı ("açık siparişler var");
}
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
if ((CurrentHour!=ss)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Puan,Bid+3*Puan);
hh=ZamanSaati(ZamanAkım());
}
//------------------------------------------------ -
dönüş(0);
}

int tanım()
{
dönüş(0);
}

dediklerini yaptım, yardımcı olmadı, açık emirlerin sayısını hesaba kattı, şimdi bir öncekini kapattıktan hemen sonra emirleri açıyor

OrderCloseTime() üzerinden bir yoldan saptım, şimdi çalışıyor gibi görünüyor

int sayıcı;
countorder=SiparişToplam();
if (countorder==0)
{
Uyarı ("açık sipariş yok");
}başka
{
Uyarı ("açık siparişler var");
}
int hh;
int CurrentHour;
int LastOrderCloseTime;
CurrentHour=TimeHour(TimeCurrent());


OrderSelect (HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
hh=ZamanSaati(SiparişKapanZamanı());


if ((CurrentHour!=ss)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Puan,Bid+3*Puan);
}

 
rlx :

https://www.mql5.com/ru/forum/112612
Bu, bir ticaretin açılıp açılmadığına bakılmaksızın, sunucudan bir yanıt beklemek için geçen süredir. Ve işlemin açılmadığına dair hiçbir garanti yoktur.

Bu nedenle, geliştiricilerin önerdiği gibi, bir dakika içinde siparişin açılıp açılmadığını kontrol etmek ve ancak bundan sonra devam etmek gerekir.

cevaplar için teşekkürler
 
Roger :

Sıkıcı olmak istemiyorum ama...

OrderTotal() sıfır ise siparişin nasıl açılacağını bana açıklayın.

Teşekkür ederim.


Aşağıda, koşul altında yürütülen bir kod bloğunu sınırlayan parantezli bir resim bulunmaktadır.

 if ( OrdersTotal ()> 0 &&tral> 0 &&OrderMagicNumber()==MAGIC&&(OrderType()==OP_SELL||OrderType()==OP_BUY))

OrderSend() işlemleri bu koşuldan etkilenmez.

 

"gelecekte" bar numarası nasıl alınır :)

iBarShift() işlevi, geçmişten çubuk numarasını almak için harika çalışır, ancak satırı sağa, sıfır çubuğunun ötesine taşırsanız, bu kod için çubuk numarası nasıl alınır?

 static string name_vline = "linescr" ;
//________________________________________________
int init(){
   DrawLine(name_vline,Time[ 5 ], Red );
return ( 0 );
}
//________________________________________________
int deinit() {
return ( 0 );
}
//________________________________________________
int start(){
   datetime X;
   X = ObjectGet(name_vline,OBJPROP_TIME1);
   Comment ( "Координата X = " ,iBarShift( NULL , 0 ,X), "\n" ,
           "Время = " ,TimeToStr(X));
return ( 0 );
}
//________________________________________________
void DrawLine( string name, datetime tim, color cl){
   ObjectCreate (name, OBJ_VLINE , 0 , tim, Close[ 0 ], tim, Close[ 0 ]);
   ObjectSet(name, OBJPROP_BACK   , false);
   ObjectSet(name, OBJPROP_COLOR , cl);
   ObjectSet(name, OBJPROP_STYLE , STYLE_SOLID );      
   ObjectSet(name, OBJPROP_WIDTH , 0 );
}
 
IgorM :

"gelecekte" bar numarası nasıl alınır :)

iBarShift() işlevi, geçmişten çubuk numarasını almak için harika çalışır, ancak satırı sağa, sıfır çubuğunun ötesine taşırsanız, bu kod için çubuk numarası nasıl alınır?

Time[0]'a göre bir ofset alabilirsiniz

shift = MathRound ((Time[ 0] - X) / ( Period ()* 60 ));
 
rlx :

Time[0]'a göre bir ofset alabilirsiniz

Teşekkür ederim! Şimdi herşey iyi!

 static string name_vline = "linescr" ;
//________________________________________________
int init(){
   DrawLine(name_vline,Time[ 5 ], Red );
return ( 0 );
}
//________________________________________________
int deinit() {
return ( 0 );
}
//________________________________________________
int start(){
   datetime X;
   X = ObjectGet(name_vline,OBJPROP_TIME1);
   if (X<=Time[ 0 ])
         Comment ( "Координата X = " ,iBarShift( NULL , 0 ,X), "\n" ,   "Время = " ,TimeToStr(X));
   else
         Comment ( "Координата X = " , MathRound ((Time[ 0 ] - X) / ( Period ()* 60 )), "\n" , "Время = " ,TimeToStr(X));
return ( 0 );
}
//________________________________________________
void DrawLine( string name, datetime tim, color cl){
   ObjectCreate (name, OBJ_VLINE , 0 , tim, Close[ 0 ], tim, Close[ 0 ]);
   ObjectSet(name, OBJPROP_BACK   , false);
   ObjectSet(name, OBJPROP_COLOR , cl);
   ObjectSet(name, OBJPROP_STYLE , STYLE_SOLID );      
   ObjectSet(name, OBJPROP_WIDTH , 0 );
}