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

 
STARIJ :
Ne yazdığını oku: Görünüşe göre son üç siparişten biri kârla kapanırsa, ticaret duracak!

Bahşiş için teşekkürler

YENİ SİPARİŞ AÇ sadece örnek olsun diye verdim. Henüz ticaret yapmıyorum.

Bu durumu nasıl kodlayacağımı anlamıyorum.

3 - 4 - 5 ..... ise bir SATIR içindeki son siparişler STOP tarafından kapatılırsa

BİR ŞEY YAP.

 
Victor Nikolaev :


Farklılıklar minimumdur. Değişkenlerden biri booleandır.

Çıktı doğru veya yanlış diyecek

Phew, değişkenlerin nasıl ekleneceğini anlayamıyorum - yani. Diyelim ki 4 booleanım var ve onları tekrarlamam gerekiyor mu?

 //+------------------------------------------------------------------+
//|                                                       Decode.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 N= 15 ;   //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   for ( int n= 0 ;n<N;n++)
     {
       int tmp=n;
       bool a= ( bool ) MathMod (tmp, 2 );
       bool b= ( bool ) MathMod (tmp, 3 );
       bool c= ( bool ) MathMod (tmp, 4 );
       bool d= ( bool ) MathMod (tmp, 5 );

       Print ( "N=" ,n, "; A=" ,a, "; B=" ,b, "; C=" ,c, "; D=" ,d);
     }

  }

İşin özünü anlıyorum - bölmeden sonra sıfırdan küçük veya sıfırdan büyük bir kalan olmalı - ama bunu nasıl başaracağımı bulamıyorum :(

 
ANDREY :

Bahşiş için teşekkürler

YENİ SİPARİŞ AÇ sadece örnek olsun diye verdim. Henüz ticaret yapmıyorum.

Bu koşulu nasıl kodlayacağımı anlamıyorum.

3 - 4 - 5 ..... ise bir SATIR içindeki son siparişler STOP tarafından kapatılırsa

BİR ŞEY YAP.

Herhangi bir işlem yapmadan önce arka arkaya 3 - 4 - 5 pozisyonun nasıl kapatıldığını görün. Her şey yolundaysa, o zaman biraz harekete geçin. İlkokul, Watson...
 
ANDREY : Sadece son değil, son ve son siparişlerin de stop ile kapatılması gerekiyor.

ve ancak o zaman BAŞKA BİR SİPARİŞ AÇIN

Komut dosyasını ekliyorum - Kontrol ettim, çalışıyor, sonucu ekledim

 //+-------------------------------------------------------+
//| Подсчет убыточных ордеров                 PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict
130
void OnStart ()
{
  int Счет=0, Номер=OrdersHistoryTotal()-1;

  for( ; Номер>=0; Номер--)
  {
     if (! OrderSelect (Номер, SELECT_BY_POS , MODE_HISTORY )) continue ;
     Alert (Номер, "  Тикет = " , OrderTicket (), "  T =" , OrderOpenTime (), "  Профит = " , OrderProfit ());
     if ( OrderProfit ()>= 0 ) break ;
    Счет++;
     if (Счет== 3 )
    {
       Alert ( "Вот тут и открываем новый ордер" );
       return ;
    }
  }
   Alert ( "Подряд идущих убыточных ордеров слишком мало" );
}

Bütün hikaye bu


Ve bu, tarihe sağ tıklayıp 3 Mayıs'a kadar olan dönemi seçti.

 
STARIJ :

Komut dosyasını ekliyorum - Kontrol ettim, çalışıyor, sonucu ekledim

Bütün hikaye bu


Ve bu, tarihe sağ tıklayıp 3 Mayıs'a kadar olan dönemi seçti.

Yani yaya. Ve güvenilir değil. Sıralamadan bağımsız olarak yapılmalıdır.
 

Karışıklık için özür dilerim, sorumu tekrar edeceğim

Lütfen yeniden işlenebilecek herhangi bir gösterge önerin, saatlik grafikte her gün yüksek ve düşük arasındaki bir çizgiyle ilgileniyorum ve çizginin uzunluğu ve eğim açısı hakkında veri alma yeteneği ve çalışmak mümkündü. Koddaki bu verilerle, sıfırdan kendim yazarsam mql4 konusunda büyük bir uzman değilim, büyük sorun mu? bana yardım et lütfen

Belki yanlış konuya sordum?

 
STARIJ :

Komut dosyasını ekliyorum - Kontrol ettim, çalışıyor, sonucu ekledim

Bütün hikaye bu


Ve bu, tarihe sağ tıklayıp 3 Mayıs'a kadar olan dönemi seçti.

Yardımın için çok teşekkürler.
 
Artyom Trishkin : Yani tam ayağında. Ve güvenilir değil. Sıralamadan bağımsız olarak yapılmalıdır.

Artem! Terminalin sağ alt köşesinde sunucu ile değişim göstergesi - alınan ve gönderilen kilobaytlar. Gösterge 2318 idi. Tarihe sağ tıklayıp Bugün'ü seçtim (ve bugün Pazar). Tarih harap olmuştur. Senaryo, geçmişte emir olmadığını gösteriyor. Geçmişe sağ tıklayın ve Tüm geçmiş'i seçin. Gösterge canlandı, 518 kilobayt ekledi. Böylece filtre BÜYÜK bir döneme ayarlandığında, siparişler sunucudan indirilir. Daha küçük bir dönem ayarlarken silinirler. Bu nedenle, işi hızlandırmak için (işlenecek daha az sipariş), Geçen hafta, Son 3 gün veya Bugün ayarlamak daha iyidir. Alert (OrdersHistoryTotal());

Sıralama hakkında. Hikayedeki sütun başlıklarına tıklarsanız, hikayenin GÖRSEL GÖRÜNÜMÜNÜ herhangi bir sütunun artan veya azalan sırasına göre düzenleyebilirsiniz. Ancak, Sipariş Seçimi (Sayı, SELECT_BY_POS, MODE_HISTORY ) işlevini kullanarak sipariş seçimi, ekran sıralamasından bağımsız olarak, SEÇİLMİŞ geçmiş aralığının başlangıcından başlayarak her zaman numaraya göre yapılır. Ve tarihte siparişler sunucuya gönderildikleri zamana göre düzenlenir, ki bu en doğaldır. Sayı = 0 ise, bu SEÇİLEN geçmiş aralığının en eski sırasıdır. OrdersHistoryTotal()-1, SELECTED geçmiş aralığının en son sırasıysa. Bunu defalarca kontrol ettim. Ve bunun değişmesi pek olası değil.

 
STARIJ :

Artem! Terminalin sağ alt köşesinde, sunucu ile alınan ve gönderilen kilobaytlar arasında bir değişim göstergesi vardır. Gösterge 2318 idi. Tarihe sağ tıklayıp Bugün'ü (ve bugün Pazar) seçtim. Tarih harap olmuştur. Senaryo, geçmişte emir olmadığını gösteriyor. Geçmişe sağ tıklayın ve Tüm geçmiş'i seçin. Gösterge canlandı, 518 kilobayt ekledi. Böylece filtre BÜYÜK periyoda ayarlandığında, siparişler sunucudan indirilir. Daha küçük bir dönem ayarlarken silinirler. Bu nedenle, işi hızlandırmak için (işlenecek daha az sipariş), Geçen hafta, Son 3 gün veya Bugün ayarlamak daha iyidir. Alert(OrdersHistoryTotal()); özelliğine sahip bir komut dosyasıyla bunu kontrol etmek kolaydır.

Sıralama hakkında. Hikayedeki sütun başlıklarına tıklarsanız, hikayenin GÖRSEL GÖRÜNÜMÜNÜ herhangi bir sütunun artan veya azalan sırasına göre düzenleyebilirsiniz. Ancak, Sipariş Seçimi (Sayı, SELECT_BY_POS,MODE_HISTORY ) işlevini kullanarak sipariş seçimi, ekran sıralamasından bağımsız olarak, SEÇİLMİŞ geçmiş aralığının başlangıcından başlayarak her zaman numaraya göre yapılır. Ve tarihte siparişler sunucuya gönderildikleri zamana göre düzenlenir, ki bu en doğaldır. Sayı = 0 ise, bu SEÇİLMİŞ geçmiş aralığının en eski sırasıdır. OrdersHistoryTotal()-1, SELECTED geçmiş aralığının en son sırasıysa. Bunu defalarca kontrol ettim. Ve bunun değişmesi pek olası değil.

Burada o kadar yenisin ki her şeyin nasıl olduğunu bilmiyorsun. Zaten üç yüz yıl önce, bir kural geliştirildi - zamana göre arama, son / ilk veya ardışık konumları belirlemenin tek güvenilir yoludur. Parayla çalışıyorsun. Eh, sadece kendileriyle, ama yabancılarla da. Dolaylı olarak bile - programıyla.

Ve bana söyledikleriniz kimse için bir sır veya keşif değil - herkes bunu yıllardır biliyor;)

Ve ne dedim - hala anlamıyorsun ...

 
Artyom Trishkin :

Burada o kadar yenisin ki her şeyin nasıl olduğunu bilmiyorsun. Zaten üç yüz yıl önce, bir kural geliştirildi - zamana göre arama, son / ilk veya ardışık konumları belirlemenin tek güvenilir yoludur. Parayla çalışıyorsun. Eh, sadece kendileriyle, ama yabancılarla da. Dolaylı olarak bile - programıyla.

Ve bana söyledikleriniz kimse için bir sır veya keşif değil - herkes bunu yıllardır biliyor;)

Ve ne dedim - hala anlamıyorsun ...

Artem, ya da göze batmayan trollemeniz mi, yoksa kendiniz ne hakkında yazdığınızı anlamıyorsunuz !!!

Son gönderide sıralamadan bahsetmiştin. Sıralama bağımlılığı olmadığını açıkladım.

Zamana göre sipariş seçimi ile ilgili tartışmalar gördüm ve bunlardan birine katıldım. Sonuç, siparişlerin sunucuya gönderildikleri zamana kadar siparişlerin veritabanında yer aldığı şekilde yapıldı. Ancak TEORİK OLARAK geliştiricilerin bunu değiştirebileceğine dair bir korku var. Böylece tartışma sona erdi. Bir veritabanı uzmanı olarak sizi temin ederim ki bu korku yersizdir, değişiklik söz konusu olamaz. Bu soru ile geliştiricilerle iletişime geçebilirsiniz. Bir şey yazarsam, ne yazdığımı bilirim. Programlamanın 50. yılı yaklaşıyor. Gönderilerimde kendi bakış açınızdan bir şekilde iyi geçindiğini fark ederseniz - kişisel olarak yazın . Açıklamama izin verin ve şüpheleriniz giderilecektir. Ve burada çekişmek pek uygun değil. Bir adama bir senaryo yazdı - teşekkür etti. İyi mi?

Yakın zamanda. Evet, giriş bilgilerimi yeni değiştirdim, tarzının ne olduğunu tahmin edebilirsiniz. Veya IP'ye bakın, muhtemelen erişiminiz var ... Lütfen cevapsız bırakın.