アドバイザーを無料でお書きします - ページ 102

 
こんにちは。
EAが決済注文の価格で未決済注文を 開くことは可能か?
 
Anton Yakovlev:
良いストラテジーをお持ちで、それを共有していただけるのであれば、EAを 書くことも可能です。


バランス依存の新規注文サイズをEAに追加するにはどうすればよいですか?

たとえば

100円ロット0.05
200区画 0.1
500円ロット 0.25
1000ドル ロット 0.5
1200 ロット 0.6
1500ドル ロット 0.75
2000ドル ロット 1.0
3000ドル ロット1.5
5000ドル ロット2.5
10000 ロット 5

 
liljon:


残高に応じて、EAに開く注文のサイズを追加するにはどうすればよいですか?

イッグ

$100 ロット 0.05
$200 ロット 0.1
$500 ロット 0.25
$1000 ロット 0.5
$1200 lot 0.6
$1500 lot 0.75
$2000 lot 1.0
$3000 lot 1.5
$5000 lot 2.5
$10000 lot 5

残高の割合 Percent=5 などの指定が可能です。

double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Value.1区画

double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);//Min.Lot サイズ

double Step =MarketInfo(Symbol(),MODE_LOTSTEP);// ステップの変化量

double Free =AccountFreeMargin();

lots=MathFloor(Free*Percent/100/One_Lot/Step)*Step。

if (lots<Min_Lot) lots=Min_Lot;

 
kim9622:
皆さん、こんにちは。
MT4には複数のチャート(3~6、異なる通貨ペアでも可)があり、それぞれにEAが搭載されています。

タスク
オープンオーダーはありません。任意のEA(1または2、できれば数量を選択)で注文を開始する場合、他のすべてのEAは自動売買を無効にする必要があります。すべての未決済注文が決済された後、他のすべてのExpert Advisorで自動売買を有効にする必要があります。最大2つのEAが利用できる条件であれば、2つのEAのいずれか(または両方)が注文を決済すると、無効になっているすべてのEAの自動売買が開始されます。
この問題を解決する方法を教えてください。もしかしたら、すでに似たようなソフトがあるかもしれません。

グローバル変数 で解決できる
で、実行中の各EAはそれに応じてコードを修正する必要があります。

例:マーケットに注文があった場合、グローバル変数がアクティブになる。

これを見たEAはすべて取引しない
 

皆さん、こんにちは。

どなたか、シンプルな非シンジケートEAを書ける方はいらっしゃいませんか !?

 
volodymyr67:

皆さん、こんにちは。

どなたか、シンプルな非シンジケートEAを書ける方はいらっしゃいませんか !?

問題なし!(笑EAは、指定された数量で買いまたは売りのポジションを建てます。

//+------------------------------------------------------------------+
//|                                            Open One Position.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.001"
//---
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
//--- input parameters
input double               InpLots     = 10.0;              // Lots
input ENUM_POSITION_TYPE   InpPosType  = POSITION_TYPE_BUY; // Open position 
input ulong                InpMagic    = 208060783;         // Magic number
//---
ulong  ExtSlippage=10;                // Slippage
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   m_trade.SetExpertMagicNumber(InpMagic);
   m_trade.SetMarginMode();
   m_trade.SetTypeFillingBySymbol(m_symbol.Name());
   m_trade.SetDeviationInPoints(ExtSlippage);
//---
   if(InpPosType==POSITION_TYPE_BUY)
      m_trade.Buy(InpLots);
   else if(InpPosType==POSITION_TYPE_SELL)
      m_trade.Sell(InpLots);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//---

  }
//+------------------------------------------------------------------+
ファイル:
 

数百ルーブルという 象徴的な金額を支払う覚悟はある。


Expert AdvisorはBOTHペアの指定スプレッドが両通貨ペアの設定で指定したスプレッドより低いか等しい場合にのみ 異なる指示の 2つの注文を同時に(各通貨ペアで1つずつ)開きます。一方の通貨ペアで動作し、他方の通貨ペアで動作しない場合、どこにも開かない

注文開始後は新規注文を行わず、ロボット設定で指定した2つの注文の合計利益を待つだけです。常に2つの異なる指示の 注文が開かれるだけ です。

注文終了後、ロボットは再び両通貨ペアのスプレッドを監視し、スプレッドが 設定で指定した 値より既に低いか等しい場合に再度注文を出 します。

実行時間(火曜日00-00に始まり、木曜日23-59に終わる)を設定できれば最高です。

EAは(両方のペアで必要なスプレッドが表示されたら)1つの買い注文を開き、2つ目は売り(またはその逆は重要ではありません)、利益を待って、両方の注文を閉じてから再スタート します。2 つの注文が開いている場合、新しい注文は開きません。 Expert Advisor は、設定で設定された利益を待っています。


EAがどのような通貨ペアで設定されていても、設定で指定された2つの通貨ペアでしか機能しません。

パラメータ

1.最初の通貨ペア名(EURUSD)

2.最初のペアのロット(0.1)

3.最初の注文タイプ(買い)

4.最初のペアの注文方法(売り最初のIn PIPS 5.の最小スプレッドは、Expert Advisorがトリガーする(2)

5.2つ目の通貨ペア名(GBPUSD)

6.Lot two (0.1)

7.注文の種類 2番目 (売り)

8. 2番目の最小スプレッド アドバイザーがトリガーするPIPSAH 5サインで (2)

9.両方のペアの合計利益を入金通貨(またはパーセント。それが簡単であれば)一度に両方の注文を閉じる

10.取引開始時間 火曜日 00-00

11.閉館時間 木曜日 23-59

 
Vladimir Karputov:

簡単!Expert Advisorは、指定された数量で買いまたは売りのポジションを建てます。

高速化ありがとうございました

しかし、私はそれがバーのオープニングで注文を開く必要があり、利益を取って、新しいバーの オープニングを待っています。

ファイル:
image.png  68 kb
 

こんにちは親愛なるプログラマ、私は注文を開くために指標に基づいてEAを書く ように依頼しますが、1キャッチ22があります、我々はEAがシグナルインジケータだけでなく、特定の時間(例えば、指標は、キャンドル形成の初めに信号を与えた場合、15:00から15:01に言うこの信号が有効とみなされるとEAは注文を開きます)(信号の指標は、15時02分を受け取った場合は、信号は有効ではなく、理事会が開いていない)であろうと必要。

ファイル:
 
親愛なるコーダーの皆さん、お待たせしました。このインジケータのEAを作成していただけないでしょうか。エキスパートアドバイザーは、矢印からのシグナルで注文を開き、次のローソク足で、注文の実行時間は1ローソク足、つまり、次のローソク足で開き、閉じます。停止は必要ありません。そして、すべてのインジケータの 設定がEAに配置されました。ありがとうございました。
ファイル: