Для получения в торговом советнике значений встроенного или пользовательского индикатора, необходимо предварительно создать его хендл с помощью соответствующей функции. На примерах показано, как воспользоваться тем или иным техническим индикатором при разработке своих программ. Речь идёт о индикаторах, которые непосредственно встроены в язык MQL5. Статья предназначена для начинающих разработчиков торговых стратегий и предлагает простые и ясные способы работы с индикаторами с использованием приложенной библиотеки функций.
やり方がわからないのですが、Referenceのどこに取引所でリクエストを実行するときにTP/SLを含んではいけないと書いてあるのでしょうか?
リファレンスにそんなこと書いてあったっけ。しかし、私が知る限り、それは真実です。私の理解では、取引所ではSL/TPは別の注文(一定の種類と仕様)を出さなければならないと言う方が正しいです。
原則的には、正確に、グレーボックスまたはQuikで言うような株式端末を見ることができます。
追記
例えば、これは法律との関係かもしれませんが、私の知る限り、アメリカの法律では、停留所には一定の表示が必要です(そうでないものは不可)。
私ははっきりとは言えないが、ニューヨーク証券取引所(または同様の取引所)で取引をした人は、何がどのように行われたかを正確に知っているはずである。
すべてのiBandの値を取得する方法を教えてください。
https://www.mql5.com/ru/articles/31
をコンパイルするときに、エディタがそれを見つけられませんでした。
"#include <GetIndicatorBuffers.mqh>"
すべてのiBandの値を取得する方法を教えてください。
https://www.mql5.com/ru/articles/31
しかし、編集部では、そのようなことはありませんでした。
"#include <GetIndicatorBuffers.mqh>"
Expert Advisorでアップロードしたファイルをどこに置けばいいのか、教えてください。MQL5/Filesで試してみました。テスターでは5004のエラーが出ます。このインジケータは、MQL5/Filesで同じファイルをすぐに見つけます。5004エラーとは何ですか?
続きを読む
拡張子が.txtのファイル。 リクエストは以下の通りです。
int filehandle=FileOpen(fname,FILE_READ|FILE_ANSI,"\n");
if(filehandle!=INVALID_HANDLE) Print("FileOpen: ",FileSize(filehandle)," bytes");
else Print("Operation FileOpen failed, error ",GetLastError());
エラーは
2012.05.09 21:14:14 Core 01 2011.01.01 00:00:00 OperationFileOpen failed, error 5004
このファイルは、MQL5/Files フォルダーにあります。1000回チェックした。そして、ツールは問題なくそれを読み込む。
ビルド642。
Expert Advisorでアップロードしたファイルをどこに置けばいいのか、教えてください。MQL5/Filesで試してみました。テスターでは5004のエラーが出ます。
共有フォルダにあるファイルには、端末とテスターの両方からアクセスできます。
公開フォルダは、MetaEditor - File - Open public data folderから開くことができます。
共有フォルダにあるファイルには、端末とテスターの両方からアクセスできます。
公開フォルダは、MetaEditor - File - Open public data folderから開くことができます。
テスターのサンドボックスで動くわけがない。
こんにちは。
分足チャートが正しい時刻に縦線を引くようにするにはどうしたらいいか教えてください。私の試みは、どこにも行き着かない。
//ある時間帯の縦線
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//+----------------------------------------------+
//| 画像レンダリングパラメータ
//+----------------------------------------------+
//---- インジケータ線描画
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 ブルー
#property indicator_width1 1
#property indicator_label1 "時間軸"
#define RESET 0 // インジケータを再計算するために端末にコマンドを返すための定数です。
//+----------------------------------------------+
//| インジケータ入力パラメータ
//+----------------------------------------------+
にゅうりょくちゅうHour1=10; //時刻1
//+----------------------------------------------+
int StartBars;
bool GoodTime。
//---- 動的配列の宣言。
//---- さらにインジケータ・バッファとして使用される
double タイムデータバッファ[]; //
//+------------------------------------------------------------------+
//| 日付を操作するためのクラス|
//+------------------------------------------------------------------+
class MyDateClass
{
プライベート
int m_year; // 年
int m_month; // 月
int m_day; // その月の日
int m_hour; // 一日のうちの一時間
int m_minute; // 分
int m_second; //秒数
を公開します。
//--- デフォルトコンストラクタ
MyDateClass(void)です。
};
//+------------------------------------------------------------------+
//| デフォルトコンストラクタ|
//+------------------------------------------------------------------+
MyDateClass::MyDateClass(void)
{
MqlDateTime dt;
datetime DT=TimeCurrent(dt);
TimeToStruct(DT,dt);
m_hour=dt.hour。
m_minute=dt.min;
m_second=dt.sec.である。
if (m_hour==Hour1 && m_minute==0) GoodTime=true。
DT=StructToTime(dt)とする。
Print(DT)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int OnInit()
{
//---- インジケータ・ラベルのためのグローバル変数の初期化
StartBars=7。
//----
SetIndexBuffer(0,TimeDataBuffer,INDICATOR_DATA)を設定。
ArraySetAsSeries(TimeDataBuffer,true)。
//---
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケータ反復関数
//+------------------------------------------------------------------+
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[])
{
//---- 計算に必要なバーが十分かどうか確認する。
if(rates_total<StartBars)リターン(RESET)。
int limit,bar; //
//---- 必要なコピーデータ数の算出
//---- bar_calculatedサイクルの開始番号の制限を行う。
if(prev_calculated>rates_total || prev_calculated<=0)// 最初の計算開始のチェック
limit=rates_total-StartBars; // すべてのバーを計算するための開始番号
else limit=rates_total-prev_calculated; // 新しいバーを計算するための開始番号
//---
//---- メインインジケータの計算周期
for(bar=0; bar<limit; bar++)
{
TimeDataBuffer[bar]=0.0。
if (GoodTime==true) TimeDataBuffer[bar]=2.0;
}
//--- 次の呼び出しのために prev_calculated の値を返す
//---
return(rates_total);
}
以下は、縦線の コードです。