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

 
Geçmiş sipariş verilerini kullanarak minimum öz sermayeyi hesaplamak mümkün müdür?
 
forexnew :
Geçmiş sipariş verilerini kullanarak minimum öz sermayeyi hesaplamak mümkün müdür?


Bir şeyi anlıyorsunuz - " siparişlerle ilgili geçmiş verilerde " ne gösteriliyor ??? Seçilen siparişin kapanış fiyatı, kârı, zararı ile ilgileniyor musunuz... ne olmuş??? Emir geçmişi, emir piyasadayken hesabın ne kadar özkaynak düşüşüne (cari zarar) girdiğini göstermez, yani. kapanıştan sonraki kayıp -500 para birimi olabilir, örneğin - bu, emirlerin geçmişinde gösterilecektir, bu emir piyasadayken, özkaynak -1000 para birimine düşebilir. Bilginize: Strateji test cihazı, zararı özkaynağa göre hesaplar.

Sorunuzun cevabı: Yapamazsınız.

 
LOA :

Güzel gün!

Profesyoneller yardım - sensiz hiçbir yerde!

Bu konuyu zaten ele aldım, ancak bir hata bulamadım, gerçekten kendim çözmek istedim, birkaç gün beynimi harcadım, ancak şimdiye kadar yeterli deneyim yok.

Önceki tartışma, belki de sebebin bahsettiğim göstergelerin kodunda olduğu gerçeğiyle sona erdi.

ME_Proboy_F5'in dökümünü görsel olarak gösteren bir gösterge yazdım (bunlar ilk adımlarım)

Sorun şu..... Yeni çubuklar oluşturulduğunda gösterge yeniden çizilmiyor ve bir tik geldikten sonra son çubukta gösterge değeri sıfırlanıyor. Tf'yi değiştirirseniz yeniden çizilir. veya özellikleri görüntüleyin.

Gösterge diğer göstergelerden veri ister, biri hariç tümü ME_Proboy_F_5 (kodunu da gönderirim) iyi çalışır. İkinci göstergede de bir hata bulamıyorum. Yeniden çiziyor ama yavaşlıyor, yani ikinci yeniden başlatmada doğru görüntüleniyor (TF'yi veya ekran özelliklerini değiştirin) Zorlaştırmıyorsa bir bakın lütfen, ben de çözemiyorum.

Yardımın için çok minnettar olurum.

Proboy_Order_F5 hakkında sorduğum ana gösterge

ME_Proboy_F5 - şüpheli olan ikincisi


Sorumu rahatsız etmeye devam ettiğim için üzgünüm ama gerçekten anlamak istiyorum.

limit=MathMin(Bars-1, Bars-counted_bars-1) işlevinin kullanılması sorunu çözmedi, ancak önerileri kabul ettikten sonra programlama stili üzerinde çalıştım, umarım işe yaradı ve gereksiz şeylerden kurtuldum değişkenler.

Sorunun özü, yukarıya bakın

 
Roman. :


Bir şeyi anlıyorsunuz - "siparişlerle ilgili geçmiş verilerde" belirtilenler ??? Seçilen siparişin kapanış fiyatı, kârı, zararı ile ilgileniyor musunuz... ne olmuş??? Emir geçmişi, emir piyasadayken hesabın ne kadar özkaynak düşüşüne (cari zarar) girdiğini göstermez, yani. kapanıştan sonraki kayıp -500 para birimi olabilir, örneğin - bu, emirlerin geçmişinde gösterilecektir, bu emir piyasadayken, özkaynak -1000 para birimine düşebilir. Bilginize: Strateji test cihazı, zararı öz sermayeye göre hesaplar.

Sorunuzun cevabı: Yapamazsınız.

Bununla birlikte, bir gösterge vardır: https://c.mql5.com/mql4/forum/2010/11/Equity_v7.zip Burada öz sermaye bir şekilde geçmiş verilere dayalı olarak hesaplanır. Nasıl, henüz anlamadım. Temel anlara (kapanış emirleri) göre eşitliği gerçekten belirlemek mümkündür, ancak tek bir formül şeklinde nasıl görünüyor?

 

İşte koşula göre, sürenin bitiminden sonra siparişlerin silinmesi gereken bir kod, bu koşul

MyCurrentTime >= OrderExpiriation && OrderMagicNumber () == MagicNumber

Peki aslında, bu koşulu ilk if deyimine eklerseniz, o zaman içindeki diğer deyim bu koşulu dikkate almıyor?

Yani bu kod çalışmaz ve bekleyen tüm siparişleri bir kerede siler.

   for ( int counter= 0 ;counter< OrdersTotal ();counter++)
    {
     if ( OrderSelect (counter,SELECT_BY_POS,MODE_TRADES) == false) break ;

     if (MyCurrentTime >= OrderExpiriation && OrderMagicNumber () == MagicNumber) //Если текущее время больше чем время истечения
      {
        
        
       if ( OrderType () == OP_BUYLIMIT || OrderType () == OP_SELLLIMIT || OrderType () == OP_BUYSTOP || OrderType () == OP_SELLSTOP)
        {
         OrderDelete ( OrderTicket ());
        }
        
      }
    }

Ancak bu kod çalışır ve siparişleri hemen silmez.

   for ( int counter= 0 ;counter< OrdersTotal ();counter++)
    {
     if ( OrderSelect (counter,SELECT_BY_POS,MODE_TRADES) == false) break ;

     if (MyCurrentTime >= OrderExpiriation && OrderMagicNumber () == MagicNumber) //Если текущее время больше чем время истечения
      {
        
        
       if ( OrderType () == OP_BUYLIMIT || OrderType () == OP_SELLLIMIT || OrderType () == OP_BUYSTOP || OrderType () == OP_SELLSTOP && MyCurrentTime >= OrderExpiriation && OrderMagicNumber () == MagicNumber)
        {
         OrderDelete ( OrderTicket ());
        }
        
      }
    }
 
sss2019 :

İşte koşula göre, sürenin bitiminden sonra siparişlerin silinmesi gereken bir kod, bu koşul

Peki aslında, bu koşulu ilk if deyimine eklerseniz, o zaman içindeki diğer deyim bu koşulu dikkate almıyor?

Yani bu kod çalışmaz ve bekleyen tüm siparişleri bir kerede siler.

Ancak bu kod çalışır ve siparişleri hemen silmez.

Her iki kodun da yanlış olduğunu not ediyorum, bu yüzden sizin için neyin işe yaradığını bilmiyorum doğru / yanlış

En basit örneği ele alalım. 2 siparişiniz var, ikisinin de silinmesi gerekiyor.

1) for ( int sayaç= 0 ;sayaç< Sipariş Toplamı ();sayaç++)

başlangıç iyidir 0 ikiden azdır ve ilk sipariş başarıyla silinir, ancak daha sonra...

2)

  for ( int counter= 0 ;counter< OrdersTotal ();counter++)

sayaç = 1, ancak sadece bir sipariş kaldı! yani (1<1) koşulu karşılanmaz ve döngü sona erer...

 
ilunga :

Her iki kodun da yanlış olduğunu not ediyorum, bu yüzden sizin için neyin işe yaradığını bilmiyorum doğru / yanlış

En basit örneği ele alalım. 2 siparişiniz var, ikisinin de silinmesi gerekiyor.

1) for ( int sayaç= 0 ;sayaç< Sipariş Toplamı ();sayaç++)

başlangıç iyidir 0 ikiden azdır ve ilk sipariş başarıyla silinir, ancak daha sonra...

2)

sayaç = 1, ancak sadece bir sipariş kaldı! yani (1<1) koşulu karşılanmaz ve döngü sona erer...


Hayır, ama işin gerçeği şu anda TÜM emirleri siliyor, temiz. Sorun, onları hemen silmesidir.
 
LOA :

Güzel gün!

ME_Proboy_F5'in dökümünü görsel olarak gösteren bir gösterge yazdım (bunlar ilk adımlarım)


İlk adımların güzel, Olga Alexandrovna. 330 satır kod

 
forexnew :

Bununla birlikte, bir gösterge var: https://c.mql5.com/mql4/forum/2010/11/Equity_v7.zip . burada öz sermaye bir şekilde geçmiş verilere dayanarak hesaplanıyor. Nasıl, henüz anlamadım. Temel anlara (kapanış emirleri) göre eşitliği gerçekten belirlemek mümkündür, ancak tek bir formül şeklinde nasıl görünüyor?




ÖZKAYNAK ve DENGE kavramlarını tanıyın, farkları nelerdir.

Bu gösterge özkaynak çizgisini gerçek zamanlı olarak şu şekilde gösterir: özkaynak satırı, açık pozisyonlar için mevcut kar/zarardır, "Önemli anlar (kapanış emirleri) ile öz sermayeyi gerçekten belirlemek mümkündür" - bu mümkün değildir, bu nedenle kapalı pozisyonlar için bakiye satırındaki değişikliği dikkate alacaksınız.

".özsermayenin bir şekilde tarihsel verilere dayalı olarak hesaplandığı." - hayır. Bu gösterge, mevcut anda - Piyasadaki açık pozisyonlar için - öz sermaye çizgisini hesaplar.

 

İyi akşamlar! Bunu S. Kovalev'in ders kitabında ve MT4 terminalinde "woof!"a ek olarak buldum. hiç birşey yok. Söyle bana, lütfen, bilgisayara her zaman bakmamak için çeşitli işlemler için bir dizi ses sinyalini nereden ödünç alacağını kim bilebilir? Olası ipucu için teşekkürler!

   switch (Mess_Number)                 // Elegir texto del mensaje segun el numero 
     {
       case 1 :
         Graf_Text= "Closed order Buy " + Number;
         PlaySound ( "Close_order.wav" );                               break ;
       case 2 :
         Graf_Text= "Closed order Sell " + Number;
         PlaySound ( "Close_order.wav" );                               break ;
       case 3 :
         Graf_Text= "Deleted pending order " + Number;
         PlaySound ( "Close_order.wav" );                               break ;
       case 4 :
         Graf_Text= "Opened order Buy " + Number;
         PlaySound ( "Ok.wav" );                                       break ;
       case 5 :
         Graf_Text= "Opened order Sell " + Number;
         PlaySound ( "Ok.wav" );                                       break ;
       case 6 :
         Graf_Text= "Placed pending order " + Number;
         PlaySound ( "Ok.wav" );                                       break ;
       case 7 :
         Graf_Text= "Order " +Number+ " modified into the market one" ;
         PlaySound ( "Transform.wav" );                                 break ;
       case 8 :
         Graf_Text= "Reopened order " + Number;
         PlaySound ( "Bulk.wav" );                                     break ;
       case 9 :
         Graf_Text= "Partly closed order " + Number;
         PlaySound ( "Close_order.wav" );                               break ;
       case 10 :
         Graf_Text= "New minimum distance: " + Number;
         PlaySound ( "Inform.wav" );                                   break ;
       case 11 :
         Graf_Text= " Not enough money for " +
         DoubleToStr (Value, 2 ) + " lots" ;
         Color_GT= Red ;
         PlaySound ( "Oops.wav" );                                     break ;
       case 12 :
         Graf_Text= "Trying to close order " + Number;
         PlaySound ( "expert.wav" );                                   break ;
       case 13 :
         if (Number> 0 )
            Graf_Text= "Trying to open order Sell.." ;
         else
            Graf_Text= "Trying to open order Buy.." ;
         PlaySound ( "expert.wav" );                                   break ;
       case 14 :
         Graf_Text= "Invalid password. EA doesn't function." ;
         Color_GT= Red ;
         PlaySound ( "Oops.wav" );                                     break ;
       case 15 :
         switch (Number)                 // Elegir texto del mensaje segun el numero del error 
           {
             case 2 :   Graf_Text= "Common error." ;                     break ;
             case 129 : Graf_Text= "Wrong price. " ;                     break ;
             case 135 : Graf_Text= "Price changed. " ;                   break ;
             case 136 : Graf_Text= "No prices. Awaiting a new tick.." ; break ;
             case 146 : Graf_Text= "Trading subsystem is busy" ;         break ;
             case 5 :  Graf_Text= "Old version of the terminal." ;     break ;
             case 64 :  Graf_Text= "Account is blocked." ;               break ;
             case 133 : Graf_Text= "Trading is prohibited" ;             break ;
             default :  Graf_Text= "Occurred error " + Number; //otros errores 
           }
         Color_GT= Red ;
         PlaySound ( "Error.wav" );                                     break ;
       case 16 :
         Graf_Text= "Expert Advisor works only for EURUSD" ;
         Color_GT= Red ;
         PlaySound ( "Oops.wav" );                                     break ;
       default :
         Graf_Text= "default " + Mess_Number;
         Color_GT= Red ;
         PlaySound ( "Bzrrr.wav" );                    
     }