コーディングの方法は? - ページ 265 1...258259260261262263264265266267268269270271272...347 新しいコメント ccjjaa 2011.07.06 02:06 #2641 不明なサブウィンドウの番号 こんにちは、コーダー仲間 iCustomの呼び出しに関するこの問題について、どなたか解決策をお持ちではないでしょうか。考えられることはすべて試してみましたが、Expertsタブに同じメッセージが表示されたままです。 ObjectCreate関 数の不明なサブウィンドウ番号-1 CJAより Robert 2011.07.06 06:20 #2642 インジケーターのサブウィンドウの呼び出しを削除 する cja: こんにちは、コーダー仲間 iCustomコールのこの問題に対する解決策をお持ちの方はいらっしゃいますか。考えられることはすべて試してみましたが、Expertsタブに同じメッセージが表示されたままです。ObjectCreate関数のサブウィンドウ番号-1が不明です。 CJAより CJAさん、こんにちは。 私はこの問題を回避するために使用する解決策を持っています。 あなたのEAがiCustomで呼び出しているインジケータは、オブジェクトを描画するためのサブウィンドウを見つけ出そうとしています。 ほとんどの場合、インジケータは何も描画する必要がなく、インジケータの値をEAに提供するだけでよいのです。 私の解決策は、インジケーターのコピーを作成し、サブウィンドウの呼び出しとオブジェクトの描画ルーチンを削除することです。 これにより、サブウィンドウのエラーがなくなり、EAの動作も速くなります。 そして、この新しいインジケータ名をEAのiCustomステートメントで使用します。 もっと良いコードソリューションがあると思いますが、私の場合はこれでうまくいきました。 お役に立てれば幸いです。 ロバート ccjjaa 2011.07.06 11:10 #2643 iCustomサブウィンドウのエラー cosmiclifeform: こんにちは、CJA。この問題を回避するために使用する解決策があります。 EAがiCustomで呼び出しているインジケータは、オブジェクトを描画するためのサブウィンドウを探そうとしています。 ほとんどの場合、インジケータは何も描画する必要がなく、インジケータの値をEAに提供するだけでよいのです。 私の解決策は、インジケーターのコピーを作成し、サブウィンドウの呼び出しとオブジェクトの描画ルーチンを削除することです。 これにより、サブウィンドウのエラーがなくなり、EAの動作も速くなります。 そして、この新しいインジケータ名をEAのiCustomステートメントで使用します。 もっと良いコードソリューションがあると思いますが、私の場合はこれでうまくいきました。 これがお役に立てれば幸いです。 ロバート ロバートさん、ありがとうございます。あなたの提案はうまくいきましたが、ネットで検索してみましたが、うまくいく、あるいは意味のある解決策は見つからず、多くの質問と答えがあるのみでした。もう一度お礼を言わせてください。 CJAより Mladen Rakic 2011.07.07 04:31 #2644 CJA 提案なのですが、(iCustom()で呼び出されたときに)希望するウィンドウ番号を渡すパラメータを 使用してはどうでしょうか?例えば、if (ParameterWindowID>=0) then it is from iCustom else do some default code. そうすれば、他のコードから呼び出されたときでも、強制的にオブジェクトを描画させることができ、正しい場所にオブジェクトを描画することができます。 削除済み 2011.07.13 13:43 #2645 コーディングのヘルプ こんにちは、皆さん。 それは電子メールアラートレポートでBOLD textFONTypeを使用することが可能であるかどうか、誰もが私に教えてください?はい、どのように私はこれをコーディングすることができますか? ヘルプのために多くのことをありがとうございます。 Min Li 2011.07.16 22:27 #2646 codersguru: CSVファイルに保存する方法ということでしょうか?これを確認する。 ツール - .csv リーダー こんにちは、Guru。 このDLLをダウンロードできる場所は、あなたのウェブサイトのどこかにありますか?これは優れたツールだと思いますし、私よりうまく書けると思うので、悩むことはないでしょう。事前にありがとうございます。 登録は必要ですか?ダウンロードのところにあるのですが、ダウンロードの仕方がよくわかりませんでした。 削除済み 2011.07.20 22:47 #2647 クイックEA改造 こんにちは。 以下のコードを変更しようとしたのですが、EAがMT4をクラッシュさせ続けてしまうので、助けが必要です。 現在のバー(つまり注文が実行されたバー)が閉じたときに注文が終了するようにしたいのです。基本的に1つのバーを取引します。 これはオリジナルのコードで、シグナルからシグナルへトレードします。 //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY; //+------------------------------------------------------------------+ //| Signal End(Exit Buy) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderOpenPrice() > Point * TrailingStop) { if(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); if (!EachTickMode) BarCount = Bars; continue; } } } } else { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Sell) | //+------------------------------------------------------------------+ if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL; //+------------------------------------------------------------------+ //| Signal End(Exit Sell) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } //+------------------------------------------------------------------+ //| Signal Begin(Entry) | //+------------------------------------------------------------------+ //if (timeprev!=Time[0]){ // timeprev = Time[0]; if (signalup!=EMPTY_VALUE&&signalup!=0) { Order = SIGNAL_BUY; } if (signaldown!=EMPTY_VALUE&&signaldown!=0){ Order = SIGNAL_SELL; } // } //+------------------------------------------------------------------+ //| Signal End | //+------------------------------------------------------------------+ //Buy if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (100 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else { Print("Error opening BUY order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } //Sell if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (100 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else { Print("Error opening SELL order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } if (!EachTickMode) BarCount = Bars; return(0); } //+------------------------------------------------------------------+ どなたか助けていただけませんか? コーディングのヘルプ アスク! Coding help 削除済み 2011.07.21 00:06 #2648 また、このようなコードも見つかりました。 if(data!=iTime(Symbol(),0,0)) { if(signalup!=EMPTY_VALUE&&signalup!=0) { if(openpos()>0) { for(i=0;i<OrdersTotal();i++) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn) { if(OrderClose(OrderTicket(),lots,Ask,slip)) Print("short was closed"); } } } Print("try open long"); Print(Symbol()); nt=OrderSend(Symbol(),OP_BUY,lots,Ask,slip,0,0,"ab",mn,0,Green); if(nt>0) Print("long order was opened"); } if(signaldown!=EMPTY_VALUE&&signaldown!=0) { if(openpos()>0) { for(i=0;i<OrdersTotal();i++) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn) { if(OrderClose(OrderTicket(),lots,Bid,slip)) Print("long was closed"); } } } Print("try open short"); Print(Symbol()); nt=OrderSend(Symbol(),OP_SELL,lots,Bid,slip,0,0,"ab",mn,0,Red); if(nt>0) Print("short was opened"); } data=iTime(Symbol(),0,0); } //---- //---- return(0); } //+------------------------------------------------------------------+ int openpos() { int j=0; int i,n; n=OrdersTotal(); for(i=0;i<n;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) if(OrderSymbol()==Symbol()&&OrderMagicNumber()==mn&&(OrderType()==OP_SELL||OrderType()==OP_BUY)) j++; } return(j); どなたか専門家の方、どちらがより良く書かれているか教えていただけませんか? How to code? コーディングのヘルプ アスク! ixbone 2011.07.21 20:37 #2649 ペアの全注文のブレークイーブン (マジック) 皆さん、こんにちは。 あるペアのすべての注文(買い・売り)をマジックで集め、それらがブレークイーブンに達した場合、すべての注文をクローズしたいのです。 何かご指導をお願いします。 extern bool PairBreakeven=true;// 同じペア/マジックのすべての注文をペアごとにブレークイーブンする。 extern double Pairbreakevengain=6;// 均等割れを可能にするために必要な pips の利益。 extern double Pairbreakeven=3;// ブレークイーブン、注文クローズ、3ピップの利益/スリッページ double Pairmovebreakeven; if(PairBreakeven==true){。 if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven).Pairmovebreakeven(Pairbreakevengain,Pairbreakeven); CloseBuyOrders(Magic)。 CloseSellOrders(Magic); } void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){。 RefreshRates(); if(OrdersTotal()>0){。 for(int i=OrdersTotal();i>=0;i++){ オーダーセレクト(i,S,S,S,S,S)。 OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){。 を返します。 } } } } int CloseBuyOrders(int Magic){ //op_sell も似たようなものです。 int total=OrdersTotal(); for(int cnt=total-1;cnt>=0;cnt--){。 OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ (オーダーマジック番号()==マジック && オーダーシンボル()==シンボル()){) if(OrderType()==OP_BUY){ (オーダータイプ()==OP_BUY){) OrderClose(OrderTicket(),OrderLots(),Bid,3*mt)。 } } } return(0); How to code? MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 10ポイント 3.mq4 NMSS_2 2011.07.23 03:58 #2650 3次元以上のArraySort。 どなたか専門家の方に教えていただけませんか? 私は1次元または2次元の配列のために成功したarraysortを使用しようとしました。しかし、3次元で行き詰まりました。私の知る限り、arraysortは ソートのために最初の列のみを使用 します。どなたか、3次元以上の配列ソートを解決する方法をアドバイスしていただけませんか? bool Restart = true; double arraystore[20][20][20]; double ArrayActual[20] = {1.23,3.65,0.02,5.44,0.92,0.11,1.21,999.0,555.5,0.0001,44.221,1.01,0.002}; void init() { if (Restart == true) { Go(); Restart = false; } } void start() { } void Go() { for (int a = 1; a<=3; a++) { for (int b = 1; b<=6; b++) { int c = b+ (a-1)*6; arraystore[a][0] = ArrayActual[c]; arraystore[a][1] = a; arraystore[a][2] = b +a; Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]); } } ArraySort(arraystore,WHOLE_ARRAY,1,MODE_DESCEND); for ( a = 1; a<=3; a++) { for ( b = 1; b<=6; b++) { Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]); } } } How to code? Sort multiple arrays Arraybsearch problem 1...258259260261262263264265266267268269270271272...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
不明なサブウィンドウの番号
こんにちは、コーダー仲間
iCustomの呼び出しに関するこの問題について、どなたか解決策をお持ちではないでしょうか。考えられることはすべて試してみましたが、Expertsタブに同じメッセージが表示されたままです。
ObjectCreate関 数の不明なサブウィンドウ番号-1
CJAより
インジケーターのサブウィンドウの呼び出しを削除 する
こんにちは、コーダー仲間
iCustomコールのこの問題に対する解決策をお持ちの方はいらっしゃいますか。考えられることはすべて試してみましたが、Expertsタブに同じメッセージが表示されたままです。
ObjectCreate関数のサブウィンドウ番号-1が不明です。
CJAよりCJAさん、こんにちは。
私はこの問題を回避するために使用する解決策を持っています。
あなたのEAがiCustomで呼び出しているインジケータは、オブジェクトを描画するためのサブウィンドウを見つけ出そうとしています。
ほとんどの場合、インジケータは何も描画する必要がなく、インジケータの値をEAに提供するだけでよいのです。
私の解決策は、インジケーターのコピーを作成し、サブウィンドウの呼び出しとオブジェクトの描画ルーチンを削除することです。
これにより、サブウィンドウのエラーがなくなり、EAの動作も速くなります。
そして、この新しいインジケータ名をEAのiCustomステートメントで使用します。
もっと良いコードソリューションがあると思いますが、私の場合はこれでうまくいきました。
お役に立てれば幸いです。
ロバート
iCustomサブウィンドウのエラー
こんにちは、CJA。
この問題を回避するために使用する解決策があります。
EAがiCustomで呼び出しているインジケータは、オブジェクトを描画するためのサブウィンドウを探そうとしています。
ほとんどの場合、インジケータは何も描画する必要がなく、インジケータの値をEAに提供するだけでよいのです。
私の解決策は、インジケーターのコピーを作成し、サブウィンドウの呼び出しとオブジェクトの描画ルーチンを削除することです。
これにより、サブウィンドウのエラーがなくなり、EAの動作も速くなります。
そして、この新しいインジケータ名をEAのiCustomステートメントで使用します。
もっと良いコードソリューションがあると思いますが、私の場合はこれでうまくいきました。
これがお役に立てれば幸いです。
ロバートロバートさん、ありがとうございます。あなたの提案はうまくいきましたが、ネットで検索してみましたが、うまくいく、あるいは意味のある解決策は見つからず、多くの質問と答えがあるのみでした。もう一度お礼を言わせてください。
CJAより
CJA
提案なのですが、(iCustom()で呼び出されたときに)希望するウィンドウ番号を渡すパラメータを 使用してはどうでしょうか?例えば、if (ParameterWindowID>=0) then it is from iCustom else do some default code.
そうすれば、他のコードから呼び出されたときでも、強制的にオブジェクトを描画させることができ、正しい場所にオブジェクトを描画することができます。
コーディングのヘルプ
こんにちは、皆さん。
それは電子メールアラートレポートでBOLD textFONTypeを使用することが可能であるかどうか、誰もが私に教えてください?はい、どのように私はこれをコーディングすることができますか?
ヘルプのために多くのことをありがとうございます。
CSVファイルに保存する方法ということでしょうか?
これを確認する。
ツール - .csv リーダーこんにちは、Guru。
このDLLをダウンロードできる場所は、あなたのウェブサイトのどこかにありますか?これは優れたツールだと思いますし、私よりうまく書けると思うので、悩むことはないでしょう。事前にありがとうございます。
登録は必要ですか?ダウンロードのところにあるのですが、ダウンロードの仕方がよくわかりませんでした。
クイックEA改造
こんにちは。
以下のコードを変更しようとしたのですが、EAがMT4をクラッシュさせ続けてしまうので、助けが必要です。
現在のバー(つまり注文が実行されたバー)が閉じたときに注文が終了するようにしたいのです。基本的に1つのバーを取引します。
これはオリジナルのコードで、シグナルからシグナルへトレードします。
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
//if (timeprev!=Time[0]){
// timeprev = Time[0];
if (signalup!=EMPTY_VALUE&&signalup!=0)
{
Order = SIGNAL_BUY;
}
if (signaldown!=EMPTY_VALUE&&signaldown!=0){
Order = SIGNAL_SELL;
}
// }
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+どなたか助けていただけませんか?
また、このようなコードも見つかりました。
if(data!=iTime(Symbol(),0,0))
{
if(signalup!=EMPTY_VALUE&&signalup!=0)
{
if(openpos()>0)
{
for(i=0;i<OrdersTotal();i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn)
{
if(OrderClose(OrderTicket(),lots,Ask,slip))
Print("short was closed");
}
}
}
Print("try open long");
Print(Symbol());
nt=OrderSend(Symbol(),OP_BUY,lots,Ask,slip,0,0,"ab",mn,0,Green);
if(nt>0)
Print("long order was opened");
}
if(signaldown!=EMPTY_VALUE&&signaldown!=0)
{
if(openpos()>0)
{
for(i=0;i<OrdersTotal();i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn)
{
if(OrderClose(OrderTicket(),lots,Bid,slip))
Print("long was closed");
}
}
}
Print("try open short");
Print(Symbol());
nt=OrderSend(Symbol(),OP_SELL,lots,Bid,slip,0,0,"ab",mn,0,Red);
if(nt>0)
Print("short was opened");
}
data=iTime(Symbol(),0,0);
}
//----
//----
return(0);
}
//+------------------------------------------------------------------+
int openpos()
{
int j=0;
int i,n;
n=OrdersTotal();
for(i=0;i<n;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==mn&&(OrderType()==OP_SELL||OrderType()==OP_BUY))
j++;
}
return(j);
どなたか専門家の方、どちらがより良く書かれているか教えていただけませんか?
ペアの全注文のブレークイーブン (マジック)
皆さん、こんにちは。
あるペアのすべての注文(買い・売り)をマジックで集め、それらがブレークイーブンに達した場合、すべての注文をクローズしたいのです。
何かご指導をお願いします。
extern bool PairBreakeven=true;// 同じペア/マジックのすべての注文をペアごとにブレークイーブンする。
extern double Pairbreakevengain=6;// 均等割れを可能にするために必要な pips の利益。
extern double Pairbreakeven=3;// ブレークイーブン、注文クローズ、3ピップの利益/スリッページ
double Pairmovebreakeven;
if(PairBreakeven==true){。
if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven).Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);
CloseBuyOrders(Magic)。
CloseSellOrders(Magic);
}
void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){。
RefreshRates();
if(OrdersTotal()>0){。
for(int i=OrdersTotal();i>=0;i++){ オーダーセレクト(i,S,S,S,S,S)。
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){。
を返します。
}
}
}
}
int CloseBuyOrders(int Magic){ //op_sell も似たようなものです。
int total=OrdersTotal();
for(int cnt=total-1;cnt>=0;cnt--){。
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ (オーダーマジック番号()==マジック && オーダーシンボル()==シンボル()){)
if(OrderType()==OP_BUY){ (オーダータイプ()==OP_BUY){)
OrderClose(OrderTicket(),OrderLots(),Bid,3*mt)。
}
}
}
return(0);
3次元以上のArraySort。
どなたか専門家の方に教えていただけませんか?
私は1次元または2次元の配列のために成功したarraysortを使用しようとしました。しかし、3次元で行き詰まりました。私の知る限り、arraysortは ソートのために最初の列のみを使用 します。どなたか、3次元以上の配列ソートを解決する方法をアドバイスしていただけませんか?
bool Restart = true;
double arraystore[20][20][20];
double ArrayActual[20] = {1.23,3.65,0.02,5.44,0.92,0.11,1.21,999.0,555.5,0.0001,44.221,1.01,0.002};
void init()
{
if (Restart == true)
{
Go();
Restart = false;
}
}
void start()
{
}
void Go()
{
for (int a = 1; a<=3; a++)
{
for (int b = 1; b<=6; b++)
{
int c = b+ (a-1)*6;
arraystore[a][0] = ArrayActual[c];
arraystore[a][1] = a;
arraystore[a][2] = b +a;
Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]);
}
}
ArraySort(arraystore,WHOLE_ARRAY,1,MODE_DESCEND);
for ( a = 1; a<=3; a++)
{
for ( b = 1; b<=6; b++)
{
Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]);
}
}
}