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)
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());
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)とする。
このパラメータは削除矢印の色に関係します。https://docs.mql4.com/ru/trading/OrderDelete- このパラメータを完全に削除すると、矢印が表示されなくなります。そして、どうしても矢印が必要な場合は、「変数の型」の項を読み直した方がいい。
ところで、私はコーディング(これらの概念を区別せず、プログラミングと呼ぶ人もいますが、それはコーディングです)において特に洗練されていないのは同じです。そして、参考書に手を出して、こういうものがあるんだと調べたりもしました。参考書や教科書をよく噛むようにする。原則として、ほとんどの問題はそこでカバーされています。- すべてを暗記することはできないので、経験者であってもみんなやっていることです。これらはすべて参考資料です。
clDelete - ご想像の通り、clは色、Deleteは削除 です。 削除の色です。
回答ありがとうございました。
しかし、この場合、コンパイラは別のエラーを発生させる。
DeleteOrders' - function returns no result C:\Program FilesAlpari NZ MT4 accounts/delete.mq4 (68, 5)
修正方法
皆さん、こんにちは。
テスターの保留中の注文をすべて削除する機能をキムさんの機能から使おうとしているのですが
コンパイルしようとすると、'clDelete'変数が定義されていないというエラーが出ます。
'clDelete' - variable not defined C:\Program FilesAlpari NZ MT4﹑experts﹑Positive.mq4 (94, 38)
どのように、そしてどこで定義されるべきなのか、教えてください。
ありがとうございます。
まず、ループを反転させます。
を作成し、OrderDelete() 関数に必要なものを渡します。
配列の列挙。
- あなたの「欲しい」を正しく理解すれば。
イゴール、ありがとうございました。
私の理解では、特別な機能はないので、ブルートフォース(力ずく)にならざるを得ません。
イゴール、ありがとうございました。
私の理解では、特別な機能があるわけではないので、オーバーキルでなければならない。
早速のご返信、誠にありがとうございました。
ループが展開されました。
今度は別のエラーが発生する
DeleteOrders' - この 関数は 結果を返しません。
また、OrderDelete(OrderTicket())関数は、渡されたパラメータとしてOrderTicket()以外に何が必要でしょうか?矢印の色(これは必要ない)を除けば。
あなたの(自分で書いた)DeleteOrders()関数は何も返しません。あなたのコード、つまり呼び出し方を見てください。
あなたの(自分で書いた)関数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' - この関数は結果を返しません。
何が間違っているのか、教えてください。
ありがとうございます。
関数コードの末尾に、true を返す行を挿入。
関数呼び出しを変更
R = DeleteOrders(true);
if(R ==true )
関数型は忘れていた。
機能の種類は忘れてしまった。