cTraderをプログラミングして自分用に改造します。
現在ではGemini(GoogleのAI)が使えるので、コーディングが簡単。
cTraderに自作インジケーターを追加する
ctraderのチャート上に、現在のスワップを表示させるインジケーターを作ります。
プログラミングの下準備
cTraderを起動したらメイン画面左上の矢印をクリックします。
メインメニューが開くので、左下の矢印をクリック。
続いて「新規」をクリック。
矢印の通りにクリック。
インジケーターの名前を適当に入力し、矢印の通りにクリック。
※既に存在しているインジケーターの名前は入力できない仕掛けになってます(下図のように文字の背景が赤くなる)。
ここも矢印の通りにクリック。
※ここではプログラミング言語を選びます。
矢印の通りにクリック。
※ゼロからコーディングする場合は「最初から作成する」を選びます。
コードが表示されるので全部削除します。
Geminiにコードを出力させる
次にGeminiにコードを書いてもらいます。
ここでは試しにチャート上に現在のSWAPを表示させるコードを出力させます。
Chrome内でGeminiを起動します。
例えばこんなプロンプトをGeminiに入力してください。
「ctraderのチャート上にスワップポイントを常に表示したいので、それ用のコードをC#で出力して下さい」。
以下のようなコードがGeminiから出力されるので、矢印をクリックしてコピーします。
以下は”最終的”にGeminiから出力されたコードです。
何回もGeminiとやりとりして、やっと正常なコードになりました。
※念のためにChatGPTの出力したコードを見せっこしたりして修正。
//
// 2026/3/1 MySwapDisplay:Gemini版
//
using System;
using cAlgo.API;
using cAlgo.API.Internals;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SwapInfoFinal : Indicator
{
[Parameter("通常時の色", DefaultValue = "Yellow")]
public string NormalColor { get; set; }
[Parameter("買SWAPマイナス時の色", DefaultValue = "Pink")]
public string NegativeColor { get; set; }
protected override void Initialize()
{
UpdateDisplay();
}
public override void Calculate(int index)
{
// 最新の足(リアルタイム)の時だけ表示を更新
if (IsLastBar) UpdateDisplay();
}
private void UpdateDisplay()
{
// 1ロット(10万通貨)の定義
double lotSize = Symbol.LotSize;
// スワップ値(pips)
double longSwapPips = (double)Symbol.SwapLong;
double shortSwapPips = (double)Symbol.SwapShort;
// PipSize(ドル円なら0.01、その他なら0.0001など)
double pipSize = (double)Symbol.PipSize;
// 円換算レート
double jpyRate = GetToJpyRate();
// 1ロットあたりの円換算計算
double longYen = lotSize * pipSize * longSwapPips * jpyRate;
double shortYen = lotSize * pipSize * shortSwapPips * jpyRate;
// --- 買いスワップがマイナスの時だけ色を変える判定 ---
string currentColor = (longYen < 0) ? NegativeColor : NormalColor;
string text = string.Format(
"■ 1日のSWAP / 1ロット({0:N0}通貨) ※木曜早朝は3倍\n" +
"買: {1:N0} 円 ({2:N3} pips)\n" +
"売: {3:N0} 円 ({4:N3} pips)\n" ,
lotSize, longYen, longSwapPips, shortYen, shortSwapPips);
Chart.DrawStaticText("SwapInfo", text, VerticalAlignment.Bottom, HorizontalAlignment.Left, Color.FromName(currentColor));
}
private double GetToJpyRate()
{
string quoteAsset = Symbol.QuoteAsset.ToString();
// 決済通貨が円なら1.0
if (quoteAsset.Contains("JPY")) return 1.0;
// 円以外のペアの場合(例: CHF/HUFならHUF/JPYのレートを取得)
string jpyPairName = quoteAsset + "JPY";
var jpySymbol = Symbols.GetSymbol(jpyPairName);
if (jpySymbol != null)
{
return jpySymbol.Bid;
}
return 1.0;
}
}
}ビルドとチャート上への表示
ここで再びcTraderに戻り、先ほど削除したコードエリアにGeminiの出力したコードをペースト(貼り付け)してください。
続いて矢印のビルドボタンをクリック。
画面下部にビルド結果が表示されます(エラーが出ないことを確認)。
※もしエラーが出た場合は、Geminiに「エラーが出たよ」と言えば、新たにコードを出力してくれます。
以上でコードが生成され、チャートに表示する準備が出来ました。
①チャート上で右ボタン、②で今回作成したインジケーターの名前を選択すれば③のように表示され目的達成です。
修正や削除など
なおこのインジケーターの表示パラメータの変更や表示停止、削除などをする場合は、下図のように操作してください。
矢印でパラメータ変更、非表示にするなら左隣の目のアイコン、削除する場合は右隣のゴミ箱をクリックします。
なおこのインジケーターのプログラム内容を修正する場合は、①②③とクリックし、コードを修正後にビルドボタンをクリックします。
cTraderに自作cBotを追加する
この記事は工事中です。
ctraderに自作のcBotを追加します。
※cBotはMT4で言うEAと同じような自動売買のプログラムです。
プログラミングの下準備
cTraderを起動したらメイン画面左上の矢印をクリックします。
メインメニューが開くので、左下の矢印をクリック。
続いて「新規」をクリック。
矢印の通りにクリック。
矢印の通りにクリック。
矢印の通りにクリック。
矢印の通りにクリック。
矢印の通りにクリック。
矢印の通りにクリック。





















コメント