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

 
Николай Никитюк :
Merhaba! 2020.11.15_05:51 GMT+3. MT4'teki strateji test cihazım için bir şey çok yavaş. Önceden GBPUSD saatlik grafiğinde kısa bir süreliğine üç aylık geçmişi kontrol etmem normal görünüyordu. Danışman kontrol edildi. Ve son zamanlarda bir aylık geçmiş için GOLD, M15 danışmanını kontrol ettim. Bir saat kırk yedi dakika kontrol ettim - test cihazında bir buçuk gün geçti. Strateji test cihazının hızlı çalışması için ne yapılabilir? ServiceDesk'e yazabilir misiniz? Kim ne yapacağını biliyor? Bir cevap bekleyeceğim. 06:04 GMT+3. Evet. MT4 test cihazının günlüğünü ekleyebilirim.

hangi göstergenin ayarlandığına bağlıdır. Sadece test cihazının yavaşlamadığı, aynı zamanda tüm bilgisayarın donduğu gibi Göstergeler vardır.

 
SanAlex :

hangi göstergenin ayarlandığına bağlıdır. Yalnızca test cihazının yavaşlamadığı, aynı zamanda tüm bilgisayarın donduğu gibi Göstergeler vardır.

Artık bir cevap beklemiyor - zaman doldu!

Yazılan mesaj: 2020.11.15_05:51 GMT+3

Ayın 15'inde de cevap bekleniyordu: " Cevap bekleyeceğim. 06:04 GMT+3"

strateji test cihazım için bir şey çok yavaş. Önceden, GBPUSD saatlik grafiğinde kısa bir süreliğine üç aylık geçmişi kontrol etmem normal görünüyordu. Danışman kontrol edildi. Ve son zamanlarda bir aylık geçmiş için GOLD, M15'teki danışmanı kontrol ettim. Bir saat kırk yedi dakika kontrol ettim - test cihazında bir buçuk gün geçti. Strateji test cihazının hızlı çalışması için ne yapılabilir? ServiceDesk'e yazabilir misiniz? Kim ne yapacağını biliyor? Bir cevap bekleyeceğim. 06:04 GMT+3 . Evet. MT4 test cihazının günlüğünü ekleyebilirim.


Yani yardım etmek istiyorsanız, hızlı ve zamanında cevap verin!

PS Kendime cevap verecek zamanım olmadı - uyuyakaldım.

 
Vitaly Muzichenko :

Artık bir cevap beklemiyor - zaman doldu!

Yazılan yazı: 2020.11.15_05:51 GMT+3

Ayın 15'inde de cevap bekleniyordu: " Cevap bekleyeceğim. 06:04 GMT+3"


Yani yardım etmek istiyorsanız, hızlı ve zamanında cevap verin!

PS Kendime cevap verecek zamanım olmadı - uyuyakaldım.

Olur - biri sorar ve diğeri cevabı bulur.

 
Gudgeon :
Küp kökünü nasıl hesaplayacağımı söyler misiniz? ifade MathPow(x,1/3)=1

1/3=0 bu nedenle değerlerden birini çift tipe koymak gerekir, yani 1/3.0 veya 1.0/3 veya 1.0/3.0

 
Alexey Viktorov :

1/3=0 bu nedenle değerlerden birini çift tipe koymak gerekir, yani 1/3.0 veya 1.0/3 veya 1.0/3.0

Teşekkür ederim!

 

Merhaba.

İlki için yeniden yapmak için bir danışmanla başlamaya karar verdim, böylece başabaş noktasına bir stop loss koyacaktım.

Görünüşe göre her şey doğru, derleniyor ama tercüme etmek istemiyor, lütfen yardım edin.

 //+------------------------------------------------------------------+
//|                                               Moving Average.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright    "2005-2014, MetaQuotes Software Corp."
#property link          "http://www.mql4.com"
#property description "Moving Average sample expert advisor"
#property strict
//#define MAGICMA  20131111
//--- Inputs
input double Lots          = 0.1 ;
input double MaximumRisk   = 0.02 ;
input double DecreaseFactor= 3 ;
input int     SL            = 600 ;
input int     Slip          = 50 ;
input int     MovingPeriod  = 12 ;
input int     MovingShift   = 6 ;
//extern string Trailing_Funcion   = "Main_step_tral";
//extern bool   tral               =true;
extern int     TralStop       = 40 ; // Растояние в пунктах, откуда начнем тралить : если цена прошла в плюс 40 пунктов, то стоп передвинется на 5 пунктов в плюсовом поле
extern int     Tral           = 5 ; // Шаг трала
extern int     MAGICMA        = 12345 ;

//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders( string symbol)
  {
   int buys,sells;
   buys= 0 ;
   sells= 0 ;
//---
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA)
        {
         if (OrderType()==OP_BUY)  buys++;
         if (OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if (buys> 0 ) return (buys);
   else        return (-sells);
  }

//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int     orders=HistoryTotal();     // history orders total
   int     losses= 0 ;                   // number of losses orders without a break
//--- select lot size
   lot= NormalizeDouble (AccountFreeMargin()*MaximumRisk/ 1000.0 , 1 );
//--- calcuulate number of losses orders without a break
   if (DecreaseFactor> 0 )
     {
       for ( int i=orders- 1 ;i>= 0 ;i--)
        {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== false )
           {
             Print ( "Error in history!" );
             break ;
           }
         if (OrderSymbol()!= Symbol () || OrderType()>OP_SELL)
             continue ;
         //---
         if (OrderProfit()> 0 ) break ;
         if (OrderProfit()< 0 ) losses++;
        }
       if (losses> 1 )
         lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 1 );
     }
//--- return lot size
   if (lot< 0.1 ) lot= 0.1 ;
   return (lot);
  }
//+------------------------------------------------------------------+
//| Функция выставления стоп лосс  в БУ                              |
//+------------------------------------------------------------------+
void T_SL()
{
int i= 0 ;
for (i= 0 ; i< OrdersTotal (); i++)
{
if (( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))) continue ;
if (OrderSymbol() != Symbol ()) continue ;
if (OrderMagicNumber()!=MAGICMA) continue ;
if (OrderType()==OP_BUY)
{
if ( NormalizeDouble (Bid-OrderOpenPrice(), Digits )> NormalizeDouble (TralStop* Point , Digits ))
//if(OrderOpenPrice()<=(Bid-TralStop))//&&OrderOpenPrice()>OrderStopLoss())
{      
OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Bid-Tral* Point , Digits ),OrderTakeProfit(), 0 ,Green);
}
}  
if (OrderType()==OP_SELL)
{
if ( NormalizeDouble (OrderOpenPrice()-Ask, Digits )> NormalizeDouble (TralStop* Point , Digits ))
//if(OrderOpenPrice()>=(Ask+TralStop))//&&OrderOpenPrice()<OrderStopLoss()) 
{
OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Ask+Tral* Point , Digits ),OrderTakeProfit(), 0 ,Red);
}
} 
}
}
//| Конец функции тралл стоп лосс |  
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int     res;
//--- go trading only for first tiks of new bar
   if (Volume[ 0 ]> 1 ) return ;
//--- get Moving Average 
   ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 );
//--- sell conditions
   if (Open[ 1 ]>ma && Close[ 1 ]<ma)
     {
      res= OrderSend ( Symbol (),OP_SELL,LotsOptimized(),Bid,Slip, NormalizeDouble (Bid+SL* Point , Digits ), 0 , "" ,MAGICMA, 0 , clrDarkRed );
       return ;
     }
//--- buy conditions
   if (Open[ 1 ]<ma && Close[ 1 ]>ma)
     {
      res= OrderSend ( Symbol (),OP_BUY,LotsOptimized(),Ask,Slip, NormalizeDouble (Ask-SL* Point , Digits ), 0 , "" ,MAGICMA, 0 , clrDarkGreen );
       return ;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if (Volume[ 0 ]> 1 ) return ;
//--- get Moving Average 
   ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 );
//---
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderMagicNumber()!=MAGICMA || OrderSymbol()!= Symbol ()) continue ;
       //--- check order type 
       if (OrderType()==OP_BUY)
        {
         if (Open[ 1 ]>ma && Close[ 1 ]<ma)
           {
             if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
           }
         break ;
        }
       if (OrderType()==OP_SELL)
        {
         if (Open[ 1 ]<ma && Close[ 1 ]>ma)
           {
             if (!OrderClose(OrderTicket(),OrderLots(),Ask, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
           }
         break ;
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick ()
  {
//--- check for start trall
   if (TralStop!= 0 ) T_SL();
 //  if(tral){T_SL();}  // это строка запуска тралла
//--- check for history and trading
   if ( Bars < 100 || IsTradeAllowed()== false )
       return ;
//--- calculate open orders by current symbol
   if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen();
   else                                   CheckForClose();
//---
  }
//+------------------------------------------------------------------+
 



double    Fibo_Level= ObjectGetDouble (
                       0 ,           // идентификатор графика
                       n,               // имя объекта
                       OBJPROP_LEVELVALUE ,           // идентификатор свойства
                       4      // модификатор свойства
                    );

Hey!!! Bana seviyenin fiyatını nasıl alacağımı söyle   61.8 Fibo?

Che sadece bir açıklama ile seviye numarasının nasıl alınacağını buldu. Genel olarak hangi işlev için - Fibonacci nesnesinin düzeyinin açıklamasını döndürür? Bu açıklama fiyatla bağlantılı değilse, bu açıklama pratik açıdan nasıl kullanılabilir? Bu sadece ilginç)))


Gerçekten fiyatın, bağlantı noktaları arasındaki mesafeye göre hesaplanması gerekecek ???

Документация по MQL5: Операции с графиками / ChartID
Документация по MQL5: Операции с графиками / ChartID
  • www.mql5.com
ChartID - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Kira27 :

Hey!!! Bana seviyenin fiyatını nasıl alacağımı söyle   61.8 Fibo?

Che sadece bir açıklama ile seviye numarasının nasıl alınacağını buldu. Genel olarak hangi işlev için - Fibonacci nesnesinin düzeyinin açıklamasını döndürür? Bu açıklama fiyatla bağlantılı değilse, bu açıklama pratik açıdan nasıl kullanılabilir? Bu sadece ilginç)))


Gerçekten fiyatın, bağlantı noktaları arasındaki mesafeye göre hesaplanması gerekecek ???

Nesne koordinatlarının fiyatları arasında %100'dür. Seviye 61.8, seviye 0 artı %61.8'in fiyatıdır. Bunlar grafik işlemleri değil.

 
Alexey Viktorov :

Nesne koordinatlarının fiyatları arasında %100'dür. Seviye 61.8, seviye 0 artı %61.8'in fiyatıdır. Bunlar grafik işlemleri değil.

Teşekkürler!!! Ben de öyle düşünmüştüm.

 

Merhaba. mql4'te MarketInfo() işlevi, mevcut piyasa bilgilerini almak için kullanılır. MODE_LOTSIZE, MODE_TICKVALUE ve MODE_TICKSIZE elde etmek için şu an için değil, tarihteki barların kapanış fiyatları için hangi fonksiyon kullanılmalıdır ?

Neden: