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

 
STARIJ:
コメントを読む:最後の3つの注文のうち1つが利益で閉じたら、取引は停止することが判明しました

ありがとうございました。

OPEN THE NEW ORDER 例としてあげただけです。まだ取引はしていません。

ただ、この条件をどのようにコーディングすればいいのかがわかりません。

3 - 4 - 5 ......ラストオーダーがSTOPで終了した場合

どうしたらいいのかわからない。

 
Victor Nikolaev:


その差はごくわずかです。変数の1つはbooleanです。

出力はtrueまたはfalseと表示されます

例えば、4つのブーリアン変数を持っていて、それらを調べる必要がある場合、どのように変数を追加するのかがわかりません。

//+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N=15;  //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int n=0;n<N;n++)
     {
      int tmp=n;
      bool a= (bool) MathMod(tmp,2);
      bool b= (bool) MathMod(tmp,3);
      bool c= (bool) MathMod(tmp,4);
      bool d= (bool) MathMod(tmp,5);

      Print("N=",n,"; A=",a,"; B=",b,"; C=",c,"; D=",d);
     }

  }

割り算の後の余りが0より小さいか大きいか、という問題の本質は理解しているのですが、これを実現する方法がわかりません :(

 
ANDREY:

ありがとうございました。

OPEN THE NEW ORDER 例としてあげただけです。まだ取引はしていません。

ただ、この条件をどのようにコーディングすればいいのかがわかりません。

3 - 4 - 5 ......ラストオーダーがSTOPで終了した場合

ただ、何か行動を起こす必要があるのです。

何か行動を起こす前に、まずは3~4~5ポジションが連続して決済されたかを確認する必要があります。すべてがストップしているのであれば、何らかのアクションを起こす。エレメンタリー シーズン1 第1話 ワトソン
 
ANDREY: ラストオーダーだけでなく、ペナルトオーダーや ペナルトオーダーも ストップで決済されている必要がある

をクリックし、その後、別の注文を開始します。

スクリプトが添付されています - 私はそれをチェックし、それが動作する、結果が添付されています

//+-------------------------------------------------------+
//| Подсчет убыточных ордеров                 PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict
130
void OnStart()
{
  int Счет=0, Номер=OrdersHistoryTotal()-1;

  for( ; Номер>=0; Номер--)
  {
    if(!OrderSelect(Номер, SELECT_BY_POS, MODE_HISTORY)) continue;
    Alert(Номер, "  Тикет = ", OrderTicket(),"  T =",OrderOpenTime(), "  Профит = ", OrderProfit());
    if(OrderProfit()>=0) break;
    Счет++;
    if(Счет==3)
    {
      Alert("Вот тут и открываем новый ордер");
      return;
    }
  }
  Alert("Подряд идущих убыточных ордеров слишком мало");
}

以上、歴史編


そして、これは履歴を右クリックして、5月3日までの期間を選択したものです。

 
STARIJ:

スクリプトを添付します - テストしてみてください。

それが全貌です。


そして、これは履歴を右クリックして、5月3日までの期間を選択したものです

止まっているのです。しかも、信頼性がない。仕分けとは無関係にやらなければならないのです。
 

お忙しいところ申し訳ありませんが、再度質問にお答えします。

そろそろチャートを見てみようかな、mql4の目利きは できないけど。

間違った枝で質問してしまったかもしれません。

 
STARIJ:

スクリプトを添付します - テストしてみてください。

それが全貌です。


そして、これは履歴を右クリックして、5月3日までの期間を選択したものです

本当にありがとうございました。
 
Artyom Trishkin だから、ストップなんです。しかも、信頼性がない。仕分けに関係なく行うべき。

アーテム!端末の右下( )に、サーバーとのやりとりを示すインジケーター(受信キロバイト・送信キロバイト)があります。インジケーターは2318を示した。履歴の上で右クリックし、「今日」を選択(今日は日曜日だし)。履歴が空欄になった。スクリプトでは、履歴に注文がないと表示されます。 履歴を右クリックして、「すべての履歴」を選択しました。518キロバイトを追加してインジケーターが息を吹き返した。そのため、フィルターをLARGE期間に設定すると、注文がサーバーからダウンロードされます。より小さい期間を設定すると、削除されます。そのため、Last Week、Last 3 Days、Todayのいずれかに設定すると、作業スピードが上がります(処理するオーダーが少なくなります)。これは、Alert(OrdersHistoryTotal())を使ったスクリプトで簡単に確認することができます。

ソーティングについて履歴の列見出しをクリックすると、任意の列の降順・昇順で履歴を視覚的にソートすることができます。しかし、注文は 常にOrderSelect(Number, SELECT_BY_POS, MODE_HISTORY)関数を使って、履歴のSELECTED区間の先頭から選択さ れます。そして履歴では、注文が サーバーに送られた時間順に並んでいて、これが一番自然です。数値=0の場合は、SELECTされた区間の歴史の中で最も古い順番となります。OrdersHistoryTotal()-1の場合、選択された区間の履歴の中で最も新しいオーダーです。何度も確認しました。そして、それは今後も変わることはないだろう。

 
STARIJ:

アーテム!端末の右下には、サーバーとのやりとりの指標である受信キロバイト・送信キロバイトが表示されているんだ。インジケーターでは2318だった。履歴を右クリックし、「今日」を選択(今日は日曜日だし)。歴史は空っぽです。スクリプトでは、履歴に注文がないと表示されます。 履歴を右クリックして、「すべての履歴」を選択しました。518キロバイトを追加してインジケーターが息を吹き返した。そのため、フィルターをLARGE期間に設定すると、注文がサーバーからダウンロードされます。より小さい期間を設定すると、削除されます。そのため、Last Week、Last 3 Days、Todayのいずれかに設定すると、作業スピードが上がります(処理するオーダーが少なくなります)。これは、Alert(OrdersHistoryTotal())を使ったスクリプトで簡単に確認することができます。

ソーティングについて履歴の列見出しをクリックすると、任意の列の降順・昇順で履歴を視覚的にソートすることができます。しかし、注文は常にOrderSelect(Number, SELECT_BY_POS, MODE_HISTORY)関数を使って、履歴のSELECTED区間の先頭から選択されます。そして履歴では、注文がサーバーに送られた時間順に並んでいて、これが一番自然です。数値=0の場合は、SELECTされた区間の歴史の中で最も古い順番となります。OrdersHistoryTotal()-1の場合、選択された区間の履歴の中で最も新しいオーダーです。何度も確認しました。そして、このことは今後も変わることはないでしょう。

あなたはここに来たばかりで、すべてをありのままに知っているわけではありません。時間軸の検索は、最後/最初、あるいは連続した位置を特定する唯一の確実な方法であることは、300年来の経験則である。お金を扱う仕事ですからね。なるほど、自分のものだけでなく、誰かのものでもいいんですね。あなたのプログラムで間接的にでも

そして、あなたが私に話していることは、秘密でも啓示でもなく、誰もが何年も前から知っていることなのです ;)

そして、私が言いたかったのは、あなたはまだそれを理解していない......ということです。

 
Artyom Trishkin:

あなたはここに来たばかりで、すべてをありのままに知っているわけではありません。時間軸の検索は、最後/最初、あるいは連続した位置を特定する唯一の確実な方法であることは、3年来のルールである。お金を扱う仕事ですからね。なるほど、自分のものだけでなく、誰かのものでもいいんですね。あなたのプログラムで間接的にでも

そして、あなたが私に話していることは、秘密でも啓示でもなく、誰もが何年も前から知っていることなのです ;)

そして、私が言っていたことは、まだ理解されていないようですが......。

アーテム、控えめな荒らしなのか、何を書いているのかわからないのか、どっちだ!!!!

前回の記事で、仕分けについてお話されていましたね。仕分けに依存しないことを説明。

その中で、注文を選択 するタイミングについての議論を見たり、参加したりしたことがあります。結論は、注文がサーバーに送られる時間帯によって、注文データベースでソートされるようになったということでした。しかし、THEORETALLYには、開発者がこれを変更する恐れがあるのです。それでその話はおしまい。データベースの専門家として断言しますが、この不安は杞憂であり、変更することは問題外です。この問題は、開発者に照会することができます。何かを書けば、何を書いているのかがわかる。番組制作50周年の節目です。もし、私の投稿の中に、あなたの視点からの混乱があることに気づいたら、直接私に手紙を書いて ください。私が説明すれば、あなたの疑問は解消されるでしょう。しかし、ここでは口論は適切ではなさそうだ。その人に台本を書いたら、ありがとうと言われたんです。いいんじゃないですか?

先日のことですが。ユーザー名を変えただけです、スタイルで察してください。または、IPを確認し、おそらくアクセスできる...未回答のままでお願いします。