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

 
AlGuru : Söyle lütfen. Danışmandaki bir sonraki mumun kapanması nasıl belirtilir?
datetime Time[] - Geçerli grafiğin her çubuğunun açılış saatini içeren bir zaman serisi dizisi. Zaman[0] - son çubuğun açılış zamanı . OrderOpenTime() sipariş açılış süresi Zaman[0] - önceki çubukta emrin açık olduğu ve stratejinize uygun olarak böyle bir emri kapatma zamanının geldiği anlamına gelir
 
STARIJ :
datetime Time[] - Geçerli grafiğin her çubuğunun açılış saatini içeren bir zaman serisi dizisi. Zaman[0] - son çubuğun açılış zamanı . OrderOpenTime() sipariş açılış zamanı daha küçük Zaman[0] - önceki çubukta emrin açık olduğu ve stratejinize göre böyle bir emri kapatma zamanının geldiği anlamına gelir
Ya da unutmuşlar, bir yıl önce açılmış mesela ;)
 
STARIJ :
datetime Time[] - Geçerli grafiğin her çubuğunun açılış saatini içeren bir zaman serisi dizisi. Zaman[0] - son çubuğun açılış zamanı . OrderOpenTime() sipariş açılış süresi Zaman[0] - önceki çubukta emrin açık olduğu ve stratejinize göre böyle bir emri kapatma zamanının geldiği anlamına gelir


Teşekkür ederim! Sorunu yalnızca iTime işleviyle çözdü. Henüz dizilerle arkadaş değilim))).

 
AlGuru :


Teşekkür ederim! Sorunu iTime işleviyle çözdüm. Henüz dizilerle arkadaş değilim))).

Nasıl karar verdiğini göster.

Düşünmemiş olabileceğiniz birkaç şey var:

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

Artyom Trishkin , 2017.05.25 19:43

YILDIZ :
datetime Time[] - Geçerli grafiğin her çubuğunun açılış saatini içeren bir zaman serisi dizisi. Zaman[0] - son çubuğun açılış zamanı . OrderOpenTime() sipariş açılış zamanı daha küçük Zaman[0] - önceki çubukta emrin açık olduğu ve stratejinize göre böyle bir emri kapatma zamanının geldiği anlamına gelir

Ya da unutmuşlar, bir yıl önce açılmış mesela ;)

 
Artyom Trishkin :

Nasıl karar verdiğini göster.

Düşünmemiş olabileceğiniz birkaç şey var:



OrderOpenTime() < iTime( Symbol() , 0, 0)
 
AlGuru :

OrderOpenTime() < iTime(Symbol(), 0, 0)

Ya sipariş açılış saati bir hafta önceyse? O zaman kesinlikle son mumda değildir (eğer grafik haftalık değilse). Onu da kapat?

Elbette her şey aracınızın gereksinimlerine bağlı, ama ben tam tersini yapardım...

 
Artyom Trishkin :

Ya sipariş açılış saati bir hafta önceyse? O zaman kesinlikle son mumda değildir (eğer grafik haftalık değilse). Onu da kapat?

Elbette her şey aracınızın gereksinimlerine bağlı, ama ben tam tersini yapardım...


Bu ek bir koşuldur. Fiyat MA çizgisini geçtiğinde pozisyon kapatılır. Sadece fiyat tam çizgide açılır ve pozisyon her vuruşta açılıp kapanır. Bir sonraki mumdan önce pozisyonu kapatarak sorunu çözdüm.
 

Hepinize iyi günler!

Lütfen bana strateji test cihazında aşağıdaki eylemi nasıl kodlayacağımı söyleyin

Genel anlam

1.N-X siparişi açıldı (hacim = 0.1)

2.Eğer ve bu sipariş SL tarafından kapatılır. kayıpları telafi etmek için NX emrinin SL'sindeki kapanış fiyatında hemen bir N - X1 emri açılır (hacim = 0.3)

İHTİYACIM VAR

3 Emir (hacim = 0.3) SL tarafından kapatılırsa - açıldığı kayıpları telafi etmek için sadece N -X emrinin açılış saatinin değerini hatırlayın.

Her iki emri de nasıl açacağımı biliyorum ama SL tarafından kapatılan 0.1 lot hacimli bir emrin saat değerini nasıl hatırlayacağımı bulamıyorum.

NOT, emirlerin tek bir tıklamayla kapatılmasıyla ilgilidir.

Bazen aynı tik üzerinde 0,1 hacimli ve 0,3 hacimli birden fazla siparişin kapatıldığı olur.

Bir onay SL tarafından kapatılırsa, örneğin 0,1'de 3 sipariş , o zaman 0,3'te 3 sipariş açmak yerine. - sadece 1 adet 0.3 lotluk sipariş açıldı

Bu durumda, SL tarafından yalnızca 0,3 lotluk 1 sipariş kapatıldığında, açıldıkları kayıpları telafi etmek için 0,1 lotluk iki siparişin açılış saatinin değerlerini almayacağım.

Yani, bu durumda, sadece bir tane değil, tam olarak 3 adet 0.3 lotluk siparişin açılmasına ihtiyacım var.


Ve bir tikte SL tarafından kapatılırlar, örneğin, karşılık gelen siparişlerin her birinin 0.1 olmasına rağmen, 0,3 lot hacimli 3 sipariş. lotlar farklı kenelerde açıldı (ancak aynı fiyata)

Bu durumda program yine 0,1 lotluk bir son sipariş için ihtiyacım olan saatin değerini kaydeder.

Ve 0,1 lotluk bir hacimle SL tarafından kapatılan her siparişin saat değerini hatırlamak için programa ihtiyacım var.


İşte sonuçlandırılacak kodum.

Yardım için teşekkürler.

 int   A2;
int A1;
int A;
int start()                                             
{                                               
int ot = OrdersTotal ();                                         
int Ht = OrdersHistoryTotal ();
                                                
                                                
if ( Bid == iOpen ( NULL , PERIOD_H1 , 0 ))
if ( A!= Hour () )
{
OrderSend ( Symbol (), OP_SELL , 0.1 , Bid , 3 , Ask + 400 * Point , Ask - 200 * Point , "jfh" , 123 );
A = Hour ();
}                                               
//**************************************************************************************
int Счет= 0 , Номер= OrdersHistoryTotal ()- 1 ;
//int A1=0;
   for ( ; Номер>= 0 ; Номер--)
  {
     if (! OrderSelect (Номер, SELECT_BY_POS , MODE_HISTORY )) continue ;
    A1= OrderOpenTime ();
     if ( OrderProfit ()>= 0 ) break ;
    Счет++;
     if (Счет == 1 &&A2!= OrderOpenTime ())
    {
    A2= OrderOpenTime ();
     OrderSend ( Symbol (), OP_SELL , 0.3 , Bid , 3 , Ask + 400 * Point , Ask - 200 * Point , "jfh" , 123 );
    }
  }
//************************************************************************************** 
return ;
}

İşte birkaç siparişin bir onay işaretiyle kapatıldığı bir duruma bir örnek

         08 : 51 : 38.906      2017.03 . 27 13 : 09 : 44   Tester: stop loss # 200 at 1.08858 ( 1.08856 / 1.08858 )
2        08 : 51 : 38.906      2017.03 . 27 13 : 09 : 44    1 = 1 = 1 = 1 EURUSD,M1: open # 214 sell 0.30 EURUSD at 1.08856 sl: 1.09258 tp: 1.08658 ok
0        08 : 51 : 38.906      2017.03 . 27 13 : 10 : 28    Tester: stop loss # 192 at 1.08879 ( 1.08877 / 1.08879 )
0        08 : 51 : 38.906      2017.03 . 27 13 : 10 : 28   Tester: stop loss # 193 at 1.08879 ( 1.08877 / 1.08879 )
2        08 : 51 : 38.906      2017.03 . 27 13 : 10 : 28    1 = 1 = 1 = 1 EURUSD,M1: open # 215 sell 0.30 EURUSD at 1.08877 sl: 1.09279 tp: 1.08679 ok
0        08 : 51 : 38.906      2017.03 . 27 13 : 10 : 29   Tester: stop loss # 194 at 1.08880 ( 1.08878 / 1.08880 )
 
AlGuru :

Bu ek bir koşuldur. Fiyat MA çizgisini geçtiğinde pozisyon kapatılır. Sadece fiyat tam çizgide açılır ve pozisyon her vuruşta açılıp kapanır. Bir sonraki mumdan önce pozisyonu kapatarak sorunu çözdüm.

Bu sorunun, bu çubukta bir pozisyon olup olmadığını veya daha önce açılıp kapatılıp kapatılmadığını kontrol ederek çözülmesi gerekiyor.

Aksi takdirde, her şeyi bir yığına atıyorsunuz. Sinyal işlevi sinyal göndermelidir ve ticaret işlevi zaten sinyalin geçerliliğini kontrol etmelidir.

 

Merhaba. Neden euro ve usd döviz çiftlerini 1.0616'da değil de 149.16325 sayılarında görüntüleyebilirim?