FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

作成日:: 2023-04-01 13:07:53, 更新日:: 2024-11-29 18:56:44
comments   5
hits   2485

[TOC]

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

FMZ戦略エディターの新機能をご覧ください

定量取引とプログラム取引の初心者にとって最大の難しさは何ですか?一般的に言えば、いくつかあります。

  • 基礎知識の欠如: 基本概念、市場ルール、取引知識、戦略的アイデアなど。
  • 弱いプログラミングの基礎: 論理表現、プログラムの設計と作成、プログラムのデバッグとトラブルシューティングなど。
  • 論理的思考力が弱い: 思考プロセスは簡単に混乱を招き、考えれば考えるほど混乱が増します。
  • 独学の難しさ: 問題が発生した場合、どこから解決を始めればよいのかわからず、問題をどこで探せばよいのかもわからない場合があります。

AI技術の発展により、上記の問題に対する解決策はある程度見つかるでしょう。最近人気Chat GPT定量的な取引を学習、調査、作成するためのツールとして使用できます。 FMZプラットフォームの戦略エディターの新しいアップグレードにより、Chat GPTも接続され、定量的な生産性が大幅に向上しました。一緒に探索してみましょう。FMZ戦略エディターの新機能

コード設計を支援するためにチャットGPTを使用する

Chat GPT の機能はすでに非常に強力であり、人間が提起する質問に対する理解レベルもすでに非常に高くなっています。しかし、その答えは依然として問題の説明の完全性説明の正確さユーザーの入力や出力などの要素は非常に敏感です。記述されたシナリオや質問の内容が不正確な場合、Chat GPT は依然として完璧な回答を出すことができません。したがって、何らかの問題を解決するためにそれを使用する場合は、それを正確かつ完全に表現するように努める必要があります。

次に、FMZ プラットフォーム戦略エディターのチャット GPT 機能を使用して、コード設計の問題を解決します。FMZ プラットフォームにログインし、戦略編集ページに移動します。

1. ChatGPTを呼び出す方法

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

空白スペースで右クリックメニューを使用して、ChatGPTオプションを選択し、クリックして呼び出します。Chat GPT、または⌘Kを使用してChatGPTを起動します

2. 質問の仕方について

私が現在定量取引の初心者である場合、次のような要件があります。「1 分間の K ラインを使用して、任意の期間の K ライン データを合成する」。初心者なのでプログラミングスキルが弱く、このようなアルゴリズムの書き方が全く分かりません。以前は情報を探したり専門家に助けを求めたりすることしかできませんでした。チャットGPTを使えば、直接質問することができます。答え。もちろん、前述のように、この要件を直接説明します。「1分間のKラインを使用して任意の期間のKラインデータを合成する」。 GPT は 100% 使用可能な回答を提供しない可能性が高いため、問題を可能な限り完全に説明する必要があります。この要件を例にとると、私は質問を調整し続け、必要な有用な回答が得られるまで何度も質問しました。それでは、この要件をもう少し詳しく説明しましょう。

在FMZ平台上调用exchange.GetRecords(60)函数可以获取一分钟K线数据,数据结构是:
[{
    Time    : 毫秒时间戳,   // 周期的起始时间  
    Open    : 1000,              
    High    : 1500,              
    Low     : 900,               
    Close   : 1200,              
    Volume  : 1000000            
}, ...]
请设计一个算法,使用一分钟K线数据合成任意分钟的K线数据,对于可以整除60分钟的周期,需要从整点的0分开始统计,使用Javascript语言实现,
这个算法单独写成一个函数,测试在function main()函数中测试,使用$.PlotRecords(KLineData, "name")画图。

ChatGPTを呼び出した後、上記の最適化された質問内容を入力できます。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

ChatGPTが動作を開始します。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

終わるまでお待ちください。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

時々Chat GPTコードをラップする”マークダウン内で囲まれたコンテンツがコードであることを示すシンボル。したがって、最初の行と最後の行を削除するだけです。私が質問したのは$.PlotRecords(KLineData, “name”)`描画なので、戦略は線描画ライブラリを参照して絵を描画する必要があります。描画は、Chat GPT によって与えられたコードによって合成された K 線データが正しいかどうかを確認することです。 テンプレートライブラリが何であるかについては、ここでは詳しく説明しません。FMZ の API ドキュメントを確認してください。線画ライブラリアドレス

Chat GPT提供されたコードは直接バックテストできます。Chat GPT によって提供されたアルゴリズムによって計算された K ライン データによって描画された K ライン チャートを比較するために、バックテスト システムのデフォルトの K ライン期間を 5 分に設定しました。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

3. Chat GPTから提供されたコードをバックテストする

バックテストシステム図 ChatGPTアルゴリズムの図

一見すると、1 分間の K ラインを使用して 5 分間の K ラインを合成するという ChatGPT によって示されたアルゴリズムは正しいです。

4. ChatGPTによって書かれた完全なコード

/*
合成任意分钟的K线数据
@param {Array} records - 一分钟K线数据
@param {Number} period - 合成的周期,单位为分钟
@return {Array} - 合成后的K线数据
*/
function composeKLineData(records, period) {
  var result = [];
  var index = 0;
  var open = records[0].Open;
  var high = records[0].High;
  var low = records[0].Low;
  var close = records[0].Close;
  var volume = records[0].Volume;
  var time = records[0].Time - records[0].Time % (period * 60 * 1000);
  for (var i = 1; i < records.length; i++) {
    var record = records[i];
    if (record.Time < time + period * 60 * 1000) {
      high = Math.max(high, record.High);
      low = Math.min(low, record.Low);
      close = record.Close;
      volume += record.Volume;
    } else {
      result[index] = {
        Time: time,
        Open: open,
        High: high,
        Low: low,
        Close: close,
        Volume: volume
      };
      index++;
      open = record.Open;
      high = record.High;
      low = record.Low;
      close = record.Close;
      volume = record.Volume;
      time = record.Time - record.Time % (period * 60 * 1000);
    }
  }
  result[index] = {
    Time: time,
    Open: open,
    High: high,
    Low: low,
    Close: close,
    Volume: volume
  };
  return result;
}

function main() {
  var records = exchange.GetRecords(60);
  var kLineData = composeKLineData(records, 5); // 合成5分钟K线数据
  $.PlotRecords(kLineData, "KLineData");
}

Chat GPT を使用してコードを説明する

FMZ に統合された ChatGPT は、コードの作成だけでなく、コードの説明にも役立ちます。 ChatGPT が書き込んだコードを選択します。composeKLineData機能、右クリックするとメニューがポップアップします:

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

Chat GPTを使用して提案を行い、コードを最適化します

ChatGPT は最適化の提案や最適化されたコードも提供できます。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法


エディターに追加されたその他の新機能

この FMZ エディターのアップデートでは、ChatGPT 機能が追加されます。オンライン プログラム作成のユーザー エクスペリエンスをさらに最適化および改善し、多くの便利な機能を追加します。

ショートカットキーの組み合わせを表示

空白スペースまたはコードが選択されているときに右クリックすると、メニューがポップアップ表示されます。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

さまざまな機能のショートカット キーの組み合わせを表示します。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法


変数名を変更する

シンボルの名前を変更し、ローカル変数名を変更します。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

上記の画像のみ変更されますmain関数内の変数名records


同一のコンテンツをすべて変更する

すべての出現箇所を変更し、変数名または単語を選択して、テキスト内の同じ内容をすべて同時に編集します。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法


フォーマット(コードの美化、自動整列フォーマット)

選択内容をフォーマットし、選択したコードをフォーマットします。

ドキュメントをフォーマットし、すべてのコードをフォーマットします。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法


定義、参照へジャンプ

定義に移動、定義にジャンプします。 「参考文献」に移動し、参考文献にジャンプします。 シンボルへ移動…、変数名、関数名などにジャンプします。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法


定義プレビュー、参照プレビュー

Peek Definition、定義のプレビュー。現在のコード行を離れずに、選択したコードの定義を表示します。 Peek References(参照のピーク)では、参照のプレビューにより、現在のコード行を離れることなく他のコード行内の現在のコード行への参照を表示し、すばやくジャンプしてコードのロジックと構造をより深く理解できます。

FMZ戦略エディターの新機能をご覧ください: ChatGPTが定量的生産性を大幅に向上させる方法