MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 221

 
ax00071: ログには、buy2 をクローズしようとした、orderclose関数の 不明なチケットが表示されています。仕事中なので記憶によるコード

ああ。仕事中なので、記憶を頼りに書いています。Try: とTicketはorderclose reportのものと比較します。テスターでは、0, 1, 2, 3, ...と表示されるようです。

RefreshRates(); // Это обязательно ДО OrderSelect() и лучше в таком виде: while (! RefreshRates()) ;
for(int i=OrdersTotal()-1; i>=0; i--)
  if (! OrderSelect(i,SELECT_BY_POS)) continue;
  Ticket=OrderTicket(); 
  Lot   =OrderLots();

  // Сообщение о попытке следует выдавать ДО ее осуществления, т.к. попытка может что-то изменить
  Alert ("Попытка закрыть Buy Ticket=",Ticket, "  Lot=",Lot);  // Кажется Alert в тестере бестолкова, попробуйте Print
  Ans=OrderClose(Ticket,Lot,OrderClosePrice() ... );
}

 
novikov433:

EAの作り方を勉強したい。 もしかしたら、マーケットが変わって、アルゴリズムを少し変えるなど、もっとお金を払わなければならないかもしれない?

本当にどのフクロウのコンストラクターでTSを作れるのかわかりませんが、それよりも特定の場所でストップを作るとか、特定の日に取引するように注文するとか、基本的な機能を理解したいです。

私は、コンストラクタでも1,2,3などをどうすればいいのか、なぜこの順番ですべてを矢印でつなぐことが重要なのか、まったくわかりません。 誰がAからZまでML4のトレーニングを提供し、なぜこのようになるのかを詳しく何も説明しないコースを作るインターネット戦士のようではありません、つまり、自分で新しい何かを作ることはありません、あなたはただ彼らのコードをコピーしなければなりません....ピラミッド、ダイナミックロット、スマートストップはプロに任せて、私の仕事は、必要なフィルターをダウンロードして、トレンド形成の本質を理解することです。ご協力ありがとうございました。

必要なのは、用意されているドキュメントと、それを読んで理解する能力だけです。一回目から理解できなかった場合は、もう何回か、できればゆっくりとしたペースで読み、脳が読んだ意味を認識する時間を作ってください。

そしてその後は、イマジネーションがフリーハンドになるのです。

条件付きで注文を出したいドキュメントの「取引関数」を開いて、注文を開く関数を 探し、構文に従って書き込んでください...。

あ、そうだ...条件を満たす必要があります。...「演算子」の項目を開き、「条件付き if-else 文」を読んで、必要な条件を書き込んでください。

それが終わったら、ドキュメントを最初から最後まで読んで、その言語に何があるのか、何が手に入るのかを把握するんです。

Торговые функции - Справочник MQL4
Торговые функции - Справочник MQL4
  • docs.mql4.com
Торговые функции - Справочник MQL4
 
また私)
1日にn個以上の注文を開けないようにする関数を書いた。
現在、この機能は預かり金を排出しています。つまり、すべてのティックで注文が開始されます。

またどこで失敗したんだろう)

int OrderMax = 3; // 1日の間に開くことができる注文の 最大数。
void OpenOrders()
{
for (int i = 1; i <= 5; i++)
{
if (DayOfWeek() == i)
{
int count_max = 0;
if (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
count_max++;
}
}
}
}
}
 
みんな、1つのEAで他のペアの注文を出すことは可能ですか?例えば、EURAUDと GBPUSDのペアで取引を開始することを条件に、EURAUDにのみ 対応するEAがあります。可能であれば、どのような条件であるべきでしょうか?
 
ivan-baaton:
また私:)
私は、1日にn個以上の注文を出すことができる関数を書きました。
今、この機能は預金を失っている、つまり、注文はすべてのティックで開かれている。

またどこで失敗したんだろう)

int OrderMax = 3; // 1日の間に開くことができる注文の 最大数。
void OpenOrders()
{
for (int i = 1; i <= 5; i++)
{
if (DayOfWeek() == i)
{
int count_max = 0;
if (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
count_max++;
}
}
}
}
}

私見では、このやり方はまったく論理的ではありません。なぜ曜日を定義するのか?もし、「今日は○○件以上の注文を出さない」という条件であれば、日にちは関係ないのでしょうか?

今日開いた注文をカウントして、コンディションに適切な条件を配置する方が合理的だと思います。

                     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
                     count_max++; 
注文の開始日の定義が欠落している。
 

Rustam Bikbulatov:
Ребята, можно ли с помощью одного советника открывать ордера на других парах? Например Советник только стоит на паре EURAUD и при условии открытии открывается сделка на парах EURAUD и GBPUSD. Какое должно быть условие если будет возможность?

できるのです。

テスターのみ動作しません。

int  OrderSend(
   string   symbol,              // символ
   int      cmd,                 // торговая операция
   double   volume,              // количество лотов
   double   price,               // цена
   int      slippage,            // проскальзывание
   double   stoploss,            // stop loss
   double   takeprofit,          // take profit
   string   comment=NULL,        // комментарий
   int      magic=0,             // идентификатор
   datetime expiration=0,        // срок истечения ордера
   color    arrow_color=clrNONE  // цвет
   );
 
Alexey Viktorov:
はい、そうです。

テスターのみ動作しません。


カンマや&&はどのように羅列するのですか?
 
Rustam Bikbulatov:

カンマか&&か、どうやって列挙 する?

彼ら のは、登場人物のリストか何か?

各OrderSendは それぞれ1文字である。コンマとかがない...。

 
Alexey Viktorov:

彼ら のは、登場人物のリストか何かか?

各OrderSendはそれぞれ1文字である。コンマとかがない...。


リストペア
 
LRA:

ああ。仕事中なので、記憶を頼りに書いています。Try: とチケットは、注文がレポートにあるものと比較します。テスターでは、0, 1, 2, 3, ...と表示されるようです。

ご指摘ありがとうございます ))取引自体は数時間前に終了している。で、22時になったら、Expert Advisorはすでに決済されている注文を決済するための注文を出し始めた・・・。