#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のコンパイルを実行するとコンパイラに悪態をつくので、コンパイラに何か問題があるような気がしていました)))そして、クラッシュすると巨大なファイルが出現!!常に更新されているのです。Win8.1x64のOS本体以外はウイルスなし、MT5だけがNetに行き、OS本体はそのリポジトリに行くので1台のマシンには全くウイルス対策なし。
ところで、Renatさんの千分の一テストについての回答へのテーマですが、私は質問を書く前に、異なるOSやマシンで同様のチェックをしています))結果が確認できれば質問し、そうでなければ自分で問題を掘り下げ始めます。
インジケータに問題があるのか、Expert Advisorに問題があるのか、Visualizerに問題があるのか、何が問題なのか理解できません(笑)。
これについては、インジケータは設定のみで、タイムフレームは同じです。
Expert Advisor コード
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)
修理のためのラップトップを手渡した, 修理工場からインストールされていたことを言った後メモリ (すべてその 6 gb) 互換性がありません (1 で 4 gb) プロセッサの種類と.
メモリのサイズが正常に指定されているにもかかわらず、実際にはプロセッサの種類との非互換性のためにそれが関与していなかったということはないでしょうか?
ノートパソコンを修理に出したら、修理後にメモリ(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)
修理のためのラップトップを与えた, 修理工場からインストールされていたことを言った後メモリ (のみその 6 gb) 互換性がありません (1、4 gb の) プロセッサの種類と.
メモリサイズが正常に記載されていても、実際にはプロセッサーの種類との相性が悪く、使用されていない可能性はありませんか?
メモリがマザーボードと競合することがあります。また、バイオがメモリの存在を検知した場合、メモリは存在しますが、安定的に動作しない可能性があります。
メモリサイズが小さいのは、ビデオカードのためにメモリを圧迫しているためだと思われます。統合型カードには、それ自体のメモリがないため、このような動作をするものもあります。
どのようにシグナルを見つけるのですか?
Слишком большой прирост за последний месяц говорит о высоком риске