独自開発トレードシステムの構築

開発コンセプト:自分に合った手法をベースに、トレード利益の最大化と効率化を目指す。

内容

EAの作成の仕方はアプローチが二つあるかなって思います。

 最初になにかゴールデンクロスデッドクロスとか、インジケーターをいくつか組み合わせて、最適化して勝てるようなEAを作りこんでいくようなパターンが多かったりすんじゃないかと思います。
ですが、おそらくそういう方が作ったEAでは、継続的に勝つのは難しいと思います。

 バックテストで相場に合わせてインジケーターのプロパティを触って、パフォーマンスを上げれば上げるほど、実際のライブトレードでは、そのEAは機能しなくなることが多くなります。俗に言う「カーブヒッティング」というものになります。

そうじゃなく、まず自分の手法ありきで、自分が持ってる勝てる手法のエントリーポイント、
インジケーターからエントリーポイントをきめているならそのインジケーターをベースにし、インジケーターをつかってないなら、自分のエントリーに近いところでシグナルが出るようにインジケーターをいくつか組み合わせてつくる。そっからEAに落とし込んでいくのがいいと思います。

ポートフォリオは、基本裁量で勝てるレベルの人が構築する。
例えば、マーチンゲールかどうかっていうのをちゃんと理解してるとかですね。
あと思いますねここで書いてマジゲームおすすめしないっていうのがあるんですがその家が間違える使ってるかどうかって分からないとですね年もないですよねどうしたらそれを見抜けるんだっていうことはですねそれは実際のトレードの履歴から見ていくっていうことになりますねなので反対にそれが見極められないのであればですね間違えるって言うのですねまあ元々資金管理が難しいような特殊な手法ですねそんな使ってるんであれば使うべきではないと思います。

自分で作ったEAがあってそれを使って構築するのが一番ベストとは思います。

自動リスク計算発注EA

2%だけ。ストップとエントリーの LINE だけ決めといてエントリーするっていうやり方ですね。
基本ブレイクだけになっちゃうかもしれませんが。色々と機能が欲しくていろんなことしたいって言うんであれば他の所から購入してもらえばそれでいい。
何をしたいかって言うとパーセントで運用する方がいいですね。相場からの退場っていうことだけは避けた方がいいと思うので。まずはパーセントっていう形でする方がベストと思います。そうすれば。いくら資金が少なくなっても、破綻して退場さえしなければ、トレードスキルは上げていくことができるので、初心者にとっては、退場しないっていうことが大前提になります。そのためには総資産の何パーセントというリスクのとり方が安全だと思います。
 どうしてもですね感情的になってオーバートレードでどんどん入って損切りのポイントとかも考えずに全部、持って行かれるってパターンがやっぱり結構あるんで、これは雪だるま現象で、人間はそういう風な生き物なのでそれを認めてもいいかなと思います

なので、デモトレードでフォワードテスト用に使って頂ければとおもいます。
ライブでも問題なく動くとは思いますが、プログラマーじゃないので、動作保証はは出来ないです。
自分用には、かなり色々な機能を追加して使ってますが、インジケータはともかくEAは実際の資金にからんでくるので、もし、ライブで使うなら自己責任で・

仕様はForex Sumilatarと同じ仕様にする。
ブレーク売り買い、リスク設定はプロパティ、リスクのパーセントはラベル表示
損切りと利確ポイントの仕様
約定した地点でサーバー側に損切りと利確ポイントを設定
解説動画では、分かりやすく、業者が持っているコンピューター(サーバーという)、と今、目の前の自分のパソコンここの間で、データ(注文、決済)の情報のやり取りする。
まず、知っておいて頂きたいのは、損切りと利確の設定として、自分のパソコン側での設定と業者側での設定とに分かれる。で、問題になるのは、パソコン側で設定されている利確や損切りは、何らかの原因でサーバー側と通信できない場合、例えば、パソコンの電源が落ちた、ネット回線が切れたとか、MT4を終了させたばあいなど、なんらかの原因で業者のサーバーとの情報のやり通りができなくなった場合には、損切り決済も利確の決済もされない、危険な状態になります。一方、業者のサーバー側で、損切り利確が設定されていれば、自分のパソコンやネット回線がどういう状態であっても損切りや利確が約定されます。
 補足として、今見ているMT4の機能であるトレーリングストップもパソコン側の設定であって、MT4を動かしておかないと機能しません。
なので、エントリーの約定した時点でサーバー側に損切りと利確ポイントをせっていするようにしています。但し、サーバー側の損切り幅の制約内にEAの損切りラインがある場合には、サーバー側の損切り幅の幅の制約からプラス2ピップ話した位置にサーバー側の損切りを設定するようにしています。

補足 
 とりあえずはデモ口座の方でもForex Sumilatorと同じような感じでトレードができるような環境を作った方がいいかなと思ったんで、ちょっと作ってみました 。
ただ、大丈夫だとは思いますが、LIVE(本口座)では使わないで下さい。
私は、プログラマーじゃないので、何かあった時に、迅速な対応とかが基本的にはできないです。
 例えば、MT4の仕様変更に近いようなビルドアップがされた場合、すぐ対応できるかって言うと、できない可能性があります。
 取引ツールを販売している人や業者なら基本、すぐ対応してくると思います。
ネット上で、ナンピンとか分割決済とか、いろんな機能があって信頼性のあるツールが売ってたりします。値段もそんなに高いもんじゃないと思いますので、そちらを買って頂ければと思います。
 ただ、そういうツールを買うのなら、基本、買う前にしっかりと色々読んで、お試し版とかがあるもので、試してみてから購入して下さい。

また、リスク計算するようなインジケーターなんかは無料でありますのでそういうのも活用すればいいかと思います。

取説、免責事項作成

システムの仕様

開発経緯としては、まず、順張りでスラストのところをとって行きたい。もう一つは反発逆張りではできるだけ優位にエントリーしたいというのが大きい要因。

主な機能

テック足レベルでのブレイクエントリー、ロールバックエントリー 
自動資金管理、総資産の%でエントリー
トレール機能 
テック足トレール 
5分足高値安値トレール 
5分足スラスト( 3x3DMA )トレール

法定通貨と仮想通貨やCFDの違いにっいて

プログラミング、トレードに大きく影響する項目としては、
チャート画面上でのピプス幅とスプレッドの広さがある。

プログラミングの詳細

使用するプログラム インジケーターとEA

Ichi_LineTrade_DukasSender_Indi
Ichi_Line Trade_DukasSender_Indi_BackTest
Ichi_LineTrade_DukasSender_Indi_BTC
Ichi_ReceiverEA
Ichi_ReceiverEA_0.01Lot
Ichi_ReceiverEA_0.01Lot_BTC

送信側インジケータープログラムのフロー

Ichi_LineTrade_DukasSender_Indi 

インジケーター宣言文
適用初期処理
適用終了処理

主要プログラムと関数関連の覚書

1回だけの処理

     //*** 1回だけの仕掛け、何度もエントリーしない為の処理 ******************
         //1ミリ秒単位でのエントリー処理
         if(IsNewBar())
           {
            //前の記憶したポジション有無フラッグと今のflagが等しくない場合のみ処理
            //   if( entry_flag != previousFlag )
            //    {
            //***

            //下抜け判定,抜けた瞬間でのエントリー
            if(Close[1] > line_price && Close[0] < line_price)     // Bid → Close[0] バックテスト用
              {
               entry_flag = -1; //売りシグナルフラッグ設定
               previousFlag = entry_flag;  //今の買いフラッグを記憶
               order_process();  //発注処理関数
               First_sl_EA = sl_EA;       //ポジションがない場合での損切り価格の記憶
              }
            //      }  //前のflagと今のflagが等しくない場合の処理END
           }  //1回だけの仕掛けEND


//+------------------------------------------------------------------+
//*********1回だけの仕掛け 1ミリ秒単位でのエントリー処理 **********************
//一般的にTime[0]が使われるが分解能は秒の為、判定が遅い
//分解能:1mseの:1msecのGetTickCount関数を使うこととした
//システム開始からの経過時間をmsec単位でスタテックstart変数に記憶
//+------------------------------------------------------------------+
bool IsNewBar()
  {
   static uint start = GetTickCount();

   if(GetTickCount() != start)
     {
      start = GetTickCount();
      return(true);
     }

   return(false);
  }

//ローソク足確定で1回だけの処理
//この関数は一度呼び出すと、静的変数を上書きするため、
//たとえ同一ティック内でも2回は呼び出せないので注意
   bool NewCandle = IsNewCandle();


//+------------------------------------------------------------------+
//| ローソク足確定時の処理
//Trastトレール処理用
//+------------------------------------------------------------------+
bool IsNewCandle()
  {
   static    datetime s_lasttime;  // 最後に記録した時間軸時間

//    datetime temptime    = iTime( Symbol(), Period() ,0 );  // 現在の時間軸の時間取得
   datetime temptime    = iTime(Symbol(), 5,0);     // 5分足時間軸の時間取得

// staticはこの関数が終了してもデータは保持される
   if(temptime != s_lasttime)
     {
      s_lasttime = temptime;  // 最後に記録した時間軸時間を保存
      return(true);
     }

   return(false);
  }



他のチャートへラインの移動を反映させる関数

//+------------------------------------------------------------------+
//|  //他のチャートへラインの移動を反映させる関数                             |
//+------------------------------------------------------------------+
void LineMove(double lineprice)
  {

   long chart_id = ChartFirst();
   while(true)
     {
      if(chart_id != ChartID() && ChartSymbol(chart_id) == _Symbol)
        {
         //           if (chart_id != ChartID() && ChartSymbol(chart_id) == "!STD_GBPUSD") {
         ObjectMove(chart_id,"Horizontal Line slLine", 0, 1, lineprice);
         ChartRedraw(chart_id);

        }
      chart_id = ChartNext(chart_id);
      if(chart_id < 0)
         break;
     }


  }
//+------------------------------------------------------------------+

ビットコインの為の処理

損切り利確価格を広げるための処理

  PointToPips(); //ポイントをピップスに変換

//仮想通貨のための処理 損切り利確価格を広げるための処理
   if(Symbol() == "BTCJPY")  { PIP = PIP * 100000; }
   if(Symbol() == "BTCUSD")  {  PIP = PIP * 1000; }

尚、バックテスト(FX Simurator)でのシンボルは !SDT_BTCUSD となる。