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

 
tim2019 :
Yani sizce de fazla değil mi? Belki geliştiriciler, kullanıcı dostu bir arayüzün nasıl görünmesi gerektiğini anlamak için diğer serbest kaynaklara bakmalıdır. Hemen Kayıt düğmesini bile bulamadım. Genel olarak, korkunç.

Hayır, bilmiyorum.

Daha dün buraya kaydoldunuz. Satılık neyiniz var? Serbest hizmetteki siparişleri iyi bir düzeyde yerine getirmek için hangi bilgilere sahipsiniz? "Bir şekilde, sadece tekmelemek" düzeyinde değil, mükemmel, iyi, iyi bir geliştirici düzeyine karşılık gelen bir düzeyde mi?

Yoksa fikrinizi değiştirene kadar daha hızlı mı?

 
Artyom Trishkin :

Hayır, bilmiyorum.

Daha dün buraya kaydoldunuz. Satılık neyiniz var? Serbest hizmetteki siparişleri iyi bir düzeyde yerine getirmek için hangi bilgilere sahipsiniz? "Bir şekilde, sadece tekmelemek" düzeyinde değil, mükemmel, iyi, iyi bir geliştirici düzeyine karşılık gelen bir düzeyde mi?

Yoksa fikrini değiştirene kadar daha mı hızlı olursun?

Hala bazı arayüz standartları var. Bir hata oluşursa, en azından ne tür bir hata olduğunu bildirmek ve kullanıcıyı bir ağaçkakan ısrarıyla birkaç kez çekiçlemeye ve yeni bir tane yüklemeye / doldurmaya zorlamamak gelenekseldir.

Ve burada bilgi ya da satılık ne var? Ben o aşamaya bile gelmedim. Aksine, daha hızlı - ne yazık ki, modern dünya bununla ilgili. Beğenmedi, kapattı ve yürüdü. Biz böyle değiliz. Ama genel olarak, boş bir konuşma. Çarpık konuşuyorum ve beni böyle olması gerektiğine ikna ediyorlar. İyi tamam.

 
tim2019 :

Hala bazı arayüz standartları var. Bir hata oluşursa, en azından ne tür bir hata olduğunu bildirmek ve kullanıcıyı bir ağaçkakan ısrarıyla birkaç kez çekiçlemeye ve yeni bir tane yüklemeye / doldurmaya zorlamamak gelenekseldir.

Ve burada bilgi ya da satılık ne var? Ben o aşamaya bile gelmedim. Aksine, daha hızlı - ne yazık ki, modern dünya bununla ilgili. Beğenmedi, kapattı ve yürüdü. Biz böyle değiliz. Ama genel olarak, boş bir konuşma. Çarpık konuşuyorum ve beni böyle olması gerektiğine ikna ediyorlar. İyi tamam.

Sadece bir günde satıcı olarak kaydolan insanlar tanıyorum. Ancak bu insanlar ve onlardan da anlaşılacağı gibi meraklı ve acelesi yok, çabuk, çabuk. Ve aylarca forumda soru soran ama kendisine söylenen ve yazılan hiçbir şeyi yapmayanları gördüm.

Ve bilginiz için, orada yaşayan bir insan yok - tüm kayıt bir robot tarafından izleniyor. Böylece ona uzun süre vurabilir ve yanlış bir şey kaydırabilirsiniz. Ama yine de mesajlarını okumaya değer - her şey orada olmalı. Ne yazık ki, tüm bunları uzun zaman önce yaşadım ve o zamandan beri orada çok şey değişti, bu yüzden size probleminizin tam olarak ne olduğunu söyleyemem. Örneğin, satıcı profilinizin bölümlerini okuyun:


 

Pozisyon açma koşullarının düzeltilmesine yardımcı olun

 // открытие продаж

   if (CountSell()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])
     
// закрытие продаж
             if (CountSell()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
              
// открытие покупок

   if (CountBuy()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
     
// закрытие покупок    
             if (CountBuy()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])

gösterge parametrelerinin robotta yerleşik olduğu gerçeğini dikkate alarak

------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01 ; //
extern int   TakeProfit= 60 ; //
extern int   StopLoss= 100 ; //
extern int Magic= 111111111 ;
extern int Slippage= 3 ;
extern int ExtDepth= 12 ;
extern int ExtDeviation= 5 ;
extern int ExtBackstep= 3 ;

datetime Today= 0 ;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit ()
  {
   if ( Digits == 3 || Digits == 5 )
     {
      TakeProfit *= 10 ;
      StopLoss   *= 10 ;
      Slippage   *= 10 ;
     }
   return ( INIT_SUCCEEDED );
  }
//±-----------------------------------------------------------------+
int deinit() { return ( 0 );}
//±-----------------------------------------------------------------+
int start()
  {

   if (DayOfWeek()== 0 || DayOfWeek()== 6 ) return ( 0 ); // в выходные не работаем
   if (!IsTradeAllowed()) return ( 0 ); // пропустим тик если терминал занят
                                     //:проверим открытие новой свечи
   if (Time[ 0 ]==Today) return ( 0 );
   Today=Time[ 0 ];
//:получим значение ZigZag на предыдущей свече
   double lZZ= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 1 );
  
// открытие продаж

   if (CountSell()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])
     {
      SL = NormalizeDouble (Bid+StopLoss* Point , Digits );
      TP = NormalizeDouble (Bid-TakeProfit* Point , Digits );
        {

         ticket= OrderSend ( Symbol (),OP_SELL,lots,Bid,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Red);
         if (ticket> 0 )
           {
             // закрытие продаж
             if (CountSell()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
              {
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
                 {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
                    {
                     if (OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                         if (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage, clrNONE ))
                           Print ( "Ошибка открытия ордера на покупку !" );
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if (CountBuy()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
     {
      TP = NormalizeDouble (Ask+TakeProfit* Point , Digits );
      SL = NormalizeDouble (Ask-StopLoss* Point , Digits );
        {
         ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Green);
         if (ticket> 0 )
           {
             // закрытие покупок    
             if (CountBuy()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])
              {
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
                 {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
                    {
                     if (OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                         if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage, clrNONE ))
                           Print ( "Ошибка открытия ордера на продажу!" );
                    }
                 }
              }
           }
        }
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
int CountSell() //проверкна открытие ордеров на продажу
  {
   int count= 0 ;

   for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
     {
       if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
             if (OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
int CountBuy() // проверкна открытие ордеров на покупку
  {
   int count= 0 ;

   for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
     {
       if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
             if (OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
 
Алексей Тарабанов :

Kazanamazsınız - çalmak.

Filmdeki klasik cümle, adını hatırlamıyorum: “Nasıl çalacağını bilmiyorsan, nasıl para kazanılacağını öğren.”
 
Tünaydın, nedense danışman terminali yüklüyor. Bir hata nasıl belirlenir? ((( Teşekkürler.
 
rabanik :
Tünaydın, nedense danışman terminali yüklüyor. Bir hata nasıl belirlenir? ((( Teşekkürler.
Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

Tünaydın. Danışmanı gerçek bir hesapta test etmeye başladım. Ve bazı nedenlerden dolayı, satın alma emirleri bazen kar almadan açılır. Bunu satış emirlerinde görmedim. lütfen bana ne izlemem gerektiğini söyle veya benzer durumlar hakkında bilgi ver

 
Lomonosov1991 :

Tünaydın. Danışmanı gerçek bir hesapta test etmeye başladım. Ve bazı nedenlerden dolayı, satın alma emirleri bazen kar almadan açılır. Bunu satış emirlerinde görmedim. lütfen bana ne izlemem gerektiğini söyle veya benzer durumlar hakkında bilgi ver

"Uzmanlar" terminal günlüğüne bakın

 

Hepinize iyi günler! Millet, bilen varsa söylesin.

İşte bu kod yardımı ile güncel fiyatları alabilirsiniz.

 void OnTick ()
  {
   MqlTick last_tick;
//---
   if ( SymbolInfoTick ( Symbol (),last_tick))
     {
       Print (last_tick.time, ": Bid = " ,last_tick.bid,
             " Ask = " ,last_tick.ask, "  Volume = " ,last_tick.volume);
     }
   else 
       Print ( "SymbolInfoTick() failed, error = " , GetLastError ());
//---
  }

Soru:

Bunu da ona tutturmak nasıl doğru olacak?

 bool    SymbolInfoTick (
   string     symbol,     // символ
   MqlTick &  tick         // ссылка на структуру
   );

Pekala, birkaç döviz çiftinden bir Uzman Danışmanda mevcut fiyatları almak için.

Şey, programlamada güçlü değilim, bu yüzden anlamaya çalışıyorum!