初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 246

 
Valeriy Yastremskiy:

ありがとうございます。試してみます。うまくいくかどうかわからないけど)

 
オープンオーダーとクローズドオーダーを持っています。
1.注文を開くとき、配列が未使用(おそらく=0)であれば、そのTicketを配列に書き込む必要があり、後でオーバーシュートでそこから報告できるようにします。
2.注文が決済された後(決済されない場合もある)、決済された注文の利益に関するレポートを開始する必要があります。ある一定の利益に達したとき,すなわち,利益+テイクプロフィット≧他より早く,あるいは最大損失で開いた注文(注文123と呼ぶ)の利益(まだ決めていない)である。
3.条件を満たした場合。「利益合計+タカ利益≧未決済注文(仮に123とする)の利益」であれば、123は決済され、配列はゼロになる(おそらく=0になる)。

1.EAを設置する際、考慮したい未決済注文と決済済み注文が既にあるのかないのか、EAは常に未決済注文なしで起動し、既に決済された注文は考慮されないのでしょうか。

2.まったくもって不明です。複数の注文がある場合、注文を決済すると合計の利益が計算され、決済された注文の利益データがあります。また、クローズしていない注文の利益に関するデータもあり、計算することができます。何と何を比較するのか。例えば、3つの注文があった場合。1がクローズ、2がクローズ中、3がオープンです。プロファイルPr1、Pr2、推定Pr3があります。私たちは、今あるものと何かを比較します。注文が成立していない時の手数料やスワップは考慮していないと理解しています。

3.実は、チケットで配列をゼロにすると、次はどうなるのでしょう?成行注文はそのまま残ります。どのように閉じるのでしょうか?

 
Oksana_Timakova:
質問:High bar aと Low bar bインジケーターラインで 結ぶには、どのように値を保持 すればよいのでしょうか?
そのために2つの配列を追加で作成する必要があるのでしょうか?
はい、バッファアレーです。
 
Valeriy Yastremskiy:
はい、バッファアレーです。
ZigZagと同じなんですね。しかも、2本描かないために何か特殊な機能を適用しなければならないのか?
 
Oksana_Timakova:
だから、『ZigZag』のような展開になるんです。しかも、2本描かないために何か特殊な機能を適用しなければならないのか?
線種は同じです。何が描かないのか理解できない。2つのバッファ配列を宣言しています。プロパティを設定するのです。線の種類、太さの色です。そして、時系列から最初の価格の高値と2番目の安値をバー単位で割り当てるのです。
 
Valeriy Yastremskiy:

1.EAを設置する際、すでに考慮したい未決済注文と決済済み注文があり、毎回未決済注文なしでEAが起動し、以前に決済した注文は考慮されないのでしょうか?

2.まったくもって不明です。複数の注文がある場合、注文を決済すると合計の利益が計算され、決済された注文の利益データがあります。そして、クローズしていない注文の利益に関するデータもあり、それを計算することができます。何と何を比較するのか。例えば、3つの注文があった場合。1がクローズ、2がクローズ中、3がオープンです。プロファイルPr1、Pr2、推定Pr3があります。私たちは、何と何を比較するのか。注文が成立していない時の手数料やスワップは考慮していないと理解しています。

3.実は、チケットで配列をゼロにすると、次はどうなるのでしょう?成行注文はそのまま残ります。どのように閉じるのですか?

改めて ))))

未決済の注文がありますが、仮に5つの注文が全てマイナスになっているとします。0.5ロットの最初の1台(123)がマイナスに陥りました。0.1ロットの新規注文(456)をオープンし、この注文のチケットはオープンした時点で配列に書き込まれます。その後、同じロットで別の注文を行い、利益を得ることもあれば、損失を被ることもある。しかし、オーダー123はネガティブでオープンなままです。注文456(これもクローズ)以降のすべてのクローズした注文の利益が、注文123の利益より高くなったら、まだ開いている最初の注文である注文123を見つけ、それをクローズして配列をゼロにするのです。

複数の未決済注文がある場合、一定の条件下でもう1つ注文を出します。仮に ordertotal>=5 の場合

受注 生産

オーダーが正常にオープンされた場合

配列が占有されていない場合

チケット456が配列に書き込ま れる

注文456は利益で決済(損益関係なし)、その後他の注文が開閉されましたが、配列にはチケット456が格納されています。


CalCloseProfi () - この関数は、クローズした注文の利益をチェックします。

チケット456(配列から取得)以上のオーダーから、マジック、買い、売りでクローズドオーダーを通過 し、その利益をカウントします。


FirstOrder() - この関数は、最初のオープンオーダーを検索します(123を検索するはずです)。

CalCloseProfi プロファイル >FirstOrderであれば、123番を閉じて配列をゼロにし、条件が満たされたときに再びそこに書き込める ようにします。


他にどう説明したらいいのかわからない)

この関数が実行される条件は、私は書くことができますが、私は配列に直面していないです。
例として、OrederTicketを開いたときに、その情報を配列に入れる方法と、その後にそれを取得する方法を教えてほしい。
ダブル配列を使って、その一部分にマジックを書くと、1つのアカウントで異なる設定で作業するときに混在しないので望ましいです(違うかも、配列は苦手です)。

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

 
makssub:

改めて ))))

未決済の注文がある、仮に5件とすると、すべてマイナスだ。一番最初の0.5ロットのもの(123)はマイナスでした。0.1ロットの新規注文(456)をオープンし、この注文のチケットはオープンした時点で配列に書き込まれます。その後、同じロットで別の注文を行い、利益を得ることもあれば、損失を被ることもある。しかし、オーダー123はネガティブでオープンなままです。注文456(これもクローズ)以降のすべてのクローズした注文の利益が、注文123の利益より高くなったら、まだ開いている最初の注文である注文123を見つけ、それをクローズして配列をゼロにするのです。

複数の未決済注文がある場合、一定の条件下でもう1つ注文を出します。仮に ordertotal>=5 の場合

受注 生産

オーダーが正常にオープンされた場合

配列が占有されていない場合

チケット456が配列に書き込ま れる

注文456は利益で決済(損益関係なし)、その後他の注文が開閉されましたが、配列にはチケット456が格納されています。


CalCloseProfi () - この関数は、クローズした注文の利益をチェックします。

チケット456(配列から取得)以上のオーダーから、マジック、買い、売りでクローズドオーダーを通過 し、その利益をカウントします。


FirstOrder() - この関数は、最初のオープンオーダーを検索します(123を検索するはずです)。

CalCloseProfi プロファイル >FirstOrderであれば、123番を閉じて配列をゼロにし、条件が満たされたときに再びそこに書き込める ようにします。


他にどう説明したらいいのかわからない)

この関数が実行される条件は、私は書くことができますが、私は配列に直面していないです。
開店時にOrederTicketという配列に情報を入れて、その後どのように取得するのか、例が欲しいです。
ダブル配列を使って、その一部分にマジックを書くと、1つのアカウントで異なる設定で作業するときに混在しないので望ましいです(違うかも、配列は苦手です)。

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

関数の条件を書きなさい。
 

こんにちは。エラー: '......'の配列が範囲外です''と表示されるのですが、なぜか教えてください。(152,41)


ticket = OrderSend (Symbol(), OP_SELL, lastlot, Bid, Slippage, 0, tpl, Magic, 0, Red);
if (ticket<1)・・・
{
Print("Sell open error");
}
if (ticket >1 &&SaveTick[1] <= 0&& SaveTick[0] == Magic)
{
FindTicket();
Print(" Ticket order:", FindTicket(), " Order Array: ", SaveTick[1], " Array Magic: ", SaveTick[0]);
} }.

int FindTicket()
{
int oldticket;
int tick=0;
ticket=0;
ArrayResize( SaveTick, 2 );
for(int cnt = OrdersTotal ()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
。{
oldticket = OrderTicket();
if (oldticket >)ticket)
{
ticket = oldticket;
tick = OrderTicket();
SaveTick[1] = tick;
SaveTick[0] = Magic;
}
}
}
}
return(tick);
}.

 
makssub #:

こんにちは。エラー: '......'の配列が範囲外です''と表示されるのですが、なぜか教えてください。(152,41)


ticket = OrderSend (Symbol(), OP_SELL, lastlot, Bid, Slippage, 0, tpl, Magic, 0, Red);
            if (ticket <1)
            {
               Print("Ошибка открытия на продажу");
            }
               if (ticket >1 && SaveTick[1] <= 0 && SaveTick[0] == Magic)
            {
               FindTicket();
               Print(" Тикет ордера: ", FindTicket(), " Массив ордера: ", SaveTick[1], " Магик массива: ", SaveTick[0]);
    }

int FindTicket()
   {
   int oldticket;
   int tick=0;
   ticket=0;
   ArrayResize( SaveTick, 2 );
   for(int cnt = OrdersTotal ()-1; cnt>=0; cnt--)
      {
      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
         {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
            {
            oldticket = OrderTicket();
            if (oldticket > ticket)
               {
               ticket = oldticket;
               tick = OrderTicket();
               SaveTick[1] = tick;
               SaveTick[0] = Magic;
               }
            }
         }
      }
   return(tick);
  }              

コードを正しく挿入する、alt Sまたはアイコンで、ヒントコード。

なぜSaveTick 配列が必要なのですか?

配列の2要素しか使っていない。関数内で宣言する場合は、グローバル変数やスタティック変数に置き換えてください。

2つの変数に配列を使用するのは賢明ではありません。

また、FindTick() 関数が呼ばれる前に配列を呼び出して いるようですが、ここでSaveTick 配列のサイズが設定されます。そして、アレイのオーバーランが発生しています。

 
動かなくなった🤖?