//+------------------------------------------------------------------+//| CheckCiATR.mq5 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"#include<Indicators\Oscilators.mqh>
#property script_show_inputs
inputint sleep_debug=10; // пауза в секундах при отладке//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
CiATR iatr;
bool res=iatr.Create(_Symbol,0,15);
if(res)
{
Sleep(3000); // дадим время на расчет индикатораlong handle=iatr.Handle(); // хендл индикатор а
//--- набросим индикатор на график
iatr.AddToChart(0,1);
//--- количество баров, на которых индикатор рассчитанint bars=iatr.BarsCalculated();
//--- количество буферов в индикаторе int buffers=iatr.BuffersTotal();
Print("Buffers=",buffers);
//--- размер индикаторного буфера int size=iatr.BufferSize(); // для экономии по умолчанию установлено 100Print("BufferSize=",size);
//--- покажем как увеличить размер индикаторного буфера bool resized=iatr.BufferResize(bars-1);
//--- если изменить размер индикаторного буфера не удалось вдругif(!resized)
{
PrintFormat("Ошибка при попытке увеличить размер индикаторного буфера!, GetLastError = "
,GetLastError());
}
//--- ! обязательно обновляем данные в буфере перед обращением к данным индикатора iatr.Refresh();//--- выведем 10 последних значений индикатора и сравних их с DataWindow for(int i=10;i>=0;i--)
{
// буфер индикаторя является таймсерией - индекс увеличивается вглубь историиPrintFormat(" ATR(%d) = %f",i,iatr.GetData(0,i));
}
}
//--- пауза на тот случай, если скрипт запустили в отладкеif(MQLInfoInteger(MQL_DEBUG))
{
Sleep(sleep_debug*1000);
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| Check_CiForce.mq5 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"#include<Indicators\Oscilators.mqh>
#property script_show_inputs
inputint sleep_debug=10; // пауза в секундах при отладке//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
CiForce iforce;
bool res=iforce.Create(_Symbol,0,15,MODE_SMA,VOLUME_TICK);
if(res)
{
Sleep(3000); // дадим время на расчет индикатораlong handle=iforce.Handle(); // хендл индикатор//--- набросим индикатор на график
iforce.AddToChart(0,1);
//--- ! обязательно обновляем данные в буфере перед обращением к данным индикатора iforce.Refresh();//--- выведем 10 последних значений индикатора и сравних их с DataWindow for(int i=10;i>=0;i--)
{
// буфер индикаторя является таймсерией - индекс увеличивается вглубь историиPrintFormat(" %s(%d) = %f",iforce.Name(),i,iforce.GetData(0,i));
}
}
//--- пауза на тот случай, если скрипт запустили в отладкеif(MQLInfoInteger(MQL_DEBUG))
{
Sleep(sleep_debug*1000);
}
}
//+------------------------------------------------------------------+
и
//+------------------------------------------------------------------+//| Check_CiOBV.mq5 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"#include<Indicators\Volumes.mqh>
#property script_show_inputs
inputint sleep_debug=10; // пауза в секундах при отладке//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
CiOBV indicator;
bool res=indicator.Create(_Symbol,0,VOLUME_TICK);
if(res)
{
Sleep(3000); // дадим время на расчет индикатораlong handle=indicator.Handle(); // хендл индикатор//--- набросим индикатор на график
indicator.AddToChart(0,1);
//--- ! обязательно обновляем данные в буфере перед обращением к данным индикатора
indicator.Refresh();
//--- выведем 10 последних значений индикатора и сравних их с DataWindow for(int i=10;i>=0;i--)
{
// буфер индикаторя является таймсерией - индекс увеличивается вглубь историиPrintFormat(" %s(%d) = %f",indicator.Name(),i,indicator.GetData(0,i));
}
}
//--- пауза на тот случай, если скрипт запустили в отладкеif(MQLInfoInteger(MQL_DEBUG))
{
Sleep(sleep_debug*1000);
}
}
//+------------------------------------------------------------------+
MT4です。デモサーバー MetaQuotes-Demo.hole 2012年8月30日から2012年9月10 日まで。確認済み。
信じられません。
わざと3回ドライブから全ての履歴を消去し、3つのアクセスポイントを全て再起動して確認しました。すべての歴史が残っています。
引用のアーカイブを弄る必要はなく、通常の履歴をきれいに確認することができます。
MQのMT4をわざわざ入れて、通常の履歴で遊んでいます。
ホームボタンを押すと、ドライブから削除した後、履歴がダウンロードされ、接続状態から確認できます。スクリーンショットのようになります。
これは、比較のための別のブローカーであり、それは、スイッチングとダウンロード
ps on Home download "to end" does not work automatically, I don't remember, was it like this before?
MT4です。デモサーバー MetaQuotes-Demo.hole2012年8月30日から2012年9月10 日まで。確認済み。
2014年ではなく、2012年ごろのようです。
そう、そこに穴が開いているのです。History Centerから分履歴を読み込み、時間軸の再計算に同意する。穴は埋まる。
ブローカーサーバーを使用するか、MT5に切り替えると、すべてのタイムフレームで1分間の履歴が表示されるため、履歴がより良くなります。
2014.09.30の サービスデスク#1073960に あるMQL4に関する 要望について、なぜ誰も答えてくれないのでしょうか?
Ошибка в файлах стандартной библиотеки при попытке использовать метод GetData классов CiForce и CiOBV
'm_applied' - improper enumerator cannot be used Oscilators.mqh 494 60
'm_applied' - improper enumerator cannot be used Volumes.mqh 241 34
И ещё ошибка в классе CiATR:
'GetData' - function must have a body Oscilators.mqh 25 22
同じバグについては、3ヶ月前にこちら(https://www.mql5.com/ru/forum/1111/page1190#comment_993762)で書きました。
正直、そういう態度は見苦しい。 間違いを指摘して助けているように見えるが、誰も答えようともしない。 自分のライブラリの不正確さを本当に気にしていないのか?
ポストがない-問題ない?
子供の庭。
ポストがない-問題ない?
子供の庭。
MQL4の標準ライブラリ、特にインジケータクラスでエラーが発生します。
CiATR クラスには、GetDataメソッド本体がありません。
GetData() メソッドは、ベースとなる親クラスで定義されているため、この場合はオーバーライドする必要はありません。
GetData()を呼び出す前に、Refresh()メソッドを使用してクラスのインジケータ・バッファの値をリフレッシュする必要があることに注意してください。
MQL4の標準ライブラリ、特にインジケータークラスにエラーがあります。
ENUM_APPLIED_VOLUMEパラメータを使用するインジケータ(CiForce、CiOBV)では、エラーが発生します:不適切な列挙子は使用できません。
以下は、コンパイルして動作する例です。
и
ごく稀に出現するのですが、それでも真相を突き止めたい。プログラムの安定性が必要なのです。
というメッセージがログに表示されましたが、何が原因でしょうか?
ごく稀に出現するのですが、それでも真相を突き止めたい。プログラムの安定性が必要なのです。