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

 
MakarFX # :

Teşekkür ederim Makar şimdi bunu danışmana bırakacağım ve bir göz atacağım

 
MakarFX # :

Makar teşekkürler Her şey istediğim gibi çalışıyor. Teşekkürler!!!

 
MakarFX # :

Gereksiz satırların kendilerinin silinmesini istiyorum, diyelim bir gün içinde.

Şimdiden teşekkürler!!!

 
EVGENII SHELIPOV # :

Gereksiz satırların kendilerinin silinmesini istiyorum, diyelim bir gün içinde.

Şimdiden teşekkürler!!!

 int OnInit ()
  {
   if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
     {
       ObjectCreate ( 0 , "Начало торговли" + TimeToString (Time[ 0 ], TIME_DATE ), OBJ_VLINE , 0 ,Time[ 0 ]+(StartTime* 3600 ), 0 );
       ObjectSetInteger ( 0 , "Начало торговли" + TimeToString (Time[ 0 ], TIME_DATE ), OBJPROP_COLOR , clrBlue );
       ObjectCreate ( 0 , "Окончание торговли" + TimeToString (Time[ 0 ], TIME_DATE ), OBJ_VLINE , 0 ,Time[ 0 ]+(StopTime* 3600 ), 0 );
       ObjectSetInteger ( 0 , "Окончание торговли" + TimeToString (Time[ 0 ], TIME_DATE ), OBJPROP_COLOR , clrBlue );
     }
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
void OnTick ()
  {
   if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
     {
       if ( ObjectFind ( 0 , "Начало торговли" + TimeToString (Time[ 1 ], TIME_DATE ))== 0 )
        {
         ObjectMove ( 0 , "Начало торговли" + TimeToString (Time[ 0 ], TIME_DATE ), 0 ,Time[ 0 ]+(StartTime* 3600 ), 0 )
         ObjectMove ( 0 , "Окончание торговли" + TimeToString (Time[ 0 ], TIME_DATE ), 0 ,Time[ 0 ]+(StopTime* 3600 ), 0 )
        }
       if (CountTrade( 0 )== 0 && CountTrade( 1 )== 0 && TradeSignal()== 0 )
         SendFirsOrder( 0 );
       if (CountTrade( 1 )== 0 && CountTrade( 0 )== 0 && TradeSignal()== 1 )
         SendFirsOrder( 1 );
     }

   //-----
  }
 
Nerd Trader # :

Yardımdan:
"Tekrarlanmayan bir dizi elde ettiğinizden emin olmak için MathSrand(GetTickCount()) çağrısını kullanın, çünkü GetTickCount () değeri işletim sistemi başlangıcından beri artıyor ve 49 gün boyunca tekrarlanmayacak"

hesap makinesine güven - kaç denemeden sonra rand() işlevi için ilk tekrarlanan değer (önceden oluşturulmuş olanlardan herhangi biri) elde edilir

 

Tecrübelerime göre - Kiril yazmayın

ECN MT4'ü Açma

/+----------------------------------------------------------------------------+
//|    Функция открытия ордера  (c) BeerGod 2015                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" - текущий символ)                   |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - MagicNumber                                                        |
//+----------------------------------------------------------------------------+
//  OpenPosition(string symbol,int operation,double volume,int slippage,double stoploss,double takeprofit,string comment,int magic,color);
int OpenPosition( string sy, int op, double ll, int Slippage, int sl, int tp, string comment, int mn, color Color)
  {
   if (op == 0 )   // открытие BUY
     {
       // проверяем доступность свободных средств
       if ((AccountFreeMarginCheck(sy,OP_BUY,ll)<= 0 ) || ( GetLastError ()== 134 ))
        {
         Print (sy, " " ,ll, " It is impossible to open the order Buy, not enough money." );
         return ( 0 );
        }
      RefreshRates();

       // открываем ордер
       int ticketbuy = OrderSend (sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage, 0 , 0 ,comment,mn, 0 ,Color);
       if (ticketbuy< 0 )
         Print (sy, " OpenPosition. OrderSend Buy fail #" , GetLastError ());
       else
         Print (sy, " OpenPosition. OrderSend Buy successfully" );

       //      Sleep (Pause);

       // модифицируем ордер (выставляем тейпрофит и стоплосс)
       if (sl != 0 || tp != 0 )
        {
         //--- вычисленные значения цен SL и TP должны быть нормализованы
         double BSLoss = NormalizeDouble (MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),( int )MarketInfo(sy,MODE_DIGITS));
         double BTProfit = NormalizeDouble (MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),( int )MarketInfo(sy,MODE_DIGITS));
         //--- если входящие значения ноль то заменяем цену модификации на ноль
         if (sl == 0 )
            BSLoss = 0 ;
         if (tp == 0 )
            BTProfit = 0 ;

         bool resbuy = OrderModify(ticketbuy,OrderOpenPrice(),BSLoss,BTProfit, 0 , clrNONE );
         if (!resbuy)
             Print (sy, " OpenPosition. OrderModify Buy fail #" , GetLastError ());
         else
             Print (sy, " OpenPosition. OrderModify Buy successfully" );
        }
     }

   if (op == 1 )   // открытие Sell
     {
       // проверяем доступность свободных средств
       if ((AccountFreeMarginCheck(sy,OP_SELL,ll)<= 0 ) || ( GetLastError ()== 134 ))
        {
         Print (sy, " " ,ll, " It is impossible to open the order Sell, not enough money." );
         return ( 0 );
        }
      RefreshRates();

       // открываем ордер
       int ticketsell = OrderSend (sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage, 0 , 0 ,comment,mn, 0 ,Color);
       if (ticketsell< 0 )
         Print (sy, " OpenPosition. OrderSend Sell fail #" , GetLastError ());
       else
         Print (sy, " OpenPosition. OrderSend Sell successfully" );

       //      Sleep (Pause);

       // модифицируем ордер (выставляем тейпрофит и стоплосс)
       if (sl != 0 || tp != 0 )
        {
         //--- вычисленные значения цен SL и TP должны быть нормализованы
         double SSLoss = NormalizeDouble (MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),( int )MarketInfo(sy,MODE_DIGITS));
         double STProfit = NormalizeDouble (MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),( int )MarketInfo(sy,MODE_DIGITS));
         //--- если входящие значения ноль то заменяем цену модификации на ноль
         if (sl == 0 )
            SSLoss = 0 ;
         if (tp == 0 )
            STProfit = 0 ;

         bool ressell = OrderModify(ticketsell,OrderOpenPrice(),SSLoss,STProfit, 0 , clrNONE );
         if (!ressell)
             Print (sy, " OpenPosition. OrderModify Sell fail #" , GetLastError ());
         else
             Print (sy, " OpenPosition. OrderModify Sell successfully" );
        }
     }
   return ( 0 );
  }
//--- End ---
 

Hepinize iyi günler!

Lütfen bana MQL4'te dinamik iki boyutlu bir dizi hakkında temel bilgilerin nerede olduğunu söyleyin. Her şeyden önce, nasıl oluşturulur? Bu nasıl kullanılır? Hangi özellikler bunun için geçerlidir?
Teşekkür ederim.

 
ANDREY # :

Hepinize iyi günler!

Lütfen bana MQL4'te dinamik iki boyutlu bir dizi hakkında temel bilgilerin nerede olduğunu söyleyin. Her şeyden önce, nasıl oluşturulur? Bu nasıl kullanılır? Hangi özellikler bunun için geçerlidir?
Teşekkür ederim.

Dizi Belgeleri

Ve dinamikler sadece birinci boyuttadır. Boyutların geri kalanı statiktir.
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
 
Valeriy Yastremskiy # :

Dizi Belgeleri

Ve dinamikler sadece birinci boyuttadır. Boyutların geri kalanı statiktir.

CArray ve bunun gibi diğerleri - herhangi bir boyutta yeniden boyutlandırılabilir herhangi bir boyutta dinamik diziler oluşturabilirsiniz.

Документация по MQL5: Стандартная библиотека / Коллекции данных
Документация по MQL5: Стандартная библиотека / Коллекции данных
  • www.mql5.com
Коллекции данных - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin # :

CArray ve bunun gibi diğerleri - herhangi bir boyutta yeniden boyutlandırılabilir herhangi bir boyutta dinamik diziler oluşturabilirsiniz.

Yardım için teşekkürler. Ancak, MQL5 ile ilgili olarak dinamik diziler hakkındaki bilgilere bağlantılar sağlıyorsunuz. Ve hala MQL4 öğreniyorum. Veya dinamik dizilerle ilgili olarak, MQL5'ten gelen kod, dil için de uygundur.   MQL4?
Teşekkür ederim.