#property indicator_separate_window //---- количество индикаторных буферов 2 #property indicator_buffers3 //---- использовано всего одно графическое построение #property indicator_plots1 //+----------------------------------------------+ //| объявление констант | //+----------------------------------------------+ #define RESET 0// Константа для возврата терминалу команды на пересчёт индикатора //+----------------------------------------------+ //| Параметры отрисовки индикатора | //+----------------------------------------------+ #property indicator_type1 DRAW_HISTOGRAM #property indicator_color1 clrPlum //+----------------------------------------------+ //| Входные параметры индикатора | //+----------------------------------------------+ inputstring Symb1="EURUSD"; inputint Per=14; int Shift=0; //+----------------------------------------------+ //---- объявление динамических массивов, которые будут в // дальнейшем использованы в качестве индикаторных буферов double Buffer1[]; double Buffer2[]; double Buffer3[],Buffer4[],Buffer5[]; //---- Объявление целых переменных начала отсчёта данных int min_rates_total; //---- Объявление целых переменных для хранения хендлов индикаторов int Handle1,Handle2; double buf1[],buf2[],close1[],close2[],buf4[]; int closed1,closed2; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ intOnInit() { //---- Инициализация переменных начала отсчёта данных min_rates_total=Per+1;
//--- получение хендла индикатора Fast iCCI Handle1=iMA(Symb1,PERIOD_CURRENT,Per,0,0,0); if(Handle1==INVALID_HANDLE) { Print(" Не удалось получить хендл индикатора"); return(INIT_FAILED); }
//---- превращение динамического массива в индикаторный буфер SetIndexBuffer(1,Buffer1,INDICATOR_DATA); SetIndexBuffer(0,Buffer3,INDICATOR_DATA); SetIndexBuffer(2,buf1,INDICATOR_DATA); //---- осуществление сдвига индикатора 1 по горизонтали на Shift PlotIndexSetInteger(0,PLOT_SHIFT,Shift); //---- осуществление сдвига начала отсчёта отрисовки индикатора 1 на min_rates_total PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); IndicatorSetInteger(INDICATOR_DIGITS,_Digits); //--- завершение инициализации return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ intOnCalculate( constint rates_total, // количество истории в барах на текущем тике constint prev_calculated,// количество истории в барах на предыдущем тике constdatetime &time[], constdouble &open[], constdouble& high[], // ценовой массив максимумов цены для расчёта индикатора constdouble& low[], // ценовой массив минимумов цены для расчёта индикатора constdouble &close[], constlong &tick_volume[], constlong &volume[], constint &spread[] ) { //---- объявления локальных переменных int to_copy;
//---- расчёты необходимого количества копируемых данных if(prev_calculated>rates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора { to_copy=rates_total; // стартовый номер для расчёта всех баров } else to_copy=rates_total-prev_calculated+1; // стартовый номер для расчёта новых баров
int first,bar; if(CopyBuffer(Handle1,0,0,to_copy,Buffer1)<=0) return(RESET); if(CopyClose(Symb1,0,0,to_copy,buf1)<=0) return(RESET);
//---- расчёт стартового номера first для цикла пересчёта баров if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчёта индикатора first=min_rates_total; // стартовый номер для расчёта всех баров else first=prev_calculated-1; // стартовый номер для расчёта новых баров
//---- Основной цикл расчёта индикатора for(bar=first; bar<rates_total ; bar++) { Buffer3[bar]=Buffer1[bar] - buf1[bar]; }
如果我在MT4中改变配置文件,然后再返回,当市场关闭时,CPU开始大量加载 - 高达5%,之后是18-25%。
我感觉编译器有问题,因为当我运行编译器.mq5ME时,我得到了崩溃,如果我运行编译器.mqh,我得到了对编译器的诅咒))))。在崩溃中出现了一个巨大的文件!!!这个文件不断地被更新。除了Win 8.1x64操作系统本身没有病毒,一台机器上根本没有杀毒软件,因为只有MT5上网,而操作系统本身也到了它的储存库。
顺便提一下Renat关于千分之一的测试的答案--在写问题之前,我在不同的操作系统和机器上做同样的检查类似的事情))如果结果被证实,我就问一个问题,如果不是,我就开始自己挖掘问题。
我不明白问题出在哪里--是在指标中,还是在专家顾问中,还是在可视化工具中)。
对此,该指标只有相同的设置,时间框架是相同的。
专家顾问代码
input string Symbol1="EURUSD";
input int Per=14;
double buf[];
int handle_1,copied1;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
handle_1=iCustom(Symbol(),PERIOD_CURRENT,"test ma",Symbol1,Per);
ArrayInitialize(buf,0);
return(INIT_SUCCEEDED);
}
//+---------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
Comment("");
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
copied1=CopyBuffer(handle_1,0,0,4,buf);
Comment("Индикатор 3 = ",buf[3]);
}
//+------------------------------------------------------------------+
//| Trade function |
//+------------------------------------------------------------------+
void OnTrade()
{
//---
}
//+------------------------------------------------------------------+
指标代码
//---- количество индикаторных буферов 2
#property indicator_buffers 3
//---- использовано всего одно графическое построение
#property indicator_plots 1
//+----------------------------------------------+
//| объявление констант |
//+----------------------------------------------+
#define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора
//+----------------------------------------------+
//| Параметры отрисовки индикатора |
//+----------------------------------------------+
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 clrPlum
//+----------------------------------------------+
//| Входные параметры индикатора |
//+----------------------------------------------+
input string Symb1="EURUSD";
input int Per=14;
int Shift=0;
//+----------------------------------------------+
//---- объявление динамических массивов, которые будут в
// дальнейшем использованы в качестве индикаторных буферов
double Buffer1[];
double Buffer2[];
double Buffer3[],Buffer4[],Buffer5[];
//---- Объявление целых переменных начала отсчёта данных
int min_rates_total;
//---- Объявление целых переменных для хранения хендлов индикаторов
int Handle1,Handle2;
double buf1[],buf2[],close1[],close2[],buf4[];
int closed1,closed2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---- Инициализация переменных начала отсчёта данных
min_rates_total=Per+1;
//--- получение хендла индикатора Fast iCCI
Handle1=iMA(Symb1,PERIOD_CURRENT,Per,0,0,0);
if(Handle1==INVALID_HANDLE)
{
Print(" Не удалось получить хендл индикатора");
return(INIT_FAILED);
}
//---- превращение динамического массива в индикаторный буфер
SetIndexBuffer(1,Buffer1,INDICATOR_DATA);
SetIndexBuffer(0,Buffer3,INDICATOR_DATA);
SetIndexBuffer(2,buf1,INDICATOR_DATA);
//---- осуществление сдвига индикатора 1 по горизонтали на Shift
PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
//---- осуществление сдвига начала отсчёта отрисовки индикатора 1 на min_rates_total
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
IndicatorSetInteger(INDICATOR_DIGITS,_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[]
)
{
//---- объявления локальных переменных
int to_copy;
//---- расчёты необходимого количества копируемых данных
if(prev_calculated>rates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора
{
to_copy=rates_total; // стартовый номер для расчёта всех баров
}
else to_copy=rates_total-prev_calculated+1; // стартовый номер для расчёта новых баров
int first,bar;
if(CopyBuffer(Handle1,0,0,to_copy,Buffer1)<=0) return(RESET);
if(CopyClose(Symb1,0,0,to_copy,buf1)<=0) return(RESET);
//---- расчёт стартового номера first для цикла пересчёта баров
if(prev_calculated>rates_total || prev_calculated<=0) // проверка на первый старт расчёта индикатора
first=min_rates_total; // стартовый номер для расчёта всех баров
else first=prev_calculated-1; // стартовый номер для расчёта новых баров
//---- Основной цикл расчёта индикатора
for(bar=first; bar<rates_total ; bar++)
{
Buffer3[bar]=Buffer1[bar] - buf1[bar];
}
//----
return(rates_total);
}
//+------------------------------------------------------------------+
当终端被最小化时,报价窗口会折叠。情况不应该是这样的。
当终端被最小化时,报价窗口会折叠。情况不应该是这样的。
谁能告诉我RAM的大小(红色下划线)是否正确?
修复前的笔记本数据。
2013.04.28 01:26:54 OpenCL Device #1: GPU Intel(R) Corporation Intel(R) HD Graphics 4000 with OpenCL 1.1 (16 units, 350 MHz, 1624 Mb, version 9.17.10.2828)
2013.04.28 01:26:54 OpenCL Device #0: CPU Intel(R) Corporation Intel(R) Core(TM) i5-3210 M CPU @ 2.50 GHz with OpenCL 1.1 (4 units, 2500 MHz, 6029 Mb, version 1.1)
交出笔记本电脑进行维修,维修后说,从工厂安装的内存(所有6GB)是不兼容的(一个在4GB)的处理器类型。
会不会是内存的大小是正常指定的,但实际上由于与处理器类型不兼容而没有涉及?
我把我的笔记本电脑交给他们维修,维修后他们说,出厂时安装的内存(共6GB)与处理器的类型不兼容(4GB的那个)。
通常,所有的系统和笔记本电脑都经过工厂测试,工厂安装的硬件不兼容的几率......非常非常非常小......。
出于某种原因,我有同样的感觉,我觉得我被...我
谁能告诉我RAM的大小(红色下划线)是否正确?
修复前的笔记本数据。
2013.04.28 01:26:54 OpenCL Device #1: GPU Intel(R) Corporation Intel(R) HD Graphics 4000 with OpenCL 1.1 (16 units, 350 MHz, 1624 Mb, version 9.17.10.2828)
2013.04.28 01:26:54 OpenCL Device #0: CPU Intel(R) Corporation Intel(R) Core(TM) i5-3210 M CPU @ 2.50 GHz with OpenCL 1.1 (4 units, 2500 MHz, 6029 Mb, version 1.1)
给笔记本电脑进行维修,维修后说,从工厂安装的内存(只有6GB)是不兼容的(一个4GB)与处理器的类型。
是否有可能内存大小被说明为正常,但由于与处理器类型不兼容而没有使用?
内存可能与主板冲突。而且,如果BIOS检测到内存存在,它就在那里,但可能无法稳定工作。
我想,较小的内存容量是由于内存被挤压给了显卡--一些集成卡这样做是因为它们本身没有内存。
你如何找到有的信号?
Слишком большой прирост за последний месяц говорит о высоком риске