Unity Indicator For MT5
Unity Indicator For MT5のUnity Indicator For MT5は、プラットフォーム内の通貨ペアと金属の同期した動きを表示するために使用されます。このツールのコアソースコードは、Kohonen Neural Networkに関連する公開された記事に基づいています。
埋め込みコードは通貨ペアのクラスターを扱うように設計されているため、トレーダーはオシレーターとして機能する移動平均のバンドを見ることで混乱する可能性があります。しかし、このインディケーターの設定に入ると、カラーコードが各金融商品の動きをどのように表しているかがわかります。単純な取引プロセスを作成するには、ユーザーは選択した資産の使用を制限する必要があります。しかし、ユーザーがすべての色の形成を覚えていない可能性があるため、事態は非常に複雑になる可能性があります。ただし、スマート通貨トレーダーは多くの場合、資産の最大数を4に制限することでプロセス全体を簡素化します。
ただし、この統一ツールの使用に必要なすべての調整を行うには、デモアカウントを考慮する必要があります。動的設定を解読し、必要な限り練習環境を維持します。しかし、実際の市場でツールを使用する前に、読書に慣れてください。
Unity Indicator For MT5インストール
上記のフォームからインジケーターをダウンロードした後、zipファイルを解凍する必要があります。次に、ファイルUnity.mq5をMT5インストールのMQL5Indicatorsフォルダーにコピーする必要があります。その後、MT5を再起動してください。そうすると、インジケーターのリストにインジケーターが表示されます。
Unity Indicator For MT5パラメーター
Unity Indicator For MT5は、構成する10 パラメーターがあります。
input string _1 = ""; // Cluster Indicator Settings
input string Instruments = "EURUSD,GBPUSD,USDCHF,USDJPY,AUDUSD,USDCAD,NZDUSD"; // · Instruments
input int BarLimit = 500; // · BarLimit
input ENUM_DRAW_TYPE Draw = DRAW_LINE; // · Draw
input ENUM_APPLIED_PRICE PriceType = PRICE_CLOSE; // · PriceType
input bool AbsoluteValues = false; // · AbsoluteValues
input string _2 = ""; // Data Export to CSV
input string SaveToFile = ""; // · SaveToFile
input bool ShiftLastBuffer = false; // · ShiftLastBuffer
input int BarLookback = 1; // · BarLookback
Unity Indicator For MT5
Unity Indicator For MT5は、 0 バッファーを提供します。
コードの主要部分
int n = OnCalculate(Bars(_Symbol, PERIOD_CURRENT), 0, 0, price);
if(n gt 0)
{
EventKillTimer();
ChartSetSymbolPeriod(0, _Symbol, PERIOD_CURRENT);
ChartRedraw();
}
}
else
{
EventKillTimer();
}
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const int begin,
const double& price[])
{
if(!initDone) return 0;
if(LastBarCount == rates_total && prev_calculated == rates_total && PriceType != PRICE_CLOSE)
{
return prev_calculated;
}
if(prev_calculated == 0)
{
for(int i = 0; i lt rates_total; i++)
{
for(int j = 0; j lt BUF_NUM; j++)
{
buffers[j][i] = EMPTY_VALUE;
}
}
}
int limit = MathMin(rates_total - prev_calculated + 1, BarLimit);
for(int i = 0; i lt limit; i++)
{
if(!calculate(i))
{
return 0; // will retry on next tick
}
}
static bool fileSaved = SaveToFile == "";
if(!fileSaved && !AbsoluteValues)
{
SaveBuffersToFile(SaveToFile);
fileSaved = true;
}
LastBarCount = rates_total;
return LastBarCount;
}
double GetBuffer(int index, int bar)
{
return getter[index][bar];
}
bool SaveBuffersToFile(const string filename)
{
int h = FileOpen(filename, FILE_WRITE | FILE_CSV | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_ANSI, ; );
if(h == INVALID_HANDLE) return false;
string line = "datetime";
for(int k = BarLookback - 1; k gt = 0; k--)
{
for(int i = 0; i lt workCurrencies.getSize(); i++)
{
line += ";" + workCurrencies.getKey(i) + (string)(k + 1);
}
}
if(ShiftLastBuffer)
{
line += ";FORECAST";
}
FileWriteString(h, line + "
");
for(int i = BarLimit - BarLookback; i gt = (ShiftedBuffer gt -1 ? 1 : 0); i--)
{
datetime time[1];
CopyXYZN(Time, i, 1, time);
line = (string)time[0];
for(int k = BarLookback - 1; k gt = 0; k--)
{
for(int j = 0; j lt workCurrencies.getSize(); j++)
{
line += ";" + (string)GetBuffer(j, i + k);
}
}
if(ShiftLastBuffer)
{
line += ";" + (string)GetBuffer(ShiftedBuffer, i - 1); // look into the future for 1 bar
}
FileWriteString(h, line + "
");
}
FileClose(h);
Print("File saved ", filename);
return true;
}