QUIKのトレーディングロボットをプログラミングするためのアルゴリズム言語QPILE。
トレーディングロボットは、プログラムコードと同様に、特定の言語で作成できます。QPILEはその1つです。この記事では、この言語を検討し、QPILE言語と
LUA言語を比較し、この言語のロボットの例も示します。
QPILEに関する一般情報
QPILEは、QUIK Programmable Interface andLogicEnvironmentの略語です。
これは、QUIKワークステーションによって解釈される一連のコマンドです。これは主に証券ポートフォリオの価格を計算するために使用されます。この言語は次の目的にも使用されます。
- ブローカーのデスクトップとポートフォリオ内のクライアントの資産の価格の動的な再計算。後者の場合、それらの合計価格も再計算されます。
- 証拠金貸付のための独自のアルゴリズムとデータを使用して、欠落している指標を見つける。
- 適切な取引戦略を開発する。
言語は、テーブルの構造(列と行の指定、数式)を記述します。後者では、数学演算、変数、他のテーブルのデータを計算に使用できます。QUIKサーバーまたはユーザーのディスクからロードされたプログラムコードは、数式の値を計算する言語インタープリターによって処理されます。1つのプログラムのテーブルには1つのデータソースがありますが、計算は複製されず、システムの効率に影響を与えません。QUIKテーブルを操作する場合、QPILEのテーブルには標準機能があります。職場のQUIKにはQPILEコードデバッガーが搭載されています。https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htmこの言語を使用すると、特定の構造で新しいテーブルを記述したり、特定の値でセルを強調表示したり、数式に基づいてフィールドを計算したりできます。ユーザーは、音声信号またはテキストメッセージの形式で通知を受け取ります。QPILEのテーブルは、ODBCおよびDDEサーバーを介して編集、印刷、コピー、エクスポートできます。初期データはQUIKテーブルからのものです。
- 実行および非人称を含むトランザクション。
- 店頭取引および注文のストップ注文を含む注文-決済取引の取引のレポート。
- 「クライアントポートフォリオ」、「購入/販売」
- お金、取引口座、商品による参加者のポジションからのデータ。
QPILEに基づくテーブルは、コンテキストメニューを介してテキストファイルにコピーしたり、テクニカル分析システムにエクスポートしたりすることはできません。また、それらに基づいてチャートを作成することもできません。QPILEベースのテーブルはフィルタリングまたはソートできません。
テーブルでの作業
プログラムコードをロードするには、サービスメニューを選択してから、QPILEスクリプトを選択する必要があります。Ctrl+F11の組み合わせを使用することもできます。「追加」をクリックして目的のファイルを選択する必要があります。拡張子は.qplで、その名前は[使用可能なスクリプト]リストに表示されます。
- テーブル名;
- 列とクライアントの数。
- 識別子とクライアントのリスト。
- パラメータのリストとファイルのソースコード。
QPILEコンストラクト
データ型
- 文字列-文字列。
- Doubleは浮動小数点数です。
- コレクション-コレクション。
- マップ-連想配列-キーごとに情報を取得できるようにするペアのシーケンス。
式
加算、減算、乗算、除算の算術演算が適用されます。論理式「and」、「or」、equals、more、less、不等式、条件付き構文「if …then…」も使用されます。
機能
関数はプログラムのどこにでも配置でき、異なる名前を付けることができます。合計で18の数学関数と関数のグループを使用して、テーブルとパラメーター、連想配列、テーブルのリスト、およびその他のタスクの値を取得できます。一年生:
- 引数のサイン、コサイン、タンジェント、コタンジェントの値を返したり、引数の指数を計算したり、ランダムな数値を生成したりできる数学関数。
- 一般的なコマンド:グローバル変数を初期化するためのNEW_GLOBALとメッセージを開くためのMESSAGE。
使用する関数:
- オブジェクトのコレクション(コレクション)。これらを使用すると、新しいコレクションを作成したり、必要な数の要素を返したり、目的の値を置き換えたり挿入したりできます。
- 連想配列(MAP)。アレイの作成と管理に役立ちます。
- ファイル-テキストファイルを操作し、プログラムのログログを維持します。ファイル名には、そのファイルへのパスが含まれている場合があります。
- 文字列。
- グラフ。関数GET_CANDLEはキャンドルデータにアクセスし、GET_CANDLEEXは連想配列を返します。
- アプリケーション。注文を作成して取引システムに送信します。
- タグ。チャート上のそれらの構造と設置。1つまたはすべてのラベルの追加、削除、特定のラベルのパラメーターの取得と設定。
次の機能もあります。
- 任意のQUIKテーブルの行と使用可能なパラメータのリストにアクセスするため。職場のテーブルデータへのアクセス。これには、MAPを返すGET_ITEMと、エントリ数を返すGET_NUMBER_OFが含まれます。
- プログラム可能なテーブルを操作するには。これらのコマンドは、OWNテーブルで動作します。前の段落の標準関数とこれらの関数で読み取ることができます。このグループには、インデックス付きの行を追加、変更、削除し、OWNテーブルを完全にクリアするためのコマンドが含まれています。
値を取得するには:
- 現在の取引の表。GET_PARAM(_EX)コマンドを使用して交換情報パラメーターを取得します。
- 見積もりウィンドウ。金融商品相場の値を取得する。
- 楽器とお金によるポジションの表。コードによるクライアント、会社、商品、デポアカウントのデータの取得。
サービス機能-現在の取引セッションの日付、連想系列、現在の日付と時刻を返し、接続状態を決定し、計算モードを中断します。
プログラムのデバッグ
プログラムの動作の段階的な制御は、「デバッグ」ウィンドウで実行されます。コンテキストメニュー「デバッグモードで計算を開始」から開きます。また、breakpoint()コマンドで開くこともでき、プログラム行は赤で強調表示されます。ウィンドウには、プログラムコードと変数値のフィールドが含まれています。ウィンドウの下部には、「次のステップ」、「実行の続行」、「計算の停止」のボタンがあります。F5を押すとプログラムの実行が続行され、Shift + F5の組み合わせでデバッグが停止し、F10キーが次の行に移動します。
QPILEまたはLUA?
LUAは、トレーディングロボットを作成するための新しいプログラミング言語です。QPILEと同様に、QUIK端末に実装されます。https://articles.opexflow.com/programming/lua.htm取引用の取引ロボットの開発専用のサイトは、QPILEに対するLUA言語の利点を示しています。そのため、開発者ツールとオブジェクト指向プログラミングメカニズムを備えた、コンパイルされていないスクリプトおよびバイトコードとして機能できます。他のプログラミング言語で書かれたオブジェクトは、LUAプログラムに接続できます。LUAは、メタテーブルを含む8つのデータ型を提供します。LUA言語はマルチスレッドで高速であり、トランザクションとターミナルイベントは非同期です。LUAはQPILEよりも一般的であり、多くの拡張機能が作成されています。
QPILE言語は非推奨になりました。フォーラムの専門家はLUAの使用を推奨しています。有用で効果的なプログラムはまだ使用されていますが。
ただし、QPILE言語はLUAに比べて単純なので、プログラミングの経験がない場合は、QPILEを選択することをお勧めします。この言語では、複雑な計算を実行する必要がない場合は、単純なロボットを作成できます。
QPILEでトレーディングロボットを作成するにはどうすればよいですか?
トレーディングアドバイザーを作成するには、次のプログラムが必要です。
- ITSクイック。
- Notepad++コードエディタ。
- QPILEへのガイド。
- Notepad++でコードを検出するためのXMLプラグイン。
これらのプログラムをダウンロードしてインストールします。userDefineLang.xmlをパスC:\ Users \ User \ AppData \ Roaming \ Notepad ++ \に配置して、言語構文を有効にします。
「ユーザー設定」ブロックには、最後のN個のバーを取得する機能で使用されるNUMBER変数とINTERVAL変数が追加されています。DATETIME関数はサーバーの日付と時刻を設定し、現在の日付と時刻の関数CURDATEとCURTIMEがサーバーから呼び出されます。現在の時刻は24行目の数値に変換されます。26行目は、アルゴリズムが実行される時刻を10:00:01から18:40:00UTCまで設定します。
QPILEでのロボットの取引-既製のソリューション
移動平均ロボット
デモロボットは実際の取引には適していません。
N.モロシュキン位置計算機
現在のアスク価格とビッド価格でのロングポジションとショートポジションの最大許容ドローダウンとターゲットのレベルを計算するためのプログラム。レベルは、ポジションエントリーボリュームの2つの値に対して計算されます。ロボットは、バーの上方向のポジションを開く計算を使用して、始値から1ステップでストップオーダーを割り当てるときに、許容ポジションボリュームを見つけます。見つかったレベルはターミナルウィンドウに入力され、その後価格チャートに反映されます。トランザクションは、特定の商品に対して固定されています。ポジションが開かれると、ロボットはそのパラメータの計算を開始します。位置の変更に応じて、割り当てられた注文が調整されます。
ボリュームフィルター
ろうそく足の体積の算術平均を計算し、それをX係数による平均積と比較するためのロボットポートフォリオ。選択した期間にプロットされたチャートで正しく機能します。
オプションギリシャ人
オプションの「ギリシャ文字」を計算して表示するためのポートフォリオ。ブラックシャワー方式とは異なります。
QUIK用TRIXトレーディングロボット
プログラムはTRIXインジケーターに基づいています。インジケーターが指定されたレベルのゼロラインより上で閉じると、ロボットはロングポジションになります。ポジションは、テイクプロフィット、ストップロス、またはトレーリングストップによってクローズされます。
M4プリプロセッサ
QPILEおよびLuaを使用するためのプログラム。実行可能ファイルを含むアーカイブ、ドキュメント、および正規表現解析を含むDLLファイルが含まれます。プログラムを使用するには、実行可能ファイルを解凍し、regexp2をC:\Windowsパスに配置する必要があります。QPILE for QUIKに関するレッスン:https://youtu.be/vMTXwDUujpI QuikターミナルのQPILEにスクリプトをインストールする:https://youtu.be/0B7qL8Svh7Iに組み込まれているQPILEアルゴリズム言語の使用について説明しているgithubのセクションリンクにあるQUIKシステムワークステーション-https://euvgub.github.io/quik_user_manual/ch8.html。QPILEは時代遅れの言語ですが、非常にシンプルで、初心者のトレーダーでもアクセスできます。長い間証明されてきたトレーディングロボットやプログラムは、引き続き取り組んでいます。ただし、より複雑なタスクの場合は、LUAを使用することをお勧めします。
0к