システムトレード

デュアルストップロス:隠れたストップロスと通常ストップロスを併用しよう
MetaTrader4
デュアルストップロス:隠れたストップロスと通常ストップロスを併用しよう

トレーダーにとって、新しいポジションを開く際に最初に考えるべきことは資金管理です。リスクをコントロールし、資本を管理する方法の一つとして、トレーダーはポジションに対して一定のマージン損失を設定することがよくあります。 多くのトレーダーは、ストップロス(またはテイクプロフィット)を設定し、その価格をポジション修正ウィンドウに入力すると、ブローカーのサーバーはその価格に達した瞬間に自動的にポジションを閉じるものだと思っています。しかし、実際にはこれは完全に正しいわけではありません。 それは、あなたが持っている口座のタイプによります。ECN口座では、ストップロスやテイクプロフィットの価格をブローカーに伝えると、その価格に達した際に、ブローカーは最初に取得可能な価格でポジションを閉じます。これに同意できない場合は、もう一度取引履歴を注意深く見直してみてください。 すると、あなたのいくつかの注文が設定した価格とは異なる価格で閉じられていることに気づくでしょう。その結果、予想以上の損失や利益を被ることがあります。これはスリッページによるものです。 さらに、一部のトレーダーは、損失限度をブローカーに正確に示すべきではないと信じています。そんなトレーダーたちから生まれたのが、隠れたストップロスです。このロボットは、その目的のために設計されています。これからは、隠れたストップロスと通常のストップロスを併用することが可能です。 通常のストップロスは、これまで通り簡単にポジションに設定できます。ロボットを使用しているか手動で取引しているかは関係ありません。 このロボットを新しいチャート(どれでも)で実行するだけで、すべてのポジションを管理できます。入力値は、隠れたストップロスと通常のストップロスの距離を決定します。この値はポイントで定義されていることに注意してください。ピップではありません。

2021.04.23
スキャルピング初心者必見!MetaTrader 4用のスキャルパーアシスタント v1.0
MetaTrader4
スキャルピング初心者必見!MetaTrader 4用のスキャルパーアシスタント v1.0

スキャルピングとは? スキャルピングは、トレーダーの間で非常に人気のある取引戦略の一つで、多くの方が少なくとも一度は試したことがあるでしょう。スキャルパーは通常、1日に10回以上の取引を行うため、各取引においてストップロスやテイクプロフィットを設定するのは少々面倒です。 複数の金融商品を扱う際の悩み もしあなたの戦略が複数の金融商品で取引を行い、かつブレイクイーブンを狙うものであれば、すべての注文を管理するのは退屈で、ミスを犯すことが多くなります。また、短い時間足で取引を行い、複数の通貨ペアを扱っている場合、デスクを離れてお茶を飲んでいる間に急激な価格変動が起こり、ブレイクイーブンのチャンスを逃してしまうこともあるでしょう。その結果、利益を得るはずだった取引が損失に変わってしまう可能性が頭をよぎります。 スキャルパーアシスタントの利点 このエキスパートアドバイザーを使用することで、ストップロスとテイクプロフィットの設定が簡単に行えます。 取引を開始した直後に、自動で初期値を設定します。 価格が希望する方向に十分に動いた場合、取引はリスクフリーまたはブレイクイーブンに設定されます。 設定項目について すべての入力値はポイント(PiPではなく)で設定されます。 extern double WhenToMoveToBE; // EAがブレイクイーブンにするために、価格がエントリーポイントから何ポイント離れている必要があるかを決定します。 extern double BEAmount; // ストップロスをエントリーポイントからどれだけ離すかを設定します。

2021.04.23
MetaTrader 4の注文管理を効率化!目標利益と損切りを設定しよう
MetaTrader4
MetaTrader 4の注文管理を効率化!目標利益と損切りを設定しよう

はじめに 今回は、MetaTrader 4で使えるエキスパートアドバイザー(EA)をご紹介します。このツールを使えば、目標利益を達成したり、損失を限定したりすることができます。さっそく見ていきましょう! 必要な設定項目 このEAには、次の3つの入力が必要です: 利益目標 損切り マジックナンバー extern double inTargetProfitMoney = 10; //利益目標($) extern double inCutLossMoney = 0.0; //損切り($) extern int inMagicNumber = 0; //マジックナンバー EAの初期化 EAが実行されると、まず OnInit() 関数が呼ばれます。この中で、入力値の確認を行います。 int OnInit() { //--- if (inTargetProfitMoney = 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == inMagicNumber) { tFloating += OrderProfit() + OrderCommission() + OrderSwap(); } } } if (tFloating >= inTargetProfitMoney || (tFloating = 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL)) { priceClose = (OrderType() == OP_BUY) ? MarketInfo(OrderSymbol(), MODE_BID) : MarketInfo(OrderSymbol(), MODE_ASK); if (!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold)) { Print("WARNING: クローズ失敗"); } } } } } まとめ このようにして、利益目標や損切りを設定することで、トレードのリスクを効果的に管理できます!もっと詳しい情報やMQL4のコードに関する教育を受けたい方は、ぜひ私たちのTelegramグループ t.me/codeMQL に参加してください。

2021.03.31
MetaTrader 4でのトレーリングストップの設定方法 - マジックナンバーを使った自動売買
MetaTrader4
MetaTrader 4でのトレーリングストップの設定方法 - マジックナンバーを使った自動売買

トレーリングストップは、利益を確保するためにストップロスを自動的に移動させることで、私たちの取引を大いにサポートしてくれます。これにより、常に利益エリアを保持しつつ、相場の動きに追従できます。 では、まず入力パラメータを設定するところから始めましょう。 input    bool     isTrailingStop = true;  // トレーリングストップを有効にする input    int      trailingStart  = 15;    // トレーリング開始(pips) input    int      trailingStep   = 5;     // トレーリングステップ(pips) input    int      MagicNumber = 0;        // マジックナンバー 次に、グローバル変数を設定します。 // グローバル変数 double   myPoint    = 0.0; このEAを実行すると、最初にOnInit()関数が実行され、ここで入力パラメータの検証と初期化が行われます。 int OnInit()   {       if (isTrailingStop && trailingStart <= 0){       Alert ("パラメータが不正です");       return(INIT_PARAMETERS_INCORRECT);    }       myPoint     = GetPipPoint(Symbol());       return(INIT_SUCCEEDED);   } 価格が動くたびに、OnTick()関数が実行され、その中でsetTrailingStop()関数が呼び出されます。 void OnTick()   { //---    setTrailingStop(MagicNumber);      } setTrailingStop()関数の詳細は以下の通りです。 void setTrailingStop(int magicNumber=0){    if (isTrailingStop==false) return;       int      tOrder = 0;    string   pair = "";    double   sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){          if (OrderType() == OP_BUY){             if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()                   && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )                 ){                sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " SLの更新に失敗しました");                }             }          }          if (OrderType() == OP_SELL){             if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()                   && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)                ){                sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " SLの更新に失敗しました");                }             }       } // マジックナンバーの処理終了    }// ループ終了 } 他に必要な標準関数としては、GetPipPoint()があります。 // GetPipPoint関数 double GetPipPoint(string pair) {    double point= 0.0;    int digits = (int) MarketInfo(pair, MODE_DIGITS);    if(digits == 2 || digits== 3) point= 0.01;    else if(digits== 4 || digits== 5) point= 0.0001;    return(point); } 何か質問があれば、コメント欄に残すか、私たちのグループに参加してください。t.me/codeMQLで共有しています。 また、SignalForexアプリも提供しています。こちらをダウンロードして、より利益を上げるために活用してください。 SignalForexアプリのダウンロード

2021.03.30
MT4用の2つの移動平均クロスEAの作成方法
MetaTrader4
MT4用の2つの移動平均クロスEAの作成方法

こんにちは、トレーダーの皆さん!今日はMT4用の移動平均クロスを利用したエキスパートアドバイザー(EA)の作成方法についてお話しします。このEAは、シンプルながらも効果的なトレーディング戦略を提供します。それでは、早速始めましょう! 1. 入力変数の定義 まずは、EAを作成するために必要な入力変数を定義します。以下のコードを参考にしてください。 //--- 入力パラメータ input    int      period_ma_fast = 8;  //速い移動平均の期間 input    int      period_ma_slow = 20; //遅い移動平均の期間 input    double   takeProfit  = 20.0;  //利益確定(pips) input    double   stopLoss    = 20.0  //損切り(pips) input    double   lotSize     = 0.10;  //ロットサイズ input    double   minEquity   = 100.0; //最小資金($) input    int Slippage = 3;       //スリッページ input    int MagicNumber = 889;  //マジックナンバー 2. グローバル変数の定義 次に、グローバル変数を定義します。これにより、すべての関数からアクセス可能な変数を作成します。 //グローバル変数 double   myPoint    = 0.0; int      mySlippage = 0; int      BuyTicket   = 0; int      SellTicket  = 0; 3. 初期化関数 OnInit() EAが実行されると、最初に実行されるのが OnInit() 関数です。この関数を利用して、グローバル変数の初期化や入力データの検証を行います。 int OnInit() {    //初期データの検証    if (period_ma_fast >= period_ma_slow || takeProfit < 0.0 || stopLoss < 0.0 || lotSize < 0.01 || minEquity < 10){       Alert("警告 - 入力データが無効です");       return (INIT_PARAMETERS_INCORRECT);    }    myPoint = GetPipPoint(Symbol());    mySlippage = GetSlippage(Symbol(), Slippage);    return(INIT_SUCCEEDED); } 4. 市場の動きに応じた OnTick() 関数 市場価格が動くと、OnTick() 関数が呼び出され、すべての命令が実行されます。この関数内では、取引資金の adequacy を確認し、新しいキャンドルが形成されたときに通知します。 void OnTick() {    if (cekMinEquity()){        int signal = -1;       bool isNewCandle = NewCandle(Period(), Symbol());              signal = getSignal(isNewCandle);       transaction(isNewCandle, signal);       setTPSL();           }else{       //資金不足で取引を停止       Print("EA は資金が不足しているため停止します");    } } 5. 取引の設定を行う setTPSL() 関数 この関数では、取引の利益確定と損切りの設定を行います。 void setTPSL(){    int   tOrder = 0;    string   pair = Symbol();    double sl = 0.0, tp = 0.0;    tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);        if(OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)){          tp = OrderOpenPrice() + (takeProfit * myPoint);          sl = OrderOpenPrice() - (stopLoss * myPoint);          if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {            if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)){             Print("注文の修正に成功しました");          }        }      }    } } このEAは、シンプルでありながら強力なトレーディングツールです。移動平均のクロスを利用して、エントリーとエグジットのポイントを自動で判断してくれます。ぜひ試してみてください! もしこの内容が役に立ったと思ったら、ぜひ友達にも教えてあげてくださいね。今後も役立つ情報をお届けしますので、お楽しみに! トレーディングに役立つアプリをお探しの方は、ぜひ私たちのSignalForexアプリをダウンロードしてみてください! こちらからダウンロード

2021.03.30
シンプルトレーディングパネル - MT4用のトレードツール
MetaTrader4
シンプルトレーディングパネル - MT4用のトレードツール

はじめに: シンプルトレーディングパネルは、とても便利なトレードツールです。このツールを使うことで、ストップロスやテイクプロフィットをピップス単位であらかじめ設定できます。また、取引の回数やポジションサイズ、取引する通貨ペアを事前に選ぶこともできます。このツールはスキャルピング、デイトレード、スイングトレード、そして投資にも対応しています。 このトレードツールの背景: このトレードツールを開発した背景には、私がスキャルピングを行っていたときの苦労があります。特に市場が非常にボラティリティが高いときに、ストップロスやテイクプロフィットを素早く設定することができず、何度も困った経験があります。それに加えて、取引ボタンを押した瞬間にパソコンがクラッシュすることも多く、SL/TPを設定できないことがしばしばありました。また、インターネットプロバイダーの問題にも悩まされていました。これらの技術的なトラブルを避けるために、このシンプルトレーディングパネルを作ることに決めました。 使い方: このトレードツールの使い方を説明する動画をご覧ください。 パラメータ: このEAには5つの入力項目があります。 NB: 取引回数 SL: ストップロス(ピップス単位) VOL: ポジションサイズ TP: テイクプロフィット(ピップス単位) SYM: 通貨ペアの選択

2021.03.23
ディープラーニングを活用した自己適応型EA - MetaTrader 4の新たな挑戦
MetaTrader4
ディープラーニングを活用した自己適応型EA - MetaTrader 4の新たな挑戦

こんにちは、トレーダーの皆さん!今日は、私が最近開発した自己適応型のエキスパートアドバイザー(EA)についてお話ししたいと思います。 このシステムを開発するきっかけとなったのは、静的なパターンをトレードするEA「ザ・アンリアルエンジン」を作成したことでした。 こちらからチェックできます。 ただ、ディープラーニングを用いたこのEAのテストに関しては、私のPCの性能が限界で、デュアルコアの4GBのPCでは十分な結果が得られませんでした。 長期間にわたってこのEAをテストするには、スーパコンピュータが必要か、または非常に時間がかかることになります。 私のEAのブランド名は「エンチャンテス」といい、マーケットで発生する各パターンを収集し、ストップロスとテイクプロフィットを設定した仮想注文を開きます。 このEAは、リアルトレードを開始するための最適なマーケットパターンを検出します。 注意:このディープラーニングEAは、リアルトレードを開始するまでに少なくとも3ヶ月から5ヶ月の時間がかかります。 リアルアカウントで試す前に、ストラテジーテスターでテストすることをお勧めします。 このEAをテストした方は、ぜひ結果をこちらでシェアしてください! 結果はこちらから。 「ザ・アンリアルエンジン」のチャンネルもぜひご覧ください。 楽しいテストを! なお、5桁の通貨ペアで、最小時間足(H1)でのテストをお勧めします。

2021.03.13
MT4 EAテンプレート:基本機能を備えたMetaTrader 4のエキスパート
MetaTrader4
MT4 EAテンプレート:基本機能を備えたMetaTrader 4のエキスパート

MT4 EAの基本機能について みなさん、こんにちは!今回は、MetaTrader 4(MT4)で使えるEA(エキスパートアドバイザー)のテンプレートについてお話しします。このテンプレートには、トレードに必要な基本的な機能が搭載されています。 売買条件の設定 まず、買いと売りの条件は、Direction関数の中で「bool」値のパラメーターとして設定されます。以下は、デフォルトの例を示しています。    int signalConditions=3;    DashKeys[openCloseConditionIdx+1-1]="BB Status";    DashValues[openCloseConditionIdx+1-1]=Direction(ok(bbGreen) && bbGreen!=-1,ok(bbRed) && bbRed!=-1,canBuy,canSell, " at "+TimeToStr(Time[masterCandleIdx]), " at "+Time[masterCandleIdx]); ここで、canBuyとcanSellの変数は、これらの条件に基づいて真または偽に設定されます。この結果、トレード用のシグナルを次の段階に進めるトリガーが発生します。 ダッシュボードのサイズを調整 さらに、ダッシュボードにもっと多くの行を表示させたい場合は、これらの2つの配列のサイズを増やす必要があります。以下のように設定できます。 string DashKeys[8]; string DashValues[8]; これで、MT4でのトレードがよりスムーズに行えるようになりますね!

2021.01.28
フィボナッチを活用したデイトレード計画の構築 - MT4用EAの活用法
MetaTrader4
フィボナッチを活用したデイトレード計画の構築 - MT4用EAの活用法

はじめに: フィボナッチリトレースメントを使用して、堅牢なデイトレード計画を構築するための8つの効果的なステップを紹介します。この方法を使って、フィボナッチを活用し、潜在的なエントリーポイントを見つけることができます。 トレーディングプランを持つことは、アマチュアとプロを分ける大きな要因です。プロのトレーダーは常に自分のトレーディングプランを活用しています。 注意: こちらは自動で全ての取引を行い、クローズもしてくれるEAです。必要なのは、EAの入力値を設定するだけです。 使い方: 以下の動画をチェックすると、次のことが説明されています: フィボナッチリトレースメントに基づいた堅牢なトレーディングプランを構築するための8つのステップについて。 トレーダーがよく犯す一般的なミス。 トレーディングプランを適用してフィボナッチエントリーポイントを探す方法。 パラメータ: このスクリプトには5つの入力があります: M5の50%レベルでの価格:価格を入力してください。 M5の61%レベルでの価格:価格を入力してください。 M5の100%レベルでの価格:価格を入力してください。 H1の第二ターゲット:価格を入力してください。 リスク(%):このトレーディングセットアップに対するリスクの%を入力してください。 スクリーンショット:

2020.12.24
シンプルなDeMarkerインジケーターを使ったEAの作成方法【MetaTrader 4】
MetaTrader4
シンプルなDeMarkerインジケーターを使ったEAの作成方法【MetaTrader 4】

皆さん、こんにちは!今日は私が使っているシンプルなEA(エキスパートアドバイザー)についてお話しします。これは、私が今までに作った中で最も簡単なEAですので、ぜひ読んで評価してみてください。このEAはシングルペア専用で、設定メニューから時間枠、ロット数、ストップロス、テイクプロフィットなどを調整できます。extern ENUM_TIMEFRAMES TF  = PERIOD_CURRENT;// 時間枠の選択 extern int period          = 8;// DeMarkerの期間 extern double lt           = 0.01;// ロット数 extern int sl              = 100;// ストップロス extern int tp              = 100;// テイクプロフィット extern double OB           = 0.7;// オーバーソールド extern double OS           = 0.3;// オーバーバウト extern bool OPENBAR        = false;// 新しいバーのオープンプライスで取引するか秘密は、変数を3つの部分に分けていることです:1. データ | 時間枠2. 注文3. ペア//+------------------------------------------------------------------+ //-- 時間枠 | インジケーター double dmrk[5]; int signal  =-1;//-- 0 = 買い, 1 = 売り int hold = 0; //-- 注文 int ticket  =0; double lot  =0.0; int typ     =-1; //-- ペア datetime t1=0; bool newbar=false; bool entry =false; //+------------------------------------------------------------------+OnInit()関数では、DeMarkerのインジケーター配列変数を初期化し、特定のブローカー要件に応じた最小ロットサイズを確認します。//+------------------------------------------------------------------+ //|                                                                   | //+------------------------------------------------------------------+ void OnInit()   {    ArrayInitialize(dmrk,0.0);   //---       const double test_lot   = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);       if(lt<test_lot)   lt    = test_lot;   }OnTick()関数では、インジケーターの計算と売買シグナルの判断を行います。//---------------------------------------------------------------------------    signal = -1; //--------------------------------------------------------------------------- //---計算    for(int i=0; i<ArraySize(dmrk); i++)      {       dmrk[i]  =  iDeMarker(Symbol(),TF,period,i);      } //---    if(dmrk[1] > OB)      {       hold = 1;//セット      }    else       if(dmrk[1] < OS)         {          hold = -1;//セット         }       else         {          hold = 0;//リセット         }    if(hold ==  1)      {       if(dmrk[0]<OB && dmrk[1]>OB)         {          signal = OP_SELL;         }      }    if(hold == -1)      {       if(dmrk[0]>OS && dmrk[1]<OS)         {         signal = OP_BUY;         }      }買いと売りのシグナルを開くためのコードです...//---------------------------------------------------------------------------    if(signal != -1)       if(newbar==true)          if(entry==false)//ドアを開ける            {             //---             entry =true;//セット             //---             if(signal == OP_BUY)               {               ticket = OrderSend(Symbol(),OP_BUY,lt,Ask,(int)((Ask-Bid)/Point),                                   sl>0?Bid-sl*Point:0.0,                                   tp>0?Bid+tp*Point:0.0,                                   EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold),                                   EANumber,                                   0,                                   clrBlue);                signal=-1;                //hold =0;               }//リセット               }//リセットシグナル            } そして、クローズに関しては...   if(entry == true) // クローズ      {       if(OrderSelect(ticket,SELECT_BY_TICKET))         {          if(OrderCloseTime() == 0)//-- アクティブな取引            {             /*  クローズ条件 todo  */             //entry = false;            }          //else             if(OrderCloseTime() != 0)//--  手動またはSL/TP、EAでクローズ               {                entry = false;//リセットエントリー               }         }      }このEAを使えば、トレードの効率がかなり向上すると思います。ぜひ試してみてください!

2020.12.17
MetaTrader 4でのCSVファイル作成の基本 - 自作エキスパートの活用法
MetaTrader4
MetaTrader 4でのCSVファイル作成の基本 - 自作エキスパートの活用法

こんにちは、トレーダーの皆さん!私はルーカスです。この素晴らしいコミュニティに何か貢献したいと思って、こうして記事を書くことにしました。私自身は、為替や株式市場の投資家で、自分のトレードのためにエキスパートをコーディングしています。今回は、その一例を皆さんにシェアしたいと思います。少しでも役立てていただければ嬉しいです。 ここで紹介するのは、オーダーデータをCSVファイルに書き出す方法の例です。このファイルを使って後で分析を行うことができます。現在の状態ではこのエキスパートはそのままトレードには使用しないでください。この例は、どのようにしてこの機能を自分のエキスパートに実装し、さらに自分の戦略に基づいて拡張できるかを示すものです。 このエキスパートは、選択した方向にトレードを開きます。オーダーは、メニュー設定で入力したTP(テイクプロフィット)やSL(ストップロス)によって、仮想的に閉じられます。そして、「WriteCloseData」をtrueに設定すると、方向、損益、価格などのオーダーデータがCSVファイルとして端末に保存されます。 ストラテジーテスターでこのエキスパートをテストすると、ファイルはOpenDataFolder/tester/CSVexpert/CSVexampleからアクセスできます。テストを開始すると、CSVexpertというディレクトリが作成され、その中にすべてのデータが記録されたCSVexampleファイルが生成されます。 この機能を自分のエキスパートに実装したり、さらに発展させてデモ口座やリアル口座で運用する際には、MQL4/Files/CSVexpert/CSVexampleからこの作成されたファイルにアクセスできます。 ディレクトリ名やファイル名は自由に変更できますが、.csvの拡張子はそのままにしておいてください。再度申し上げますが、これはトレードにすぐに使えるものではなく、この機能の使い方の一例ですので、資金を失わないようにご注意ください!

2020.11.14
最初 前へ 10 11 12 13 14 15 16 17 18 19 20 次へ 最後