Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 654
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Alt fraktalın çubuk numarası biliniyor
Ondan, bilinen fraktalın düşük değerine karşılık gelen ilk yüksek için döngüye bakıyoruz.
Bunu yapabilirsin, ama ben tam tersini yapardım. Onlar. önce önceki (oluşturulmuş) mumun yüksek değerini ve ardından son aşağı fraktalını buluruz. Eşleşirlerse, buna bir son verin.
Anlamıyorum. Bu durumda tam da bunu yaptığımızı sanıyordum.
MQL5.community'den GİRİŞ ve ŞİFRE girin.
Ve tam olarak nerede bir satır var
Üzgünüm, terminalle karıştırdım. Tabii ki, sadece MQL5.community'den GİRİŞ yapmanız gerekiyor.
Anlamıyorum. Bu durumda tam da bunu yaptığımızı sanıyordum.
Sakin ol... yap...
#property link "https://www.mql5.com/ru/users/tapochun"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
//---
#property indicator_type1 DRAW_ARROW
#property indicator_width1 5
#property indicator_color1 clrAqua
#property indicator_type2 DRAW_ARROW
#property indicator_width2 5
#property indicator_color2 clrRed
//+------------------------------------------------------------------+
//| Глобальные переменные |
//+------------------------------------------------------------------+
double bufSell[];
double bufBuy[];
//+------------------------------------------------------------------+
//| Входные параметры |
//+------------------------------------------------------------------+
input int inpNum= 50 ; // Количество свечей для поиска последнего фрактала
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
SetIndexBuffer ( 0 ,bufBuy);
SetIndexBuffer ( 1 ,bufSell);
SetIndexEmptyValue ( 0 , EMPTY_VALUE );
SetIndexEmptyValue ( 1 , EMPTY_VALUE );
SetIndexArrow ( 0 , 225 );
SetIndexArrow ( 1 , 226 );
IndicatorDigits ( _Digits );
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
if (rates_total<= 0 || prev_calculated< 0 )
return ( 0 );
//---
if (prev_calculated> 0 ) // Если не первый расчет индикатора
{
}
else // Если первый расчет индикатора
{
ArrayInitialize (bufBuy, EMPTY_VALUE );
ArrayInitialize (bufSell, EMPTY_VALUE );
//---
for ( int i= 1 ; i<rates_total- 7 ; i++)
{
CheckBuyArrow(low[i],i,i+ 4 ,rates_total- 3 ,time);
CheckSellArrow(high[i],i,i+ 4 ,rates_total- 3 ,time);
}
}
//---
return (rates_total);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CheckBuyArrow( const double price,
const int index,
const int first,
int last,
const datetime &time[]
)
{
last=(first+inpNum- 1 <last) ? first+inpNum- 1 : last;
double iPrice;
//---
for ( int i=first; i<=last; i++)
{
iPrice= iFractals ( _Symbol , _Period , MODE_UPPER ,i);
if (iPrice!= EMPTY_VALUE )
{
if (price==iPrice)
{
bufBuy[index]=iPrice- 10 * _Point ;
Print ( __FUNCTION__ , ": " + TimeToString (time[index])+ " - " + TimeToString (time[i]));
}
return ;
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CheckSellArrow( const double price,
const int index,
const int first,
int last,
const datetime &time[]
)
{
last=(first+inpNum- 1 <last) ? first+inpNum- 1 : last;
double iPrice;
//---
for ( int i=first; i<=last; i++)
{
iPrice= iFractals ( _Symbol , _Period , MODE_LOWER ,i);
if (iPrice!= EMPTY_VALUE )
{
if (price==iPrice)
{
bufSell[index]=iPrice+ 10 * _Point ;
Print ( __FUNCTION__ , ": " + TimeToString (time[index])+ " - " + TimeToString (time[i]));
}
return ;
}
}
}
//+------------------------------------------------------------------+
Teşekkür ederim ama hiç yaşam belirtisi göstermiyor..Belki yanlış bir şey yapmıştır?
Birkaç seçenek mümkündür:
Nous x64 sistemi, çünkü 8 GB RAM'im var ve şarapların ekseni 10, tamam teşekkürler güvenlik duvarını kapattım şimdi tekrar deneyeceğim!
Anlamıyorum. Bu durumda tam da bunu yaptığımızı sanıyordum.