(このブログにSQLを直接書くとWAFにブロックされてしまうため、画像を貼っています。テキスト版はこちらに貼っておきます。)
Comment関数を拡張する方法【MQLプログラミングの基礎】
int pos = 0, pre = 0;
while (true)
int n = ArraySize(comment);
ArrayResize(comment, n + 1);自動取引の定義
pos = StringFind(text, “\n”, pre);
if (pos != -1)
comment[n] = StringSubstr(text, pre, pos – pre);
pre = pos + 1;
}
4.Labelオブジェクトのサンプルコードをコピー
今回はLabelオブジェクトを利用して文字列を表示するので、LabelオブジェクトのサンプルコードをMQL4リファレンスからコピーします。MQL4リファレンスの目次にある「Constants, Enumerations and Structures」→「Objects Constants」→「Object Types」をクリックするとオブジェクトの一覧が表示されるので、その中から「OBJ_LABEL」を選択し、あらかじめ用意されている「Create a text label」のコードをコピーしてファイル下部に貼り付けましょう。
//+——————————————————————+
//| Create a 自動取引の定義 text label |
//+——————————————————————+
bool LabelCreate(const long chart_ID = 0, // chart’s ID
const string name = “Label”, // label name
const int sub_window = 0, // subwindow index
const int x = 0, // X coordinate
const int y = 0, // Y coordinate
const ENUM_BASE_CORNER corner = CORNER_LEFT_UPPER, // chart corner for anchoring
const string text = “Label”, // text
const string font = “Arial”, // font
const int font_size = 10, 自動取引の定義 // font size
const color clr = clrRed, // color
const double angle = 0.0, // text slope
const ENUM_ANCHOR_POINT anchor = ANCHOR_LEFT_UPPER, // anchor type
自動取引の定義const bool back = false, // in the background
const bool selection = false, // highlight to move
const bool hidden 自動取引の定義 = true, // hidden in the object list
const long z_order = 0) // priority for mouse click
//— reset the error value
ResetLastError();
//— create a text label
if(!ObjectCreate(chart_ID, name, OBJ_LABEL, sub_window, 0, 0))
Print(__FUNCTION__,
“: failed to create text label! Error code = “, GetLastError());
return(false);
>
//— set label coordinates
ObjectSetInteger(chart_ID, name, OBJPROP_XDISTANCE, x);
ObjectSetInteger(chart_ID, name, OBJPROP_YDISTANCE, y);
//— set the chart’s corner, relative to which point coordinates are defined
ObjectSetInteger(chart_ID, name, OBJPROP_CORNER, corner);
//— set the text
ObjectSetString(chart_ID, name, OBJPROP_TEXT, text);
//— set text font
ObjectSetString(chart_ID, name, OBJPROP_FONT, font);
//— set font size
ObjectSetInteger(chart_ID, name, OBJPROP_FONTSIZE, font_size);
//— set the slope angle of the text
ObjectSetDouble(chart_ID, name, OBJPROP_ANGLE, angle);
//— set anchor type
ObjectSetInteger(chart_ID, name, OBJPROP_ANCHOR, anchor);
//— set color
ObjectSetInteger(chart_ID, 自動取引の定義 name, OBJPROP_COLOR, clr);
//— display in 自動取引の定義 the foreground (false) or background (true)
ObjectSetInteger(chart_ID, name, OBJPROP_BACK, back);
自動取引の定義//— enable (true) or disable (false) the 自動取引の定義 自動取引の定義 mode of moving the label by mouse
ObjectSetInteger(chart_ID, name, OBJPROP_SELECTABLE, selection);
ObjectSetInteger(自動取引の定義 chart_ID, name, OBJPROP_SELECTED, selection);
//— hide (true) or display (false) graphical object name in the object list
ObjectSetInteger(chart_ID, name, OBJPROP_HIDDEN, hidden);
//— set the priority for receiving the event of a mouse click in the chart
ObjectSetInteger(chart_ID, 自動取引の定義 name, OBJPROP_ZORDER, z_order);
//— successful execution
自動取引の定義return(true);
>
5.LabelCreateで文字列を表示
チャートIDは「0」、名前は「PREFIX + “Text” + (string)i」、ウィンドウはメインウィンドウなので「0」、場所はX座標が「x」、Y座標が「y + i * gap」、コーナーは左上にしたいので「CORNER_LEFT_UPPER」、表示するテキストは格納した文字列「comment[i]」、フォントは「font」、サイズは「size」、色は「clr」、アングルは「0」、アンカーは「ANCHOR_LEFT_UPPER」とします。
Activity Board
console.walkme.com/activity-boardでアクセスできるコンソールのActivity Boardアプリは、WalkMeコンテンツのパフォーマンスを理解および分析するための重要なデータを提供します。 Activity Boardは、1週間のワークフローの一部としてWalkMeコンテンツを最適化するために、ユーザーが効果的に行動できるような「一目でわかる」インサイトを提供します。
主な特徴:
- 重要なインサイトへのクイックアクセス
- データが視覚化されており整理しやすい
- 毎週更新
- 他の人と簡単に共有およびエクスポートできる
注:Activity Boardは現在オープンベータ版です。 フィードバックはWalkMeの担当者に送信してください。
ユースケース
- アカウントのステータス(システムの数、本番環境のアイテムの数、チームメンバーの数)をすばやく確認します。
- 何が動作している/していないかを識別し、学習結果を活用してコンテンツを最適化します。
- どのコンテンツが壊れているか、それはなぜかを識別します。
- どのコンテンツが使用されておらず、削除または更新すべきかを把握します。
一般的な指標
- 日付範囲
- ダッシュボードが情報を表示している日付を表示します。 自動取引の定義
- 現在は固定のウィークリービューに制限 – 編集不可
- ダウンロードボタン
- ダッシュボード情報を含む.pngまたは.pdfをダウンロードします。
- ビューヘッダー
- カーソルを合わせると表示される鉛筆のアイコンをクリックして、ビューを変更します。
- 選択されたシステム
- ボードビューに表示されているシステムを一覧表示します。
- デフォルトでは、割り当てられたすべてのシステムが選択されます。
- システムをクリックすると、[Modify Board 自動取引の定義 View(ボードビューを変更)] パネルが開きます。
- WalkMe上のシステム
- アカウントの合計システム数と、最終計算時からのシステム数の変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降に追加されたシステムが一覧表示されます。
- ウィジットをクリックすると、システムを管理できるadmin.walkme.com/systemsが開きます。
- 注:ボードビューが変更された場合でも、アカウント全体のすべてのシステムはこちらで引き続き確認できます。
- 本番環境のアイテム
- 本番環境で公開された合計アイテムの数と、最終計算時からのアイテム数の変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降に追加されたアイテムが一覧表示されます。
- 最終計算時からのアイテム数の変化率が表示されます。
- チームメンバー
- アカウントの合計チームメンバー数と、最終計算時からの変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降に追加されたメンバーが一覧表示されます。
- ウィジットをクリックすると、ユーザーを管理できるadmin.walkme.com/users-and-roles/usersが開きます。
- 注:ボードビューが変更された場合でも、アカウント全体のすべてのチームメンバーはこちらで引き続き確認できます。
- 未使用のアイテム
- 本番環境に公開されてから少なくとも30日経過し、その間にエンゲージメントが0になった「未使用のアイテム」数が表示されます。
- 最終計算時からの未使用のアイテムの変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降の新しい未使用のアイテムが一覧表示されます。
ヒント:[Unused Items(未使用のアイテム)]ウィジットをクリックすると、検索、列のカスタマイズ、エクスポートが可能なアイテム名、タイプ、システムを含むテーブルが開きます。
最もエンゲージメントの高いワークフローコンテンツ
- システムのタイプと名前
- ユニークユーザー数
- インタラクション数
- 列の追加や削除でカスタマイズしてエクスポートすることができる、最もエンゲージメントの高い上位100アイテムのテーブルが開きます。
- 前週のエンゲージメントからの変化率
ヒント:アイテム名をクリックすると、エディターで直接アイテムが開きます。 これは、複製したり、なぜ正常に動作しているのかを詳しく調べたい場合に便利です。
最もエンゲージメントの低いワークフローコンテンツ
- システムのタイプと名前
- ユニークユーザー数
- インタラクション数
- 列の追加や削除でカスタマイズしてエクスポートすることができる、最もエンゲージメントの低い上位100アイテムのテーブルが開きます。
- 前週のエンゲージメントからの変化率
ヒント:アイテム名をクリックすると、エディターで直接アイテムが開きます。 これはアイテムを編集またはアーカイブしたい場合に便利です。
WalkMe機能の活用
エラーがあるスマートウォークスルー
- システムとスマートウォークスルー名
- 列の追加や削除でカスタマイズしてエクスポートすることができる、エラーがある上位100のスマートウォークスルーのテーブルが開きます。
- エラー数
注:エラーがあるスマートウォークスルーおよびウォークスルーには、第一ステップのみで再生に失敗したSWTとWTのリストが含まれています。 インサイトのウォークスルーエラーレポートには、再生に失敗したステップを含むSWTとWTのリストが含まれているため、数値が異なる場合やエラーがあるアイテムの数が多く表示される場合があります。
最も多く検索された用語
- システムとアイテム名
- アクションが発生した検索数
- 列の追加や削除でカスタマイズしてエクスポートすることができる、最も検索された上位100アイテムのテーブルが開きます。
- 検索数
ヒント:検索語をクリック すると、メニューオーガナイザーが開き、データを利用することができます。 例えば、WMコンテンツがまだ作成されていないものを検索したり、もっと上位に掲載されるべきガイドをよく検索したりします。
データベースのテーブル定義の仕様書を自動生成しよう
DX本部でのプロジェクトは、開発環境を社内向けに別途用意することが大半なので、取引先に許可を取らないと何かを試すことができないということは今のところほとんどありません。
そのため、実際の開発フローとしては詳細な仕様書を書き起こしてから実装することはあまりなく、大まかな方針を決めてから軽く実装してみて、うまくいきそうであればそれを仕様としてまとめつつ実装することが多いです。
データベースのテーブル定義であれば、それらの定義はGitHub上で管理されており、リリース時に自動もしくは半自動で適用されるため、実運用されているものを正として扱うという考え方です。
DX系のプロジェクトのように協業のような要素を含むプロジェクトでは、成果物の確認の意味も含めて各種仕様書を定期的に提出するような場合もあります。ほかにも複数社が関係して協力して推進するものもあります。
欲を言えば、マイグレーションツールの定義ファイルやテーブル定義のSQLを仕様書としてしまいたいのですが、それだと誰もが読めるものではないのと、場合によってはフォーマットについて取り決めがあるかもしれません。
そのようなケースでは万能なExcelシートをつかって仕様書を管理することが多いと思いますが、DXを推進する部署なので、定義や仕様の二重管理は避けたいところです。自動生成しましょう🚀
データウェアハウスのテーブル定義を抽出する
Snowflakeに限った話ではないですが、データベースにはテーブル定義を表現するシステムテーブルがあることが多いです。SQLで抽出しましょう。
(このブログにSQLを直接書くとWAFにブロックされてしまうため、画像を貼っています。テキスト版はこちらに貼っておきます。)
自動生成するためのテンプレートを用意する
「仕様書」っぽい見た目に仕上げる
素のhtmlだけだとこんな感じです。ここから「仕様書」っぽい見た目に仕上げていきましょう。
自動取引の定義
上は GMOクリック証券 自動取引の定義 の注文画面で、画面上部の青枠が「BID(売値)」、赤枠が「ASK(買値)」です。
その間にある「 SP 0.2 」が現在のスプレッドです。
GMOクリック証券 は、スプレッドが一目でわかる仕様ですが、一部の会社ではスプレッドを表示せず、売値と買値を自力で計算させる仕様もあります。
スプレッドの計算方法
次にスプレッドのコスト計算方法です。
【1万通貨を手数料0.2銭でトレードした時のコスト】
10,000通貨 × 0.002円(スプレッド) = 20円
スプレッドが引かれるタイミング
スプレッドってどのタイミングで引かれるの?
実際にコストとして金額が引かれるタイミングは 決済注文のタイミング です。
スプレッドの違いでどれだけ年間コストが違うのか?
スプレッドの違いで、年間コストはどれくらい変わるの?
質問の具体的な答えを出すために、米ドル/円を1万通貨でスプレッド0.2銭と1銭で年間50回トレードした時のコストを比較してみましょう。
【1万通貨をスプレッド0.2銭で50回トレードした時の総コスト】
0.2銭(スプレッド) × 10,000通貨 × 50回 = 1,000円
【1万通貨をスプレッド1銭で50回トレードした時の総コスト】
1銭(スプレッド)× 10,000通貨 × 50回 = 5,000円
この後でも触れますが、特に短期トレード中心のトレードを考えている人は、スプレッドが狭い(安い)会社を選びましょう。
短期トレードはスプレッドに要注意!
短期トレーダーは必ず最狭水準スプレッドのFX会社を選びましょう。 自動取引の定義
スプレッドは取引回数が多くなるほどコストが高くなるため、取引回数勝負の短期トレーダーはできるだけ安い会社を選ばないと損をします。
短期トレーダーは、1日以内に取引を終えるデイトレードや、数秒や数分で終えるスキャルピングをメインとしているトレーダーです。
逆に日をまたぐスイングトレードや数ヶ月単位の長期トレードがメインの長期トレーダーは、取引回数が少ないためスプレッドの影響は小さいです。
コストの違いがイメージできるように、スプレッド1銭で年間5回の長期トレーダーと年間100回の短期トレーダーを比較してみましょう。
【1万通貨を手数料0.2銭で5回トレードした時の総コスト】
1銭(手数料) × 10,000通貨 × 5回 = 500円
【1万通貨を手数料0.2銭で100回トレードした時の総コスト】
1銭(手数料)× 10,000通貨 × 100回 自動取引の定義 = 10,000円
短期はスプレッドを重視し、長期の場合は手数料よりも金融経済ニュースの豊富さや取扱通貨ペア数など別の要素で会社を選びましょう。
スプレッドで会社を選ぶ時のポイント
ポイントは、スプレッドが業界最狭水準であるかと原則固定方式であるかの2点だけです。
米ドル/円 = 0.2銭以下を目安にしよう
米ドル/円のスプレッドを 0.2銭以下 に設定している会社を目安にしましょう。
なぜなら、0.2銭は国内最狭水準で十分狭いスプレッドです。
米ドル/円を0.2銭に設定している会社は、相対して他の通貨ペアも安く設定している傾向があります。
原則固定制を採用しているFX会社を選ぼう
原則固定を採用しているFX会社 を選びましょう。
理由はスプレッドが安定しているからです。
スプレッドの値を決める方式は、会社ごとに異なり国内では原則固定制と変動制の2種類あります。
原則固定制は、FX会社が設定しているスプレッドが原則固定される方式で、スプレッドが安定しており初心者向けです。
変動制は、為替レートの値動きに合わせてスプレッドが変動する方式で、常にスプレッドが変動しているため、取引タイミングを計るのが難しく上級者向けです。
ただし原則固定制は「原則」とあるように、常時固定ではなくスプレッドが変動する時間帯があります。
変動する時間帯は、取引が停滞する早朝や指標発表などのイベント発生時が多く、これらの時間帯は通常よりスプレッドが広がりやすい傾向があります。
Activity Board
console.walkme.com/activity-boardでアクセスできるコンソールのActivity Boardアプリは、WalkMeコンテンツのパフォーマンスを理解および分析するための重要なデータを提供します。 Activity Boardは、1週間のワークフローの一部としてWalkMeコンテンツを最適化するために、ユーザーが効果的に行動できるような「一目でわかる」インサイトを提供します。
主な特徴:
- 重要なインサイトへのクイックアクセス
- データが視覚化されており整理しやすい
- 毎週更新
- 他の人と簡単に共有およびエクスポートできる
注:Activity Boardは現在オープンベータ版です。 フィードバックはWalkMeの担当者に送信してください。
ユースケース
- アカウントのステータス(システムの数、本番環境のアイテムの数、チームメンバーの数)をすばやく確認します。
- 何が動作している/していないかを識別し、学習結果を活用してコンテンツを最適化します。
- どのコンテンツが壊れているか、それはなぜかを識別します。
- どのコンテンツが使用されておらず、削除または更新すべきかを把握します。
一般的な指標
- 日付範囲
- ダッシュボードが情報を表示している日付を表示します。
- 現在は固定のウィークリービューに制限 自動取引の定義 – 編集不可
- ダウンロードボタン
- ダッシュボード情報を含む.pngまたは.pdfをダウンロードします。
- ビューヘッダー
- カーソルを合わせると表示される鉛筆のアイコンをクリックして、ビューを変更します。
- 選択されたシステム
- ボードビューに表示されているシステムを一覧表示します。
- デフォルトでは、割り当てられたすべてのシステムが選択されます。
- システムをクリックすると、[Modify Board View(ボードビューを変更)] パネルが開きます。
- WalkMe上のシステム
- アカウントの合計システム数と、最終計算時からのシステム数の変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降に追加されたシステムが一覧表示されます。
- ウィジットをクリックすると、システムを管理できるadmin.walkme.com/systemsが開きます。 自動取引の定義
- 注:ボードビューが変更された場合でも、アカウント全体のすべてのシステムはこちらで引き続き確認できます。
- 本番環境のアイテム
- 本番環境で公開された合計アイテムの数と、最終計算時からのアイテム数の変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降に追加されたアイテムが一覧表示されます。
- 最終計算時からのアイテム数の変化率が表示されます。
- チームメンバー
- アカウントの合計チームメンバー数と、最終計算時からの変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降に追加されたメンバーが一覧表示されます。
- ウィジットをクリックすると、ユーザーを管理できるadmin.walkme.com/users-and-roles/usersが開きます。
- 注:ボードビューが変更された場合でも、アカウント全体のすべてのチームメンバーはこちらで引き続き確認できます。
- 未使用のアイテム
- 本番環境に公開されてから少なくとも30日経過し、その間にエンゲージメントが0になった「未使用のアイテム」数が表示されます。
- 最終計算時からの未使用のアイテムの変化率が表示されます。
- ウィジットにカーソルを合わせると、先週以降の新しい未使用のアイテムが一覧表示されます。
ヒント:[Unused Items(未使用のアイテム)]ウィジットをクリックすると、検索、列のカスタマイズ、エクスポートが可能なアイテム名、タイプ、システムを含むテーブルが開きます。
最もエンゲージメントの高いワークフローコンテンツ
- システムのタイプと名前
- ユニークユーザー数
- インタラクション数
- 列の追加や削除でカスタマイズしてエクスポートすることができる、最もエンゲージメントの高い上位100アイテムのテーブルが開きます。
- 前週のエンゲージメントからの変化率
ヒント:アイテム名をクリックすると、エディターで直接アイテムが開きます。 これは、複製したり、なぜ正常に動作しているのかを詳しく調べたい場合に便利です。
最もエンゲージメントの低いワークフローコンテンツ
- システムのタイプと名前
- ユニークユーザー数
- インタラクション数
- 列の追加や削除でカスタマイズしてエクスポートすることができる、最もエンゲージメントの低い上位100アイテムのテーブルが開きます。
- 前週のエンゲージメントからの変化率
ヒント:アイテム名をクリックすると、エディターで直接アイテムが開きます。 これはアイテムを編集またはアーカイブしたい場合に便利です。
WalkMe機能の活用
エラーがあるスマートウォークスルー
- システムとスマートウォークスルー名
- 列の追加や削除でカスタマイズしてエクスポートすることができる、エラーがある上位100のスマートウォークスルーのテーブルが開きます。
- エラー数
注:エラーがあるスマートウォークスルーおよびウォークスルーには、第一ステップのみで再生に失敗したSWTとWTのリストが含まれています。 インサイトのウォークスルーエラーレポートには、再生に失敗したステップを含むSWTとWTのリストが含まれているため、数値が異なる場合やエラーがあるアイテムの数が多く表示される場合があります。
最も多く検索された用語
- システムとアイテム名
- アクションが発生した検索数
- 列の追加や削除でカスタマイズしてエクスポートすることができる、最も検索された上位100アイテムのテーブルが開きます。
- 検索数
ヒント:検索語をクリック すると、メニューオーガナイザーが開き、データを利用することができます。 例えば、WMコンテンツがまだ作成されていないものを検索したり、もっと上位に掲載されるべきガイドをよく検索したりします。
コメント