MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 158

 
-Aleks- :

bu tasarıma sahibim

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;


Teşekkür ederim!!!
 
Uzmanlardan biri bile mesajları okumak istemiyorsa neden bir konu oluşturduğunu merak ediyorum. Neden yardım istedim. Bu dalda ise, tüm uzmanlar derinde derindir.
 
vannoo :
Uzmanlardan biri bile mesajları okumak istemiyorsa neden bir konu oluşturduğunu merak ediyorum. Neden yardım istedim. Bu dalda ise, tüm uzmanlar derinde derindir.

Bunu sen yazdın:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

vannoo , 2017.03.17 15:57

İnsanlar bana burada neyi yanlış yaptığımı söyleyebilirler, öyle değil; Yaklaşık üç haftadır MQL4 Uzman Danışmanları yazmayı öğreniyorum! Ve böylece her şey yolundaymış gibi hiçbir hata veya uyarı derledim. Sonra büyük bir AMA ortaya çıktı, çalışmak istemiyor. Belki burada birileri bana nerede yanıldığımı ve neyi yanlış yaptığımı söyler. Herhangi biri önermeyi kabul ederse bana bildirin. Ve hemen buraya nasıl atılacağını yazın, yoksa ilk defa buradayım ve burada nasıl yapılır. Nasıl olduğunu görmeme rağmen.
Peki, burada size ayrıntılı olarak cevap verebilecekler .
 
Merhaba! Tavsiye için yardım ... Riske değer MT 4'üm var ... Her şeyi yapmaya çalıştım (yeniden başlat, sistemi geri yükle, eskisini siktir et, yenisini indir) hiçbir şey yardımcı olmuyor. ... eğer açarsan, kapatman gerekir, görev yöneticisinden yap
 

herkese selam

Programlamada yeniyim ama öğrenmeye çalışıyorum)

Göstergeye göre bir siparişi kapatmakla ilgili büyük bir sorunum yok

Açılış ve kapanış şartlarını hemen anlatacağım, bir hindinin endikasyonlarına göre bir anlaşma açıp endikasyonlara göre siparişi kapatıyorum ama tam tersi yönde, stop ve karsız

if(r > 50 && p > m) // sipariş açma koşulları satın al

{

biletB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",111,0,Yeşil); // satın alma emri açma

}

Sipariş kapatma koşulunu doğru yazıyor muyum?

if(r < 50 && p < m) --- bu, bir siparişi satmak ve kapatmak için bir koşuldur

{

SiparişKapat(ticketB,0.1,Teklif,5,Kırmızı);

}

ve başlatılmamış 'ticketB' değişkeninin olası kullanımını atar ve 'OrderClose' dönüş değeri kontrol edilmelidir

Beyler bana nerede yanlış yazdığımı söyler misiniz?

 

Söyle bana, lütfen, tarihlerin bir döngü yinelemesini nasıl yapacağımı - yıllar ve çeyrekler arasında - aralıklar üzerinde yinelemem gerekiyor.

Örneğin, ilk aralık 01/01/2010 - 31/12/2010, ikincisi 01/01/2011 - 31/12/2011 - bunu bir döngü içinde nasıl organize edebilirim?

 

Kendimi daha önce açıkça ifade etmediysem, işte bir şekilde sıkıştırmak istediğim bir tasarım örneği ...


    for(int Ti=0; Ti<18; Ti++)
     {
      if(Ti==0)  {start_time=D'01.01.2000'; stop_time=D'31.12.2000';}
      if(Ti==1)  {start_time=D'01.01.2001'; stop_time=D'31.12.2001';}
      if(Ti==2)  {start_time=D'01.01.2002'; stop_time=D'31.12.2002';}
      if(Ti==3)  {start_time=D'01.01.2003'; stop_time=D'31.12.2003';}
      if(Ti==4)  {start_time=D'01.01.2004'; stop_time=D'31.12.2004';}
      if(Ti==5)  {start_time=D'01.01.2005'; stop_time=D'31.12.2005';}
      if(Ti==6)  {start_time=D'01.01.2006'; stop_time=D'31.12.2006';}
      if(Ti==7)  {start_time=D'01.01.2007'; stop_time=D'31.12.2007';}
      if(Ti==8)  {start_time=D'01.01.2008'; stop_time=D'31.12.2008';}
      if(Ti==9)  {start_time=D'01.01.2009'; stop_time=D'31.12.2009';}
      if(Ti==10) {start_time=D'01.01.2010'; stop_time=D'31.12.2010';}
      if(Ti==11) {start_time=D'01.01.2011'; stop_time=D'31.12.2011';}
      if(Ti==12) {start_time=D'01.01.2012'; stop_time=D'31.12.2012';}
      if(Ti==13) {start_time=D'01.01.2013'; stop_time=D'31.12.2013';}
      if(Ti==14) {start_time=D'01.01.2014'; stop_time=D'31.12.2014';}
      if(Ti==15) {start_time=D'01.01.2015'; stop_time=D'31.12.2015';}
      if(Ti==16) {start_time=D'01.01.2016'; stop_time=D'31.12.2016';}
      if(Ti==17) {start_time=D'01.01.2017'; stop_time=D'31.12.2017';}
    }
 

Bir dizedeki bir noktayı virgülle değiştirmek istiyorum - çalışmıyor - neyi yanlış yapıyorum?


 string str_avrMassSell= DoubleToString (avrMassSell, 2 );
str_avrMassSell= StringReplace (str_avrMassSell, "." , "," );
 
-Aleks- :

Kendimi daha önce açıkça ifade etmediysem, işte bir şekilde sıkıştırmak istediğim bir tasarım örneği ...



yıllara göre böyle bir şey olabilirse

 //+------------------------------------------------------------------+
//|                                                    Year_Test.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link        "http://vinin.ucoz.ru"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
 input int       Ti= 18 ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   datetime start_time= D'01.01.2000' ;
   datetime stop_time= D'31.12.2000' ;

   for ( int ti= 1 ;ti<Ti;ti++)
   {   
   
   start_time=start_time+ 31536000 ;
   if ( TimeDay (start_time)== 31 ) start_time+= 86400 ;


   stop_time=stop_time+ 31536000 ;

   if ( TimeDay (stop_time)== 30 ) stop_time+= 86400 ;

   Print ( "ti = " , ti, " Start = " , TimeToStr (start_time, TIME_DATE ), " Stop = " , TimeToStr (stop_time, TIME_DATE ));
   }
   
  }

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 17 Başlangıç = 2017.01.01 Durdur = 2017.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 16 Başlangıç = 2016.01.01 Durdur = 2016.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 15 Başlangıç = 2015.01.01 Durdur = 2015.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 14 Başlangıç = 2014.01.01 Durdur = 2014.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 13 Başlangıç = 2013.01.01 Durdur = 2013.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 12 Başlangıç = 2012.01.01 Durdur = 2012.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 11 Başlangıç = 2011.01.01 Durdur = 2011.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 10 Başlangıç = 2010.01.01 Durdur = 2010.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 9 Başlangıç = 2009.01.01 Durdur = 2009.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 8 Başlangıç = 2008.01.01 Durdur = 2008.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 7 Başlangıç = 2007.01.01 Durdur = 2007.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 6 Başlangıç = 2006.01.01 Durdur = 2006.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 5 Başlangıç = 2005.01.01 Durdur = 2005.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 4 Başlangıç = 2004.01.01 Durdur = 2004.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 3 Başlangıç = 2003.01.01 Durdur = 2003.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 2 Başlangıç = 2002.01.01 Durdur = 2002.12.31

2017.03.20 21:24:14.002 Yıl_Test EURUSD,M15: Ti = 1 Başlangıç = 2001.01.01 Durdur = 2001.12.31


 
-Aleks- :

Bir dizedeki bir noktayı virgülle değiştirmek istiyorum - çalışmıyor - neyi yanlış yapıyorum?



İşler

 //+------------------------------------------------------------------+
//|                                                StringReplace.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link        "http://vinin.ucoz.ru"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input double    Temp= 999.99 ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   string stemp1= DoubleToStr (Temp, 2 );
   string stemp2=stemp1;
   StringReplace (stemp2, "." , "," );
   Print (stemp1, " = " , stemp2);
   
  }
//+------------------------------------------------------------------+

2017.03.20 21:39:02.802 StringReplace EURUSD,M15: 999,99 = 999,99


Neden: