EAが複数のペアで実行されない、助けが必要 - ページ 3 12345 新しいコメント Matt_Townsend 2016.12.12 21:14 #21 for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY) { if(fastma < slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing order ", GetLastError()); } } if(OrderType()==OP_SELL) { if(fastma > slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing Order : ", GetLastError()); } } } Sleep(300000); return(0);} 私のEaは注文の開始と終了を停止しません。私のコードの何かを無視しているようです。 EA will not run 自動売買選手権2007:エキスパートにありがちなミス 初心者の方からの質問 MQL4 MT4 MetaTrader honest_knave 2016.12.12 21:28 #22 Matt_Townsend: クローズオーダーの機能に 何か問題がありますか?はい - 注文を閉じるときは、カウントダウンする必要があります。for(int i=OrdersTotal()-1; i>=0; i--) その理由はこちらで ご覧いただけます。 Matt_Townsend 2016.12.12 21:50 #23 honest_knave:はい - 注文を閉じるときは、カウントダウンする必要があります。for(int i=OrdersTotal()-1; i>=0; i--) その理由はこちらで ご覧いただけます。 それはまだちょうど開いて、ほとんどすぐに取引を閉じている、コードに何か他の問題がありますか? William Roeder 2016.12.12 21:56 #24 Matt_Townsend: 他に何か間違ったコードはありませんか? 変数をプリントアウトして、その原因を探ってください。 Keith Watford 2016.12.13 03:12 #25 if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;なぜ続けるのか?if(OrderMagicNumber()!= MagicNumber || OrderSymbol()!= Symbol()) continue; はもっと意味がある Matt_Townsend 2016.12.13 03:27 #26 Keith Watford:if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;なぜ続けるのですか?if(OrderMagicNumber()!= MagicNumber || OrderSymbol()!= Symbol()) continue; の方がより理にかなっています。 コードに || がある場合は注文を閉じませんが、!= がある場合はより効果的に動作します。 Matt_Townsend 2016.12.13 03:37 #27 //+---------------------------------------------+//|System start |//+---------------------------------------------+int start(){ double fastma, slowma; int ticket, total; //---define Ma's fastma = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0); slowma = iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,0); total = OrdersTotal(); //---Start operations if(total < 1) { if(fastma > slowma) { ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue); if(ticket > 0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Buy order opened : ", OrderOpenPrice()); } else Print("Error opening order : ", GetLastError()); return(0); } if(fastma < slowma) { ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",0,0,Red); if(ticket > 0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ", OrderOpenPrice()); } else Print("Error opening order : ", GetLastError()); return(0); } return(0); } for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY) { if(fastma < slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing order ", GetLastError()); } } if(OrderType()==OP_SELL) { if(fastma > slowma) { if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE)) Print("Order Closed : ", OrderClosePrice()); else Print("Error Closing Order : ", GetLastError()); } } } Sleep(300000); return(0);} 現在、私のコードは、私が設定したどのペアでも取引を開始することができますが、ランダムに特定のペアが未決済取引で表示されます。私は基本的に私がそれを置くどんなペアで独立して実行するようにコードを取得しようとしてきたが、残念ながらコードは他のすべての取引が終了するまで、任意のトレードを開くことはありませんし、それが設定されているすべてのペアで取引を開くことはありません。プログラムがそうするようにする方法はないでしょうか、それは私が望む方法で売買します。 EA will not run コーディングの方法は? [Archive!] Any rookie question, William Roeder 2016.12.13 14:46 #28 ユーコード for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY)簡略化 for(int i=OrdersTotal()-1;i>=0;i--) if( OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() ){ //---Check Order Type if(OrderType()==OP_BUY) Matt_Townsend 2016.12.13 15:22 #29 whroeder1:あなたのコード for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue; //---Check Order Type if(OrderType()==OP_BUY)簡略化 for(int i=OrdersTotal()-1;i>=0;i--) if( OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() ){ //---Check Order Type if(OrderType()==OP_BUY)各チャートはまだ独立して動いていないのですが、他に何かできることはありますか?そして、そのコード化された方法は、もはや取引を終了させません。 Keith Watford 2016.12.14 03:43 #30 キース・ワトフォード 2016.12.14 03:10|122.155.43.228ban #4EN total = OrdersTotal(); //---Start operations if(total <= 1) 未決済注文をループし、EAのマジックナンバーとチャートシンボルを持つ取引のみをカウントする。 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(fastma < slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing order ", GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(fastma > slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing Order : ", GetLastError());
}
}
}
Sleep(300000);
return(0);
}
はい - 注文を閉じるときは、カウントダウンする必要があります。
はい - 注文を閉じるときは、カウントダウンする必要があります。
なぜ続けるのか?
なぜ続けるのですか?
//|System start |
//+---------------------------------------------+
int start()
{
double fastma, slowma;
int ticket, total;
//---define Ma's
fastma = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);
slowma = iMA(NULL,0,8,0,MODE_SMA,PRICE_CLOSE,0);
total = OrdersTotal();
//---Start operations
if(total < 1)
{
if(fastma > slowma)
{
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Buy order opened : ", OrderOpenPrice());
}
else
Print("Error opening order : ", GetLastError());
return(0);
}
if(fastma < slowma)
{
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",0,0,Red);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Sell order opened : ", OrderOpenPrice());
}
else
Print("Error opening order : ", GetLastError());
return(0);
}
return(0);
}
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(fastma < slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing order ", GetLastError());
}
}
if(OrderType()==OP_SELL)
{
if(fastma > slowma)
{
if(OrderClose(OrderTicket(),Lots,OrderClosePrice(),10,clrNONE))
Print("Order Closed : ", OrderClosePrice());
else
Print("Error Closing Order : ", GetLastError());
}
}
}
Sleep(300000);
return(0);
}
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
OrderSelect(i,SELECT_BY_POS)
&& OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol()
){
//---Check Order Type
if(OrderType()==OP_BUY)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MagicNumber && OrderSymbol()!=Symbol()) continue;
//---Check Order Type
if(OrderType()==OP_BUY)
OrderSelect(i,SELECT_BY_POS)
&& OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol()
){
//---Check Order Type
if(OrderType()==OP_BUY)
各チャートはまだ独立して動いていないのですが、他に何かできることはありますか?
そして、そのコード化された方法は、もはや取引を終了させません。
total = OrdersTotal();
//---Start operations
if(total <= 1)