[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 302

 
Tamam beyler çok teşekkür ederim çok yardımcı oldular, "kalın" için özür dilerim ))
 
Parn25 :

İnsanlara pek yardım etmeyin!!

Sabah kanal strateji danışmanı yazmaya çalışıyorum. Sonuç olarak, EURGBP çiftinde saat 6:01'de fiyat hareketi kanalını sabah 0'dan sabah 6'ya kadar belirliyoruz. İki geciktirici söndürüyoruz ve tetiklenen geciktirici stop ile kapandıysa ters yönde açıyoruz. İşe yaramayan stratejinin ikinci kısmıdır. Onlar. stop tetiklenirse, ters yönde emir açmak mümkün değildir.

Bu yüzden hemen durağa bekleyen bir stop koymanız gerekiyor! Otomatik olarak çalışacaktır.

Çöpte buldum, faydalı olabilir.

 void OrderCloseAll(){
   for ( int i= 0 ;i< OrdersTotal ();i++)
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
       if ( OrderType ()==OP_BUY)
       OrderClose ( OrderTicket (), OrderLots (), Bid, Slippage, CLR_NONE );
       else
       if ( OrderType () == OP_SELL)
       OrderClose ( OrderTicket (), OrderLots (), Ask, Slippage, CLR_NONE );
}

void OrderDeleteAll( int lots){
     for ( int i= 0 ;i< OrdersTotal ();i++)
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
         if ( OrderType ()> 1 && OrderType ()< 6 )
         if ( OrderLots ()==lots){
           OrderDelete ( OrderTicket ());
          i= 0 ;
         }
}
 //----------------------------------------------------
// покупка
void OpenBuyLIMIT( double lot, double price){
   double    SL = NormalizeDouble (price, Digits ) - Loss* Point ;
   double TP = NormalizeDouble (price, Digits ) + Target* Point - MarketInfo ( Symbol (),MODE_SPREAD)* Point ;
     OrderSend ( Symbol (), OP_BUYLIMIT, lot,   NormalizeDouble (price, Digits ), Slippage, SL, TP, NULL , STUPID, 0 , Blue );
}
 //----------------------------------------------------
// продажа
void OpenSellLIMIT( double lot, double price){
   double    SL = NormalizeDouble (price, Digits ) + Loss* Point ;
   double TP = NormalizeDouble (price, Digits ) - Target* Point + MarketInfo ( Symbol (),MODE_SPREAD)* Point ;
   OrderSend ( Symbol (), OP_SELLLIMIT, lot,   NormalizeDouble (price, Digits ), Slippage,  SL, TP, NULL , STUPID, 0 , Red );
}
 //----------------------------------------------------
// покупка
void OpenBuySTOP( double lot, double price){
   double    SL = NormalizeDouble (price, Digits ) - Loss* Point ;
   double TP = NormalizeDouble (price, Digits ) + Target* Point - MarketInfo ( Symbol (),MODE_SPREAD)* Point ;
   OrderSend ( Symbol (), OP_BUYSTOP, lot,   NormalizeDouble (price, Digits ), Slippage, SL, TP, NULL , STUPID, 0 , Blue );
}
 //----------------------------------------------------
// продажа
void OpenSellSTOP( double lot, double price){
   double    SL = NormalizeDouble (price, Digits ) + Loss* Point ;
   double TP = NormalizeDouble (price, Digits ) - Target* Point + MarketInfo ( Symbol (),MODE_SPREAD)* Point ;
   OrderSend ( Symbol (), OP_SELLSTOP, lot,   NormalizeDouble (price, Digits ), Slippage,  SL, TP, NULL , STUPID, 0 , Red );
}
Dosyalar:
 
Parn25 :

İnsanlara pek yardım etmeyin!!

Sabah kanal strateji danışmanı yazmaya çalışıyorum. Sonuç olarak, EURGBP çiftinde saat 6:01'de fiyat hareketi kanalını sabah 0'dan sabah 6'ya kadar belirliyoruz. İki adet geciktirici söndürüyoruz ve tetiklenen geciktirici stop ile kapandıysa ters yönde açıyoruz. İşe yaramayan stratejinin ikinci kısmıdır. Onlar. stop tetiklenirse, ters yönde emir açmak mümkün değildir.
Geciktiricili bir örnek, bunun gibi bir şeydir.
Dosyalar:
 
costy_ :
Geciktiricili bir örnek, bunun gibi bir şeydir.
tamam teşekkürler deneyeceğim!!
 

Merhaba.

Bugün hafta sonu yani sadece görsel test cihazı çalışıyor demektir :) Test cihazında gösterge değerlerini script ile bir dosyaya yüklemeye başlıyorum ve o anki gerçek tarihten (28 Ekim'den itibaren: 23 Ekim: 55).

Genel olarak, görsel test cihazının son çubuğunun değeri (zamanı) betiğe nasıl iletilir?

 int start = iBarShift ( NULL , 0 ,Time[ 2200 +EndB- 1 ]);
int end   = iBarShift ( NULL , 0 ,Time[EndB]);

EndB betiğinde nasıl aktarılır ve hesaplanır - test cihazındaki son çubuğun değeri?

not aşırı durumlarda, tüm komut dosyası kodunu bir uzmana gönderirim vb.

 

Güzel gün!

Ders kitabını inceliyorum, mümkünse eğitim materyali hakkında bir soru soracağım. Bu sorular için ayrı bir konu varsa, bağlantı için minnettar olacağım.

ROC hız göstergesini anlama (ekli dosyadaki kod).

Doğru anladıysam göstergenin mantığı şu şekilde:

Mevcut çizelgede MA referansı alınır, ondan V hızındaki bir değişim çizgisi çizilir,

daha sonra bir sonraki (daha büyük TF) MA'sı hesaplanır, ancak bir sonraki satır V ondan hesaplanır.

Benzer şekilde bir sonraki TF için.

Soru: Bu girişi anlamadım

harici int Bars_V = 13 ; // Hız hesaplaması için çubuk sayısı
Açıklamalardan gösterge koduna kadar hızın 2 bar değerleri arasındaki fark olarak hesaplandığı söyleniyor.

Ve ilerisi.....

Bu göstergenin kodunu MT4'e yükledim, H4'te gösterge okumaları mevcut çubukta değil, tarihe göre yaklaşık 9-10 gün önce bitiyor.

Diğer TF'lerde her şey yolunda. Nedenmiş?

Yardımlarınız için şimdiden teşekkürler, Saygılar Olga

Dosyalar:
my_roc.mq4  8 kb
 

Tünaydın!

Tüm açık pozisyonların belirli bir süre sonra kapatılması gerekir, yani. açık pozisyonun ömrü, seçilen aralığa karşılık gelmelidir.

Soru. OrderOpenTime () dışında başka çözümler var mı?

 
Zar :

Merhaba.

Bugün hafta sonu yani sadece görsel test cihazı çalışıyor :) Test cihazında gösterge değerlerini script ile bir dosyaya yüklemeye başlıyorum ve o anki gerçek tarihten (28 Ekim'den itibaren: 23 Ekim: 55).

Genel olarak, görsel test cihazının son çubuğunun değeri (zamanı) betiğe nasıl iletilir?

EndB betiğinde nasıl aktarılır ve hesaplanır - test cihazındaki son çubuğun değeri?

not aşırı durumlarda, tüm komut dosyası kodunu bir uzmana gönderirim vb.

Betik, testçinin zamanını o kadar kolay bulamaz (ancak göstergeyi bulacaktır), başlangıca bir test danışmanı ekleyebilirsiniz.

 int start()
{
GlobalVariableSet ( "Time_test" , Time[ 0 ]) ;
.....................

ve senaryoda

 datetime time_start= GlobalVariableGet ( "Time_test" );

hızlı ve güvenilir...

 
Operr :

Tünaydın!

Belirli bir süre sonra tüm açık pozisyonların kapatılması gerekir, yani. açık pozisyonun ömrü, seçilen aralığa karşılık gelmelidir.

Soru. OrderOpenTime () dışında başka çözümler var mı?

Örneğin açılış saatinin bir dosyasına yazmak gibi birçok seçenek vardır, ancak açık siparişler arasında gezinmek ve kullanım süresini karşılaştırmak daha kolaydır.

Ve genel olarak, her bir pozisyon için (soruyu anladığım gibi) "belirli bir süre sonra tüm açık pozisyonları kapatmak gerekir" ifadesini yeniden ifade edin.

 
LOA :

Güzel gün!

Ders kitabını inceliyorum, mümkünse eğitim materyali hakkında bir soru soracağım. Bu sorular için ayrı bir konu varsa, bağlantı için minnettar olacağım.

ROC hız göstergesini anlama (ekli dosyadaki kod).

Doğru anladıysam göstergenin mantığı şu şekilde:

Mevcut çizelgede MA referansı alınır, ondan V hızındaki bir değişim çizgisi çizilir,

daha sonra bir sonraki (daha büyük TF) MA'sı hesaplanır, ancak bir sonraki satır V ondan hesaplanır.

Benzer şekilde bir sonraki TF için.

Soru: Bu girişi anlıyorum

harici int Bars_V = 13 ; // Hız hesaplaması için çubuk sayısı
Açıklamalardan gösterge koduna kadar hızın 2 bar değerleri arasındaki fark olarak hesaplandığı söyleniyor.

Ve ilerisi.....

Bu göstergenin kodunu MT4'e yükledim, H4'te gösterge okumaları mevcut çubukta değil, tarihe göre yaklaşık 9-10 gün önce bitiyor.

Diğer TF'lerde her şey yolunda. Nedenmiş?

Yardımlarınız için şimdiden teşekkürler, Saygılar Olga

"daha büyük TF" - hayır, aynı MA ancak veriler Sh_1 re Sh_1=Bars_V ofseti ile alınır; // Ölçülen hız periyodu (bar)

"Bir sonraki TF için de aynı şekilde." - hayır, başında bir switch var (her TF için katsayılar farklı K2, K3 )

     switch ( Period ())                 // Расчёт коэффициентов для..
     {                             // .. различных ТФ
       case      1 : K2= 5 ;K3= 15 ; break ; // Таймфрейм М1
       case      5 : K2= 3 ;K3= 6 ; break ; // Таймфрейм М5
       case      15 : K2= 2 ;K3= 4 ; break ; // Таймфрейм М15
       case      30 : K2= 2 ;K3= 8 ; break ; // Таймфрейм М30
....
Period_MA_2 =K2*Period_MA_1;   // Расчётн.период МА для ближ. ТФ
Period_MA_3 =K3*Period_MA_1;   // Расчётн.период МА для след. ТФ

" Yakın dönem için MA yakın. TF " tanımı doğru değil, ders kitaplarında her zaman hatalar var (özellikle "hikayeler" çok hoş)

"Soru: Bu girişi anlamadım

harici int Bars_V =13; // Hızları hesaplamak için çubuk sayısı" Bars_V kodunu kullanarak daha fazla bakın ...

   Sh_1=Bars_V;                   // Период измерен скорости (баров)

o zaman Sh_1 nedir, bu değer hız çizgisinin MA 1 ofsetidir, vb.

 // Предназначен для использования в качестве примера в учебнике MQL4.
örnek pek iyi seçilmemiş, standart göstergelerden iş parçacığının daha kolay olduğunu okuyun...
Neden: