どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 78 1...717273747576777879808182838485...1178 新しいコメント Maxim Voronin 2013.08.19 05:37 #771 優先順位の高い順にご回答ください。棒グラフで表示するインジケータがあるのですが、どうすればいいですか?加入時や再接続時には、オプペンの値が表示されます。最初のスタートで、配列の0番目のセルをリセットする条件を設定しました。そして、私はそれをiniteに設定しました - それは助けられませんでした。起動時にリセットした - OK(最初に if(GetLastError()==6)zas[0]=0.0; という条件をつけてみたが、うまくいかない。 Alekseu Fedotov 2013.08.19 06:12 #772 dikson1976-1: 優先順位の高い順にご回答ください。棒グラフで表示するインジケータがあるのですが、どうすればいいですか?加入時や再接続時には、オプペンの値が表示されます。最初のスタートで、配列の0番目のセルをリセットする条件を設定しました。そして、私はそれをiniteに設定しました - それは助けられませんでした。起動時にリセットした - OK(最初に if(GetLastError()==6)zas[0]=0.0; という条件をつけてみたが、うまくいかない。 コードなしではやっていけない。 Alekseu Fedotov 2013.08.19 06:24 #773 ドーゾル 順番を逆にしてみてください。 for(i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); { // и тд } } Maxim Voronin 2013.08.19 06:38 #774 自分で処理した。無理しないでね。皆さん、ありがとうございました。 Paladin80 2013.08.19 06:54 #775 Dozol: 友よ、助けてくれ。選択した通貨ペアですべての注文を決済したいのですが、どうすればいいですか?以下は、私が書いたものです(EAコードの一部)。 int Zakrit_vse() ... SRCを使用してフォーラムにコードを貼り付ける ここに貼り付けておきます。もしかしたら、皆さんも何か面白い発見があるかもしれません。 int Zakrit_vse() { if (OrdersTotal()>0) { for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) continue; //--- Close pending orders if (OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP) { OrderDelete(OrderTicket(),CLR_NONE) Prov_oshibok(); return(0); } //--- Close opened position BUY if (OrderType()==OP_BUY) { RefreshRates(); OrderClose(OrderTicket(),OrderLots(),Bid,100,CLR_NONE); Prov_oshibok(); return(0); } //--- Close opened position SELL if (OrderType()==OP_SELL) { RefreshRates(); OrderClose(OrderTicket(),OrderLots(),Ask,100,CLR_NONE); Prov_oshibok(); return(0); } } } } } Mikhail Kozhemyako 2013.08.19 07:07 #776 Dozol: 友よ、助けてくれ。選択した通貨ペアですべての注文を決済したいのですが、どうすればいいですか?以下は、私が書いたものです(EAコードの一部)。 すでにすべてがあなたの前に発明されているのに、なぜ車輪を再発明するのでしょう。例えば、こんな感じです。これを忘れては いけない。 Alexey Semenov 2013.08.19 14:52 #777 助けて私は、外部チャネルインジケータ(チャネルの上限に達したとき、取引は売りのために開き、下限に達したときに閉じて、逆の順序で購入する)のためのコードを持っています。原因不明のまま、トレードを開けない、エラーが見つからない。別のチャンネルインジケータで完全に動作します。すべてのバッファが設定されていることをすぐに指定したいのですが。 そのコードを添付します。 extern double Lots = 0.1; extern string Comment = "TMA Canal2"; extern int TakeProfit = 20; extern int StopLoss = 20; extern int Slippage = 2; // スリッページ extern int Magic = 124; extern string Indi = "インジケーターデータ"; extern string TimeFrame = "現在のタイム フレーム; extern int TMAPeriod = 56; extern int Price = PRICE_CLOSE; extern double ATRMultiplier = 2.0; extern intTRPeriod = 100; extern double TrendThreshold = 0.5; extern bool ShowCenterLine = false; Double PriceHigh, PriceLow, SL, TP; int ticketです。 //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { if (Digits ==3 || Digits ==3) // 5桁のブローカーの場合 { TakeProfit *= 10; StopLoss *= 10; スリッページ *= 10; } return(0)です。 } //+------------------------------------------------------------------+ ///オープンポジションの計算 //+------------------------------------------------------------------+ int CalculateCurrentOrders(文字列シンボル) { int buys=0,sells=0; //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)ブレーク。 if(OrderSymbol()==Symbol() && OrderMagicNumber()==124) { if(OrderType()==OP_BUY) buys++; if(OrderType()==OP_SELL) sells++; } } //---- リターンオーダー数 if(buys>0) return(buys); else return(-sells); } //+------------------------------------------------------------------+ //| 開注文条件のチェック //+------------------------------------------------------------------+ void CheckForOpen() { Double PriceHigh, PriceLow; int ticketです。 //---- 新しいバーの最初のティックの間だけ取引に行く if(音量[0]>1) return; PriceHigh = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 1, 0)です。 PriceLow = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 2, 0)です。 if(Open[1]>PriceHigh || Close[1]>PriceHigh || High[1]>PriceHigh && Ask<=PriceHigh) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "TMA Canal2",124,0,Red) です。 を返します。 } //---- 買付条件 if(Open[1]<PriceLow || Close[1]<PriceLow || Low[1]<PriceLow && Bid>=PriceLow) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "TMA Canal2",124,0,Blue) です。 を返します。 } //---- } //+------------------------------------------------------------------+ //|寄り付き注文の条件をチェックする|||etc. //+------------------------------------------------------------------+ void CheckForClose() { Double PriceHigh, PriceLow; //---- 新しいバーの最初のティックの間だけ取引に行く if(音量[0]>1) return; PriceHigh = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 1, 0)です。 PriceLow = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 2, 0)です。 for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)ブレーク。 if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continue; //---- チェックオーダータイプ if(OrderType()==OP_BUY) { if(Open[1]>PriceHigh || Close[1]>PriceHigh || High[1]>PriceHigh) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); が壊れる。 } if(オーダータイプ()==OP_SELL) { if(Open[1]<PriceLow || Close[1]<PriceLow || Low[1]<PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White).Open[1]<PriceLow|Low[1]の場合。 が壊れる。 } } //---- } //+------------------------------------------------------------------+ //| 機能開始 //+------------------------------------------------------------------+ void start() { //---- 履歴と取引を確認する if(Bars<100 || IsTradeAllowed()==false) return; //---- 現在のシンボルで未決済注文を計算する if(CalculateCurrentOrders(Symbol())==0) CheckForOpen(); else CheckForClose()。 //---- } //+------------------------------------------------------------------+ Any rookie question, so 初心者の方からの質問 MQL5 MT5 MetaTrader [アーカイブ!】無料でアドバイザーを書きます。 Boris 2013.08.20 09:35 #778 ZahvatkiN:私はmql4の初心者です。SLとTPを扱うのは得意ですが、インジケータからのクロスシグナルで注文を閉じる必要があるときに問題があります。 OrderSelect()関数がどのように動作するかよく分かりません。私は順序を検索するために、我々はループを使用することを知って、それはコードにありますが、取引の過程でそれは順序がちょうど開いたとすぐに閉じていることが判明、買いを開くための条件は売りを閉じるための条件と一致しているので、これは私が理解していない行うべきではありませんそれを説明する方法、説明をしてください。 SRC ボタンは、コードの貼り付けに 使用します 書いたら、Documentationを使って 追加してください。 コピーされた方は、修正または作者にご連絡くださいWork! Mikhail Kozhemyako 2013.08.20 09:43 #779 もう一回付け加えます。何度言ったらわかるんだ、コードを挿入するには、一番上の行にあるボタンを使うんだ。 そして、コードの書き方に こだわることが望ましいのですが......。望ましいが、必須ではない。しかし、多くの人はわかりやすいコードで返事をする方が多いのです。 ZahvatkiN 2013.08.20 09:53 #780 私はmql4の初心者です。SLとTPの使い方は知っていますが、インジケータのカウンターシグナルで注文を閉じる必要があるときに問題があります。 OrderSelect()関数がどのように機能するかよく理解していません。私はループが注文を検索するために使用されていることを知っている、それはコードにありますが、取引の過程で、それはちょうど注文が開いて、すぐに閉じていることが判明し、買いを開くための条件は、売却を閉じるための条件と一致しているので、これは私が理解していない行うべきではありませんそれを説明する方法、説明をしてください。 borilunad ヒントをありがとう、それをやり直し、そして、あなたはまた、それを乱雑にしないように、引用とそのメッセージを削除することができます。 if(buy1sOpen()) { OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, "", magic, 0, Blue); } if(sell1sOpen()) { OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, "", magic, 0, Red); } for(int i=0; i<OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS); if(buy1sClose()) { OrderClose(i, lots, Ask, Slippage, Blue); } if(sell1sClose()) { OrderClose(i, lots, Bid, Slippage, Red); } } } } bool buy1sOpen() { Sm1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,1); Ss1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,1); Sm2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,2); Ss2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,2); if(Sm1>Ss1 && Sm2<Ss2 && Sm1<30) return(true); return(false); } bool sell1sOpen() { Sm1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,1); Ss1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,1); Sm2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,2); Ss2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,2); if(Sm1<Ss1 && Sm2>Ss2 && Sm1>70) return(true); return(false); } bool buy1sClose() { Sm1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,1); Ss1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,1); Sm2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,2); Ss2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,2); if(Sm1<Ss1 && Sm2>Ss2 && Sm1>70) return(true); return(false); } bool sell1sClose() { Sm1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,1); Ss1=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,1); Sm2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_MAIN,2); Ss2=iStochastic(NULL,0,13,5,5,MODE_SMA,0,MODE_SIGNAL,2); if(Sm1>Ss1 && Sm2<Ss2 && Sm1<30) return(true); return(false); } 1...717273747576777879808182838485...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
優先順位の高い順にご回答ください。棒グラフで表示するインジケータがあるのですが、どうすればいいですか?加入時や再接続時には、オプペンの値が表示されます。最初のスタートで、配列の0番目のセルをリセットする条件を設定しました。そして、私はそれをiniteに設定しました - それは助けられませんでした。起動時にリセットした - OK(最初に if(GetLastError()==6)zas[0]=0.0; という条件をつけてみたが、うまくいかない。
コードなしではやっていけない。
ドーゾル
順番を逆にしてみてください。
友よ、助けてくれ。選択した通貨ペアですべての注文を決済したいのですが、どうすればいいですか?以下は、私が書いたものです(EAコードの一部)。
int Zakrit_vse() ...
SRCを使用してフォーラムにコードを貼り付ける
ここに貼り付けておきます。もしかしたら、皆さんも何か面白い発見があるかもしれません。
友よ、助けてくれ。選択した通貨ペアですべての注文を決済したいのですが、どうすればいいですか?以下は、私が書いたものです(EAコードの一部)。
すでにすべてがあなたの前に発明されているのに、なぜ車輪を再発明するのでしょう。例えば、こんな感じです。これを忘れては いけない。
助けて私は、外部チャネルインジケータ(チャネルの上限に達したとき、取引は売りのために開き、下限に達したときに閉じて、逆の順序で購入する)のためのコードを持っています。原因不明のまま、トレードを開けない、エラーが見つからない。別のチャンネルインジケータで完全に動作します。すべてのバッファが設定されていることをすぐに指定したいのですが。
そのコードを添付します。
extern double Lots = 0.1;
extern string Comment = "TMA Canal2";
extern int TakeProfit = 20;
extern int StopLoss = 20;
extern int Slippage = 2; // スリッページ
extern int Magic = 124;
extern string Indi = "インジケーターデータ";
extern string TimeFrame = "現在のタイム フレーム;
extern int TMAPeriod = 56;
extern int Price = PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern intTRPeriod = 100;
extern double TrendThreshold = 0.5;
extern bool ShowCenterLine = false;
Double PriceHigh, PriceLow, SL, TP;
int ticketです。
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
if (Digits ==3 || Digits ==3) // 5桁のブローカーの場合
{
TakeProfit *= 10;
StopLoss *= 10;
スリッページ *= 10;
}
return(0)です。
}
//+------------------------------------------------------------------+
///オープンポジションの計算
//+------------------------------------------------------------------+
int CalculateCurrentOrders(文字列シンボル)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)ブレーク。
if(OrderSymbol()==Symbol() && OrderMagicNumber()==124)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- リターンオーダー数
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//| 開注文条件のチェック
//+------------------------------------------------------------------+
void CheckForOpen()
{
Double PriceHigh, PriceLow;
int ticketです。
//---- 新しいバーの最初のティックの間だけ取引に行く
if(音量[0]>1) return;
PriceHigh = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 1, 0)です。
PriceLow = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 2, 0)です。
if(Open[1]>PriceHigh || Close[1]>PriceHigh || High[1]>PriceHigh && Ask<=PriceHigh)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "TMA Canal2",124,0,Red) です。
を返します。
}
//---- 買付条件
if(Open[1]<PriceLow || Close[1]<PriceLow || Low[1]<PriceLow && Bid>=PriceLow)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "TMA Canal2",124,0,Blue) です。
を返します。
}
//----
}
//+------------------------------------------------------------------+
//|寄り付き注文の条件をチェックする|||etc.
//+------------------------------------------------------------------+
void CheckForClose()
{
Double PriceHigh, PriceLow;
//---- 新しいバーの最初のティックの間だけ取引に行く
if(音量[0]>1) return;
PriceHigh = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 1, 0)です。
PriceLow = iCustom (Symbol(), 0, "TMALine", TimeFrame, TMAPeriod, Price, ATRMultiplier, ATRPeriod, TrendThreshold, ShowCenterLine, 2, 0)です。
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)ブレーク。
if(OrderMagicNumber()!=124 || OrderSymbol()!=Symbol()) continue;
//---- チェックオーダータイプ
if(OrderType()==OP_BUY)
{
if(Open[1]>PriceHigh || Close[1]>PriceHigh || High[1]>PriceHigh) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
が壊れる。
}
if(オーダータイプ()==OP_SELL)
{
if(Open[1]<PriceLow || Close[1]<PriceLow || Low[1]<PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White).Open[1]<PriceLow|Low[1]の場合。
が壊れる。
}
}
//----
}
//+------------------------------------------------------------------+
//| 機能開始
//+------------------------------------------------------------------+
void start()
{
//---- 履歴と取引を確認する
if(Bars<100 || IsTradeAllowed()==false) return;
//---- 現在のシンボルで未決済注文を計算する
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose()。
//----
}
//+------------------------------------------------------------------+
私はmql4の初心者です。SLとTPを扱うのは得意ですが、インジケータからのクロスシグナルで注文を閉じる必要があるときに問題があります。 OrderSelect()関数がどのように動作するかよく分かりません。私は順序を検索するために、我々はループを使用することを知って、それはコードにありますが、取引の過程でそれは順序がちょうど開いたとすぐに閉じていることが判明、買いを開くための条件は売りを閉じるための条件と一致しているので、これは私が理解していない行うべきではありませんそれを説明する方法、説明をしてください。
SRC ボタンは、コードの貼り付けに 使用します
書いたら、Documentationを使って 追加してください。
コピーされた方は、修正または作者にご連絡くださいWork!
もう一回付け加えます。何度言ったらわかるんだ、コードを挿入するには、一番上の行にあるボタンを使うんだ。
そして、コードの書き方に こだわることが望ましいのですが......。望ましいが、必須ではない。しかし、多くの人はわかりやすいコードで返事をする方が多いのです。
私はmql4の初心者です。SLとTPの使い方は知っていますが、インジケータのカウンターシグナルで注文を閉じる必要があるときに問題があります。 OrderSelect()関数がどのように機能するかよく理解していません。私はループが注文を検索するために使用されていることを知っている、それはコードにありますが、取引の過程で、それはちょうど注文が開いて、すぐに閉じていることが判明し、買いを開くための条件は、売却を閉じるための条件と一致しているので、これは私が理解していない行うべきではありませんそれを説明する方法、説明をしてください。
borilunad ヒントをありがとう、それをやり直し、そして、あなたはまた、それを乱雑にしないように、引用とそのメッセージを削除することができます。