//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- массивы для хранения котировок
double source_array[][8];
double dest_array[][8];
MqlRates rates[];
//--- получаем данные 20 последних свечей на текущем таймфрейме
int copied=CopyRates(NULL,0,0,20,rates);
if(copied<=0)
{
PrintFormat("CopyRates(%s,0,0,20,rates) failed, error=%d",
Symbol(),GetLastError());
return;
}
//--- зададим размер массива под количество скопированных данных
ArrayResize(source_array,copied);
//--- заполним массив rate_array_1[] данными из rates[]
for(int i=0;i<copied;i++)
{
source_array[i][0]=(double)rates[i].time;
source_array[i][1]=rates[i].open;
source_array[i][2]=rates[i].high;
source_array[i][3]=rates[i].low;
source_array[i][4]=rates[i].close;
source_array[i][5]=(double)rates[i].tick_volume;
source_array[i][6]=(double)rates[i].spread;
source_array[i][7]=(double)rates[i].real_volume;
}
//--- произведем обмен данными между source_array[] и dest_array[]
if(!ArraySwap(source_array,dest_array))
{
PrintFormat("ArraySwap(source_array,rate_array_2) failed, error code=%d",GetLastError());
return;
}
//--- убедимся, что после обмена размер массива-источника стал нулевым
PrintFormat("ArraySwap() done: ArraySize(source_array)=%d",ArraySize(source_array));
//--- выведем данные массива-приемника dest_array[]
ArrayPrint(dest_array);
}
|