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

 
ANDREY :

Farkı kapatabilir, yani teklif fiyatına bir miktar değer ekleyebilirsiniz. Ama bu değerin boyutunu nasıl dikebilirsiniz? Gerçek kenelerde spread FLOATING'dir, yani spread değeri önceden bilinmez. Ve bu nedenle, profesyonel görüşüme göre bana göründüğü gibi, ancak tamamen mantıksal olarak GERÇEK keneler üzerine dikmek muhtemelen imkansızdır. Muhtemelen sadece ŞİMDİDEN TAMAMEN bilinenleri dikebilirsiniz.

Metatrader sizi şaşırttı mı? Ben gittim.. çoktan gittim... Lütfen....

<TARİH> <SAAT> <AÇIK> <YÜKSEK> <DÜŞÜK> <KAPAT> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

 
Александр :

Metatrader sizi şaşırttı mı? Ben gittim.. çoktan gittim... Lütfen....

<TARİH> <SAAT> <AÇIK> <YÜKSEK> <DÜŞÜK> <KAPAT> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Diğer bir deyişle, yayılma ya O'dur veya yayılma değeri görüntülenmez. Ve bu, MT-4 veya MT-5 için verilerdir. Ve bu veriler hangi menü öğesinden?

Bir yayılma değeri varsa, ancak herhangi bir nedenle görüntülenmiyorsa, bu MT arızası, MT5'imdeki arızaya çok benzer. Alpari, tarihin derinliğinin kene alıntılarının kalitesini hiçbir şekilde etkilemediğini iddia ediyor ve sorunumun terminalin kendisinde gizli olduğuna inanıyor ve geliştiricilerle iletişime geçmemi tavsiye ediyor. Yani, tıpkı sizin örneğinde olduğu gibi, 2010 için geçmiş kalite değerine sahibim, ancak nedense MT5'te görüntülenmiyor ve bu mantıklı, 2010'da 20 milyon tik vardı - bu nedenle, en azından bazı geçmiş kalite değerleri olmalı gösterilecek. Hiç kene olmasaydı veya sayıları çok küçük olsaydı (diyelim ki 1000), o zaman geçmiş kalitesini GÖRÜNTÜLEMEMEK anlaşılabilir olurdu.
 

Merhaba.
Lütfen yeni başlayana dikkat edin.
Derleme yaparken herhangi bir hata veya uyarı yok, ancak EA test cihazında siparişleri açmıyor... ve günlükte herhangi bir hata yok...

Nedeni ne olabilir? Henüz değiştirmeyi denemedim...

 extern double Lot= 0.1 ;            
extern int Slippage = 30 ;
extern int TakeProfit = 30 ;
extern int StopLoss   = 30 ;
extern int MA_Smoth_S = 60 ;
extern int MA_Smoth_B = 12 ;
extern int MA_Simpl_S = 3 ;
extern int MA_Simpl_B = 1 ;

int start()
         {
           int MA_Simpl_S_Op,      
              MA_Simpl_B_Op;      
                 
          MA_Smoth_S = iMA ( NULL , 0 ,MA_Smoth_S, 0 , MODE_SMMA , PRICE_CLOSE , 1 );
          MA_Smoth_B = iMA ( NULL , 0 ,MA_Smoth_B, 0 , MODE_SMMA , PRICE_CLOSE , 1 );
          MA_Simpl_S = iMA ( NULL , 0 ,MA_Simpl_S, 0 , MODE_SMA , PRICE_CLOSE , 1 );
          MA_Simpl_B = iMA ( NULL , 0 ,MA_Simpl_B, 0 , MODE_SMA , PRICE_CLOSE , 1 );
          MA_Simpl_S_Op = iMA ( NULL , 0 ,MA_Simpl_S, 0 , MODE_SMA , PRICE_CLOSE , 2 );
          MA_Simpl_B_Op = iMA ( NULL , 0 ,MA_Simpl_B, 0 , MODE_SMA , PRICE_CLOSE , 2 );
          
           //Условие для Buy______________________
           while (MA_Smoth_B > MA_Smoth_S)
               {
                 if (MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B > MA_Simpl_S)
                  {
                   bool check = OrderSend ( Symbol (),OP_BUY,Lot, NormalizeDouble (Ask, Digits ),Slippage,Bid-StopLoss* Point ,Ask+TakeProfit* Point , "Buy" , 0 , 0 , clrGreen );
                   return ( 0 );
                  }
               }
               
           //Условия для Sell_____________________
           while (MA_Smoth_S > MA_Smoth_B)
               {
                 if (MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
                  {
                   check = OrderSend ( Symbol (),OP_SELL,Lot, NormalizeDouble (Bid, Digits ),Slippage,Ask+StopLoss* Point ,Bid-TakeProfit* Point , "Sell" , 0 , 0 , clrRed );
                   return ( 0 );
                  }   
               }     
           return ( 0 );
         }
 
IndependentMK :

Merhaba.
Lütfen yeni başlayana dikkat edin.
Derleme yaparken herhangi bir hata veya uyarı yok, ancak EA test cihazında siparişleri açmıyor... ve günlükte herhangi bir hata yok...

Nedeni ne olabilir? Henüz değiştirmeyi denemedim...

 int X = 5 ;
if (X > 10 && X < 3 )   int ticket = OrderSend ( Symbol (), OP_SELL, Доп_Лот, NormalizeDouble (Bid, Digits ), 3 ,   NormalizeDouble (Ask + StopLoss_S * Point , Digits ),   NormalizeDouble (Bid - TakeProfit_S * Point , Digits ), "" , MAGIC_S, 0 , CLR_NONE);
 

Nasıl düşünüyorsun? Bir testçi pozisyon açar mı? Numara. Çünkü X menzil dışında. Böyle. Print'i koda ekleyin ve test cihazının günlüğünü analiz edin.

 int start()
  {
   int MA_Simpl_S_Op,
       MA_Simpl_B_Op;
   MA_Smoth_S = iMA ( NULL , 0 , MA_Smoth_S, 0 , MODE_SMMA , PRICE_CLOSE , 1 );
   MA_Smoth_B = iMA ( NULL , 0 , MA_Smoth_B, 0 , MODE_SMMA , PRICE_CLOSE , 1 );
   MA_Simpl_S = iMA ( NULL , 0 , MA_Simpl_S, 0 , MODE_SMA , PRICE_CLOSE , 1 );
   MA_Simpl_B = iMA ( NULL , 0 , MA_Simpl_B, 0 , MODE_SMA , PRICE_CLOSE , 1 );
   MA_Simpl_S_Op = iMA ( NULL , 0 , MA_Simpl_S, 0 , MODE_SMA , PRICE_CLOSE , 2 );
   MA_Simpl_B_Op = iMA ( NULL , 0 , MA_Simpl_B, 0 , MODE_SMA , PRICE_CLOSE , 2 );
//Условие для Buy______________________
   Print ( " MA_Smoth_B = " , MA_Smoth_B, " MA_Smoth_B = " , MA_Smoth_B);
   while (MA_Smoth_B > MA_Smoth_S)
     {
       Print ( " MA_Simpl_B_Op = " , MA_Simpl_B_Op, " MA_Simpl_S_Op = " , MA_Simpl_S_Op);
       if (MA_Simpl_B_Op < MA_Simpl_S_Op)
        {
         Print ( " MA_Simpl_B = " , MA_Simpl_B, " MA_Simpl_S = " , MA_Simpl_S);
         if (MA_Simpl_B > MA_Simpl_S)
           {
             bool check = OrderSend ( Symbol (), OP_BUY, Lot, NormalizeDouble (Ask, Digits ), Slippage, Bid - StopLoss * Point , Ask + TakeProfit * Point , "Buy" , 0 , 0 , clrGreen );
             return ( 0 );
           }
        }
     }
//Условия для Sell_____________________
   while (MA_Smoth_S > MA_Smoth_B)
     {
       if (MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
        {
         bool check = OrderSend ( Symbol (), OP_SELL, Lot, NormalizeDouble (Bid, Digits ), Slippage, Ask + StopLoss * Point , Bid - TakeProfit * Point , "Sell" , 0 , 0 , clrRed );
         return ( 0 );
        }
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
ANDREY :

Diğer bir deyişle, yayılma ya O'dur veya yayılma değeri görüntülenmez. Ve bu, MT-4 veya MT-5 için verilerdir. Ve bu veriler hangi menü öğesinden?

Bir yayılma değeri varsa, ancak herhangi bir nedenle görüntülenmiyorsa, bu MT arızası, MT5'imdeki arızaya çok benzer. Alpari, tarihin derinliğinin kene alıntılarının kalitesini hiçbir şekilde etkilemediğini iddia ediyor ve sorunumun terminalin kendisinde gizli olduğuna inanıyor ve geliştiricilerle iletişime geçmemi tavsiye ediyor. Yani, tıpkı sizin örneğinde olduğu gibi, 2010 için geçmiş kalite değerine sahibim, ancak nedense MT5'te görüntülenmiyor ve bu mantıklı, 2010'da 20 milyon tik vardı - bu nedenle, en azından bazı geçmiş kalite değerleri olmalı gösterilecek. Hiç kene olmasaydı veya sayıları çok küçük olsaydı (diyelim ki 1000), o zaman geçmiş kalitesini GÖRÜNTÜLEMEMEK anlaşılabilir olurdu.

İşte MT4 alıntıları

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

İşte MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Farkı hissedin... Tiklerle çalışmayı uzun zaman önce bıraktım. Ve böylece çeşitli "kolaylıklar / şakalar" ile savaşmak için yeterli güç yok.

Aynı danışmanı başka bir DC'ye koydunuz. Kenelerle ilgili sorun nedir. Hatta Open'da, hatta aynı anda açılıp kapanıyor. Fark BÜYÜK... Belki biri bu sorunu çözmüştür (keneler vs.), ama bununla nasıl başa çıkacağımı bilmiyorum. Ve MT5'te de bir yayılma var...

 
Александр :

İşte MT4 alıntıları

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

İşte MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Farkı hissedin... Tiklerle çalışmayı uzun zaman önce bıraktım. Ve böylece çeşitli "kolaylıklar / şakalar" ile savaşmak için yeterli güç yok.

Aynı danışmanı başka bir DC'ye koydunuz. Kenelerle ilgili sorun nedir. Hatta Open'da, hatta aynı anda açılıp kapanıyor. Fark BÜYÜK... Belki biri bu sorunu çözmüştür (keneler vs.), ama bununla nasıl başa çıkacağımı bilmiyorum. Ve MT5'te de bir yayılma var...

Tabii ki sen tüm bu konularda benden daha ilerisin...... o yüzden bazı yerlerde senin düşüncelerinin gidişatını yakalayamıyorum...
Örneğin kodlarımı MT4 üzerinde test ettim TÜM TICK'ları simüle ederken kodlar çok iyi sonuç gösterdi... Sonra çok iyi sonucumun tam olarak doğru olmadığını öğrendim çünkü MT-4 gerçeği hesaba katmıyor. Alpari'de MT4 üzerindeki gerçek yayılmanın dalgalı olduğu için (özellikle geceleri) hesaba katılmadığını ve Uzman Danışmanım en iyi sonuçları 22'den 1'e kadar gösterdi.

Bu forumda, test ederken, gerçek (yani, dalgalı) yayılmanın sadece MT5'te dikkate alındığı söylendi. Bu beni MT-5'i incelemeye ve kodumu model üzerinde çalıştırmaya yöneltti - her onay işareti GERÇEK işaretlere dayanmaktadır . Ondan sonra ayık oldum çünkü kodum artık MT4'teki kadar iyi sonuçlar göstermiyordu. Öte yandan, MT4'te bulunan kodun bazı olumlu yönleri MT5'te de doğrulandı. Test sonuçlarının gerçek ticarete mümkün olduğunca yakın olduğundan emin olarak kodumu geliştirmeye devam edebildiğim için mutluydum.

Buna dayanarak, kene geçmişi üzerinde geriye dönük testlere yönelik olumsuz tutumunuzu (belki de bilgi ve deneyim eksikliğinden dolayı) tam olarak anlamıyorum. Sonuçta , Kapat ile (sizinki gibi) değil, sipariş açma talebinde belirtilen herhangi bir fiyattan (benimki gibi) işlem açarsanız , keneler üzerinde test etmenin dezavantajları nelerdir?
Bana göründüğü gibi olası bir dezavantaj, yalnızca eksik bir kene kümesi ve yüklenen alıntılardaki ihmalleri olabilir. Ancak, dakika mumlarının sayısına kıyasla kene sayısı çok büyük. Ve eksik keneleri (mumlar gibi) tespit etmenin ve bunları kenelerle dosyaya eklemenin mümkün olup olmadığı sorusunu henüz incelemedim. Bu nedenle şu an için Alpari'nin 2001 yılına kadar TAM bir tik geçmişine sahip olduklarına dair güvencelerine güvenmek zorundayım.
Ve hala bazı fikirlerinizi göstermek için getirdiğiniz mumların parametrelerine bakarken hissetmem gereken farkın ne olduğunu anlamıyorum.

Uzman Danışmanımı başka bir broker üzerinde test etmek istemiyorum çünkü gerçek hayatta ticaret yapmaya cesaret edersem, o zaman sadece Alpari ile. Üstelik, en eksiksiz ve güvenilir kene verilerine sahip olanın kendisi olduğunu söylediniz.

Eminim ki benim için değerli bilgileriniz vardır ki, ne yazık ki henüz sözlerinizden yakalayamadım.

Тестирование торговых стратегий на реальных тиках
Тестирование торговых стратегий на реальных тиках
  • www.mql5.com
В данной статье мы покажем результаты тестирования простой торговой стратегии в 3-х режимах: " OHLC на M1 " с использованием только цен Open,High, Low и Close минутных баров; затем детальное моделирование в режиме " Все тики ", и самое достоверное тестирование в режиме " Каждый тик на основе реальных тиков " с использованием записанных тиков из...
 
ANDREY :


Kene geçmişi üzerinde geriye dönük testlere karşı olumsuz tutumunuz. Sonuçta , Kapat ile (sizinki gibi) değil, sipariş açma talebinde belirtilen herhangi bir fiyattan (benimki gibi) işlem açarsanız , keneler üzerinde test etmenin dezavantajları nelerdir?

Ve hala bazı fikirlerinizi göstermek için getirdiğiniz mumların parametrelerine bakarken hissetmem gereken farkın ne olduğunu anlamıyorum.

Uzman Danışmanımı başka bir broker üzerinde test etmek istemiyorum çünkü gerçek hayatta ticaret yapmaya cesaret edersem, o zaman sadece Alpari ile. Üstelik, en eksiksiz ve güvenilir kene verisine sahip olan kişi olduğunu kendiniz söylediniz.

Eminim ki benim için değerli bilgileriniz vardır, ki bunları ne yazık ki henüz sözlerinizden yakalayamıyorum.

1. Olumsuz tutum... Hayır, olumsuz değil. Sadece başarırsınız, testlerin bitmesini haftalarca beklersiniz ve sonra alıntıların yeterince iyi olmadığı ortaya çıkar ve bu, sonuçları GÜÇLÜ etkiler. Tüm DC'ler FILTER tırnak. Filtreler onları bozar. Alıntıların kalitesi için kritik olmayan bir Uzman Danışman yazma yoluna girdim.

2. MT4 ve MT5 alıntılarındaki fark, bununla başladım, MT5'te HER MUM İÇİN bir spread var. Neden öyle? bilmiyorum. Çevrimdışı bu yayılma maksimumdur. Çevrimiçi yürüyüşler. Yani kritik olmayan bir sistem yapmak gerekiyor. 1. maddeye bakın. G).

Aslında hepsi bu. Alt metin yok.

 
Александр :

1. Olumsuz tutum... Hayır, olumsuz değil. Sadece başarırsınız, testlerin bitmesini haftalarca beklersiniz ve sonra alıntıların yeterince iyi olmadığı ortaya çıkar ve bu, sonuçları GÜÇLÜ etkiler. Tüm DC'ler FILTER tırnak. Filtreler onları bozar. Alıntıların kalitesi için kritik olmayan bir Uzman Danışman yazma yoluna girdim.

2. MT4 ve MT5 alıntılarındaki fark, bununla başladım, MT5'te HER MUM İÇİN bir spread var. Neden öyle? bilmiyorum. Çevrimdışı bu yayılma maksimumdur. Çevrimiçi yürüyüşler. Yani kritik olmayan bir sistem yapmak gerekiyor. 1. maddeye bakın. G).

Aslında hepsi bu. Alt metin yok.

" ....... ve sonra alıntıların yeterince iyi olmadığı ortaya çıkıyor ve bu da sonuçları GÜÇLÜ etkiliyor. Tüm DC FILTER alıntıları. Filtreler onları bozar. ...."


Diyelim ki, test için Alpari sunucusundan MT5'e otomatik olarak indirilen bazı çiftler için 2008 için gerçek alıntılar var. Alıntı verilerinin yeterince iyi olmadığını nasıl belirlersiniz? Genel olarak, tekliflerin kalitesini hangi kriterlere göre değerlendiriyorsunuz? Sizce gerçek keneler hangi özelliklere sahip olmalıdır?   optimal kalitede alıntılar?
Sonuçta, Alpari'ye göre, kene gerçek alıntılar modellenmez veya üretilmez , kayıtlı tarihten alınır. Anladığım kadarıyla .... başka bir onay işareti herhangi bir alıntı getirdi - Bu alıntı ile Alpari işareti düzeltildi ve kaydedildi. Ve böylece her kene ile. Sonuç olarak, test için MT5'e yükledikleri fiyatları olan büyük bir onay veri tabanı biriktirirler. Ve ancak herhangi bir nedenle gerekli fiyat teklifi veya bunların sırası yoksa, ancak o zaman Alpari, fiyatlar ile gerçek keneleri kaçırmak yerine, bu tikler, gerçek kenelerin görünümüne mümkün olduğunca yakın bir algoritmaya göre modellenir.

Bu nedenle, alıntıların kalitesiyle ilgili hangi iddiaların yapılabileceğini tam olarak anlamıyorum. Alternatif olarak, bir kene gelip fiyatı getirdiğini hayal edebiliyorum, örneğin 1.00061. Ve Alpari bu tik için farklı bir fiyat atadı, örneğin 1.00077. Ya da bu keneye gerçekte var olmayan bir yayılma ekleyebilirler. Ama bu doğruysa, o zaman bir yabancı, özellikle derin tarihte bu ikameyi tespit edemeyecek. Dolayısıyla Alpari'nin bu keneyi bir alıntıyla süzdüğünü söylemek elbette mümkündür. Ama bana öyle geliyor ki bunu kanıtlamak neredeyse imkansız. Çünkü ilgili Alpari uzmanı dışında hiç kimse, filtrelenmiş kenenin birincil fiyatının veya yayılmasının ne olduğunu bilmiyor. Tek seçenek, bu uzmanın bu sırrı birine ifşa etmesi ve belki de bu gerçeği belgelerle doğrulamasıdır. Ama bana öyle geliyor ki, belgesel kanıtlara sahip bu bilgi hemen bu forumda ortaya çıkacaktı.


"... Tüm DC'ler FILTER tırnak işareti. Filtreler onları bozar....."


Bu konuda birçok kez okudum. Ancak bu filtreleme gerçek ticaretle ilgiliydi. Ve bana öyle geliyor ki böyle bir filtreleme DC için uygun. Bununla, eğer DC onları piyasaya getirmediyse, çok büyük bir hacimde çok sayıda pozisyon kar al ile kapatılabilirse büyük kayıplardan kaçınabilirler. Ve test için fiyat teklifi verirken filtrelemenin amacı nedir?

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 

Bir pozisyonun zarar eden kapanışını nasıl elde edeceğimi söyle, x2 katsayısı.

Şimdi 1,4,9,16 alıyorum - ama 2,4,8,16'ya ihtiyacım var.

Kodda ne düzeltilmeli?

 int cn= 0 ,c= 0 ;
   datetime dt= 0 ;
   for ( int i=OrdersHistoryTotal()- 1 ; i>= 0 ; i--){
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) && OrderType()<= 1 ) {
     if ((OrderSymbol()==mSymbol)&&(OrderMagicNumber()==Magic)) {
       double Profit=OrderProfit()+OrderCommission()+OrderSwap();
         if (Profit< 0 ) {  
        c++;   
        cn= ( int ) MathPow (c, 2 ) ; // что здесь исправить?
        } else break ;     
 }}}
   Comment (cn);
 
Denis Pershin :

Bir pozisyonu zararda kapatırken x2 katsayısını nasıl alacağımı söyle.

Şimdi 1,4,9,16 alıyorum - ama 2,4,8,16'ya ihtiyacım var.

Kodda ne düzeltilmeli?

her şeyin düzeltilmesi gerekiyor

Kodunuz, verilen sembol ve verilen sihir ile sipariş geçmişindeki ilk uygun siparişi arar.

daha sonra bulunan kârsız siparişlerin sayısı sayılır ve bu sipariş sayısı 2'nin kuvvetine çıkarılır.

" KIM'den faydalı işlevler " forumunda arama yapın ve kendinize şöyle bir şey oluşturun:

- sembolümüz ve sihrimizle son siparişin biletini bulun

- bulunan bilet için OrderProfit() ve OrderLots()'u alın ve gerekirse martingale katsayınız ile çarpın

Not: belki hazır bir çözüm vardır

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
Neden: