[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 358

 
Chiripaha:

このパラメータは削除矢印の色に関係します。https://docs.mql4.com/ru/trading/OrderDelete- このパラメータを完全に削除すると、矢印が表示されなくなります。そして、どうしても矢印が必要な場合は、「変数の型」の項を読み直した方がいい。

ところで、私はコーディング(これらの概念を区別せず、プログラミングと呼ぶ人もいますが、それはコーディングです)において特に洗練されていないのは同じです。そして、参考書に手を出して、こういうものがあるんだと調べたりもしました。参考書や教科書をよく噛むようにする。原則として、ほとんどの問題はそこでカバーされています。- すべてを暗記することはできないので、経験者であってもみんなやっていることです。これらはすべて参考資料です。

clDelete - ご想像の通り、clは色、Deleteは削除 です。 削除の色です。


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

void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  
  if (sy=="") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) 
          {
          OrderDelete(OrderTicket());
          }

しかし、この場合、コンパイラは別のエラーを発生させる。

DeleteOrders' - function returns no result C:\Program FilesAlpari NZ MT4 accounts/delete.mq4 (68, 5)

修正方法


 
solnce600:

皆さん、こんにちは。

テスターの保留中の注文をすべて削除する機能をキムさんの機能から使おうとしているのですが

コンパイルしようとすると、'clDelete'変数が定義されていないというエラーが出ます。

'clDelete' - variable not defined C:\Program FilesAlpari NZ MT4﹑experts﹑Positive.mq4 (94, 38)

どのように、そしてどこで定義されるべきなのか、教えてください。

ありがとうございます。

まず、ループを反転させます。

    for (i = k - 1; i <= 0; i--)

を作成し、OrderDelete() 関数に必要なものを渡します。

 
TarasBY:

配列の列挙。

- あなたの「欲しい」を正しく理解すれば。

イゴール、ありがとうございました。

私の理解では、特別な機能はないので、ブルートフォース(力ずく)にならざるを得ません。

 
Chiripaha:

イゴール、ありがとうございました。

私の理解では、特別な機能があるわけではないので、オーバーキルでなければならない。

標準機能はありません。
 
solnce600: 'DeleteOrders' - function returns no result C:\Program FilesAlpari NZ MT4﹑Experts﹑Orders.mq4 (68, 5)

あなたの関数(自作)DeleteOrders()は何も返しません。あなたのコードを見てください - どのようにそれを呼び出すか。
 

早速のご返信、誠にありがとうございました。

ループが展開されました。

今度は別のエラーが発生する

DeleteOrders' - この 関数は 結果を返しません。

また、OrderDelete(OrderTicket())関数は、渡されたパラメータとしてOrderTicket()以外に何が必要でしょうか?矢印の色(これは必要ない)を除けば。

void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  
  if (sy=="") sy=Symbol();
   for (i = k - 1; i <= 0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) 
          {
          OrderDelete(OrderTicket());
 
TarasBY:
あなたの(自分で書いた)DeleteOrders()関数は何も返しません。あなたのコード、つまり呼び出し方を見てください。
つまり、カスタム関数コードの末尾にTRUEまたはFALSEの行があるはずなのですが?
 
TarasBY:
あなたの(自分で書いた)関数DeleteOrders()は何も返しません!あなたのコードを見てください。 。

関数コードの末尾に、true を返す行を挿入。

関数呼び出しを 変更

R = DeleteOrders(true);
if(R ==true )

Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.Ticket)です。1,iHigh( Symbol (), 0,1)-1500*Point,1,iHigh( Symbol (), 0,1),iHigh( Symbol (), 0,1)-1610*Point, "jfh",123 );//ENA
//Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.0.1,iHigh( 記号 (, 0,1)-1000*Point,1,iHigh( 記号 (, 0,1)+330*Point,iHigh( 記号 (, 0,1)-1100*Point, "jfh",123 );//ENA
if (Ticket> )0)
X=iHigh( Symbol (), 0,1);
if (OrderSelect (ot-1,SELECT_BY_POS))
if ( OrderType ()==OP_SELLSTOP)
DT = OrderOpenTime ();

}
}

return(0);

void DeleteOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ot;

。if (sy=="") sy=Symbol();
for (i = k - 1; i <= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
ot=OrderType();
if (ot==OP_SELLSTOP) {
if (OrderSymbol()==sy && (op<0 || ot==op)){
if (mn<0 || OrderMagicNumber()==mn)
{
int W = OrderDelete(OrderTicket());
if (W==true)
return(true)とする。

同じエラーを返します。

DeleteOrders' - この関数は結果を返しません

何が間違っているのか、教えてください。

ありがとうございます。

 
solnce600:

関数コードの末尾に、true を返す行を挿入。

関数呼び出しを変更

R = DeleteOrders(true);
if(R ==true )

関数型は忘れていた。

void bool DeleteOrders (string sy="", int op=-1, int mn=-1)
 
TarasBY:

機能の種類は忘れてしまった。

オールOK!!!ありがとうございました!!!!