Günlük uç noktalar ve bulduğunuz şey esasen aşırı uçlardır, düşükler (veya yüksekler) mevcut fiyattan oldukça büyük mesafelere sahiptir. Havva'da 132 günde minimum ve maksimumun yayılması 12300 puandan fazladır. 2000'in en düşük seviyesinden, 800'ün en yüksek seviyesinden fiyat.
ben de tutmuyorum.
Kusura bakmayın yarın açıklamaya çalışacağım bugün yoruldum
intArrayCopyRates( MqlOranlar&Rates_array[],// Referans tarafından geçirilen MqlRates dizisi sicimsembol=NULL,// araç intzaman aralığı=0// zaman aralığı );
Belirtilen grafiğin çubuklarının verilerini double RateInfo[][6] türünde iki boyutlu bir diziye kopyalar ve kopyalanan çubukların sayısını döndürür.
intArrayCopyRates( geçersiz&dest_array[][],// başvuruya göre geçirilen dizi sicimsembol=NULL,// araç intzaman aralığı=0// zaman aralığı );
Seçenekler
DiziKopyaOranları
Çağrının ikinci formunu kullanırken, veriler aslında dest_array[][] dizisine kopyalanır, dizinin kendisi zaman serisi boyutuna uyacak şekilde otomatik olarak yeniden tahsis edilir (dizi statik olarak bildirilmiş olsa bile).
Dizinin ilk boyutu çubuk sayısını içerir. İkinci boyutun değerleri olan 6 öğesi vardır:
0 - zaman (zaman), 1 - açılış fiyatı (açık), 2 - en düşük fiyat (düşük), 3 - en yüksek fiyat (yüksek), 4 - kapanış fiyatı (kapanış),
Если некоторое имя, которое не было описано ранее, появляется в выражении и за ним следует левая круглая скобка, то оно по контексту считается именем некоторой функции. Аргументы (формальные параметры) передаются по значению, т. е. каждое выражение x1, . . . , xn вычисляется и значение передается функции. Порядок вычисления выражений и порядок...
intArrayCopyRates( MqlOranlar&Rates_array[],// Referans tarafından geçirilen MqlRates dizisi sicimsembol=NULL,// araç intzaman aralığı=0// zaman aralığı );
Belirtilen grafiğin çubuklarının verilerini double RateInfo[][6] türünde iki boyutlu bir diziye kopyalar ve kopyalanan çubukların sayısını döndürür.
intArrayCopyRates( geçersiz&dest_array[][],// başvuruya göre geçirilen dizi sicimsembol=NULL,// araç intzaman aralığı=0// zaman aralığı );
Seçenekler
DiziKopyaOranları
Çağrının ikinci formunu kullanırken, veriler aslında dest_array[][] dizisine kopyalanır, dizinin kendisi zaman serisi boyutuna uyacak şekilde otomatik olarak yeniden tahsis edilir (dizi statik olarak bildirilmiş olsa bile).
Dizinin ilk boyutu çubuk sayısını içerir. İkinci boyutun değerleri olan 6 öğesi vardır:
0 - zaman (zaman), 1 - açılış fiyatı (açık), 2 - en düşük fiyat (düşük), 3 - en yüksek fiyat (yüksek), 4 - kapanış fiyatı (kapanış),
int türünün dönüş değeri nerede saklanır? Tüm verileri işleve ilettiniz, ancak ondan bir bok alamadınız.
#property version"1.00"#property strict//символ и таймфрейм текущего графикаstring symbol;
ENUM_TIMEFRAMES frame;
datetime time;
struct BarData
{
struct Elem
{
int number; //порядковый номер периода (дня, месяца или года)double high; //максимум периодаdouble low; //минимум периодаdatetime time_high; //время максимумаdatetime time_low; //время минимума
} Arr[]; //массив периодаint index; //текущий индекс массиваdouble max; //последнее максимальное значение периодаdouble min; //последнее минимальное значение периодаdatetime time_max; //время максимумаdatetime time_min; //время минимума//при создании структуры указываем, что массив пустой
BarData(){index=- 1 ;}
//функция записывает текущие экстремумыvoid WriteBar( int eNumber, string eSymbol, ENUM_TIMEFRAMES eFrame, datetime eTime)
{
int eShift= iBarShift (eSymbol,eFrame,eTime);
double eHigh= iHigh (eSymbol,eFrame,eShift);
double eLow= iLow (eSymbol,eFrame,eShift);
//если элементов ещё нет или период сменилсяif (index< 0 || eNumber!=Arr[index].number)
{
ArrayResize (Arr,++index+ 1 );
Arr[index].number=eNumber;
Arr[index].high=eHigh;
Arr[index].low=eLow;
Arr[index].time_high=eTime;
Arr[index].time_low=eTime;
}
//если произошло обновление текущего максимумаif (eHigh-Arr[index].high> 0 )
{
Arr[index].high=eHigh;
Arr[index].time_high=eTime;
}
//если произошло обновление текущего минимумаif (Arr[index].low-eLow> 0 )
{
Arr[index].low=eLow;
Arr[index].time_low=eTime;
}
//если произошло обновление предыдущего максимумаif (eHigh-max> 0 )
{
for ( int i=index+ 1 ; i>= 0 ; i--)
{
if (Arr[index].high-eHigh> 0 )
{
max=Arr[index].high;
time_max=Arr[index].time_high;
break ;
}
}
}
//если произошло обновление предыдущего минимумаif (min-eLow> 0 )
{
for ( int i=index+ 1 ; i>= 0 ; i--)
{
if (eLow-Arr[index].low> 0 )
{
min=Arr[index].low;
time_min=Arr[index].time_low;
break ;
}
}
}
}
} day, month, year;
intOnInit ()
{
symbol= Symbol ();
frame=( ENUM_TIMEFRAMES ) Period ();
return ( INIT_SUCCEEDED );
}
voidOnTick ()
{
//текущее время закрытого бара
time= iTime (symbol,frame, 1 );
MqlDateTime date;
TimeToStruct (time,date);
//делаем записи каждого периода
day.WriteBar(date.day,symbol,frame,time);
month.WriteBar(date.mon,symbol,frame,time);
year.WriteBar(date.year,symbol,frame,time);
//теперь имеем значения Comment ( TimeToString (day.time_max)+ " : " + DoubleToString (day.max)+ " : " + DoubleToString (day.Arr[day.index].high)+ "\n" + TimeToString (day.time_min)+ " : " + DoubleToString (day.Arr[day.index].low)+ " : " + DoubleToString (day.min));
}
Gereksiz döngülerden kaçınmaya çalışmalıyız. Bir akışta gelen alıntılarımız var ve daha sonra geçmişe dalıp bilgisayar kaynaklarını boşa harcamamak için gerekli girişleri hemen yapmanız gerekiyor.
Количество_баров=ArrayCopyRates(Bar_data_D1, _Symbol , PERIOD_D1 ); // Копирует в массив данные баров указанного графика и возвращает количество скопированных баров
Günlük uç noktalar ve bulduğunuz şey esasen aşırı uçlardır, düşükler (veya yüksekler) mevcut fiyattan oldukça büyük mesafelere sahiptir. Havva'da 132 günde minimum ve maksimumun yayılması 12300 puandan fazladır. 2000'in en düşük seviyesinden, 800'ün en yüksek seviyesinden fiyat.
ben de tutmuyorum.
Kusura bakmayın yarın açıklamaya çalışacağım bugün yoruldum
AUDUSD'm yok
Neyi kopyalar, nereye ve kime geri döner?
Neyi kopyalar, nereye ve kime geri döner?
Neyi kopyalar, nereye ve kime geri döner?
int ArrayCopyRates (
MqlOranlar& Rates_array[] , // Referans tarafından geçirilen MqlRates dizisi
sicim sembol=NULL , // araç
int zaman aralığı=0 // zaman aralığı
);
Belirtilen grafiğin çubuklarının verilerini double RateInfo[][6] türünde iki boyutlu bir diziye kopyalar ve kopyalanan çubukların sayısını döndürür.
int ArrayCopyRates (
geçersiz& dest_array[][] , // başvuruya göre geçirilen dizi
sicim sembol=NULL , // araç
int zaman aralığı=0 // zaman aralığı
);
Seçenekler
DiziKopyaOranlarıÇağrının ikinci formunu kullanırken, veriler aslında dest_array[][] dizisine kopyalanır, dizinin kendisi zaman serisi boyutuna uyacak şekilde otomatik olarak yeniden tahsis edilir (dizi statik olarak bildirilmiş olsa bile).
Dizinin ilk boyutu çubuk sayısını içerir. İkinci boyutun değerleri olan 6 öğesi vardır:
0 - zaman (zaman),
1 - açılış fiyatı (açık),
2 - en düşük fiyat (düşük),
3 - en yüksek fiyat (yüksek),
4 - kapanış fiyatı (kapanış),
int ArrayCopyRates (
MqlOranlar& Rates_array[] , // Referans tarafından geçirilen MqlRates dizisi
sicim sembol=NULL , // araç
int zaman aralığı=0 // zaman aralığı
);
Belirtilen grafiğin çubuklarının verilerini double RateInfo[][6] türünde iki boyutlu bir diziye kopyalar ve kopyalanan çubukların sayısını döndürür.
int ArrayCopyRates (
geçersiz& dest_array[][] , // başvuruya göre geçirilen dizi
sicim sembol=NULL , // araç
int zaman aralığı=0 // zaman aralığı
);
Seçenekler
DiziKopyaOranlarıÇağrının ikinci formunu kullanırken, veriler aslında dest_array[][] dizisine kopyalanır, dizinin kendisi zaman serisi boyutuna uyacak şekilde otomatik olarak yeniden tahsis edilir (dizi statik olarak bildirilmiş olsa bile).
Dizinin ilk boyutu çubuk sayısını içerir. İkinci boyutun değerleri olan 6 öğesi vardır:
0 - zaman (zaman),
1 - açılış fiyatı (açık),
2 - en düşük fiyat (düşük),
3 - en yüksek fiyat (yüksek),
4 - kapanış fiyatı (kapanış),
int türünün dönüş değeri nerede saklanır? Tüm verileri işleve ilettiniz, ancak ondan bir bok alamadınız.
int türünün dönüş değeri nerede saklanır? Tüm verileri işleve ilettiniz, ancak ondan bir bok alamadınız.
Min_D_Level = iLow(_Symbol,PERIOD_D1,i); break ;burada gibi görünüyor
çift Min_D_Level ; // en yakın minimum D seviyesi
Yoksa bir şey anlamıyor muyum?
int türünün dönüş değeri nerede saklanır?
???
Gerçekten beyin haşlanmış.
Prosh'ta bir şekilde mümkün.
Mesela burada siz (siz) burada kabul edilemez olana izin verdiniz, aynen bu şekilde olacak, bir kod örneği vb.
Burada biraz oturdu.
Gereksiz döngülerden kaçınmaya çalışmalıyız. Bir akışta gelen alıntılarımız var ve daha sonra geçmişe dalıp bilgisayar kaynaklarını boşa harcamamak için gerekli girişleri hemen yapmanız gerekiyor.burada gibi görünüyor
çift Min_D_Level ; // en yakın minimum D seviyesi
Yoksa bir şey anlamıyor muyum?
Evet, anlamıyorsun. Bunun gibi olmalı:
Peki, devamı...
Evet, anlamıyorsun. Bunun gibi olmalı:
Peki, devamı...
Bunun için çok teşekkür ederim!!
Bunun için çok teşekkür ederim!!
Hiçbir şey için büyük.
3.47 Yatağa gidiyorum.
Her şeyi yarın çözeceğim, herhangi bir sorunuz olursa bana bildirin!
Hepinize çok teşekkürler!!!