MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 192 1...185186187188189190191192193194195196197198199...1953 新しいコメント Artyom Trishkin 2017.05.04 09:51 #1911 d1w4m3: 回答ありがとうございます、しかし、私は2週間ほど勉強を始めたばかりです、これをコードで実装する方法、またはどこを読めばいいのか教えてください。それともイゴール・キムによると?そして、まだそれは、その作業を開始したばかりのときに、システムに従っていない、ポジションを開く、あなたの条件は、この問題を回避することはできません。考えてみると?なぜ、問題を回避できないのか?彼が仕事を始めたとき、そして彼が以前に働いていない場合(一般に最初の実行)、彼のポジションはまだ存在せず、論理は最後に閉じたポジションが まだ単に存在しないことを示すでしょう。これは、ストップでもテイクでも決済されなかったことを意味し、その結果、シグナルでポジションを建てる許可が与えられます。 そうでしょう? d1w4m3 2017.05.04 13:27 #1912 Artyom Trishkin:考えてみると?なぜ、問題を回避できないのか?動作開始時、それまで動作していなかった場合(全くの初動)、そのポジションはまだそこになく、論理的には最後に閉じたポジション がまだそこにないだけであることがわかります。これは、ストップでもテイクでも決済されなかったことを意味し、その結果、シグナルでポジションを建てる許可が与えられます。 そうでしょう? それは、「信号で!」ということです。しかし、この条件は2本目(インジケータがバッファを変更した時点)ではなく、任意の2本目で満たされる可能性があります(もちろん、その後はすべてシステムを通して機能します)。問題は、注文を開くための条件であり、それを修正する方法が、インジケータバッファの変更後2番目のバーに?void OnTick(){uptr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n), 4)。dntr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 1, n), 4)です。if(DN_Trend()==true){ if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr){ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Sloper", Magic, 0, Red);仮{SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。if (OrderSelect(ticket, SELECT_BY_TICKET))if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("販売エラー");}} Any questions from newcomers 初心者の方からの質問 MQL4 MT4 MetaTrader [アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. Artyom Trishkin 2017.05.04 13:59 #1913 d1w4m3: まあ、要は信号がベースなんですけどね~。しかし、この条件は2本目のバー(インジケータがバッファを変更した時点)ではなく、任意の2本目のバーで満たされる可能性があります(もちろん、その後はすべてシステムで機能します)。問題は、注文を開くための条件であり、それを修正する方法が、インジケータバッファの変更後2番目のバーに?void OnTick(){uptr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n), 4)。dntr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 1, n), 4)。if(DN_Trend()==true){ if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr){ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Sloper", Magic, 0, Red);仮{SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。if (OrderSelect(ticket, SELECT_BY_TICKET))if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("販売エラー");}} コードを正しく挿入してください。メッセージエディタメニューに SRCボタンがあります。あなたの説明では何もわかりませんでした。 Alexey Viktorov 2017.05.04 14:02 #1914 d1w4m3: そこがポイントです!しかし、この条件は2本目(インジケータがバッファを変更した時点)ではなく、任意の2本目で満たされる可能性があります(もちろん、その後はすべてシステムで機能します)。問題は、注文を開くための条件であり、それを修正する方法が、インジケータバッファの変更後2番目のバーに?void OnTick() { uptr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n), 4); dntr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 1, n), 4); if(DN_Trend()==true) { if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Sloper", Magic, 0, Red); if (ticket > 0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print("Ошибка на продажу"); } }1. コードを正しく挿入すると、このようになります。開発者が思いついたのには理由があるんです...。2.微妙なヒント:Open[4]とClose[4]はインジケーターの値に対してどこにあるのか? d1w4m3 2017.05.04 15:00 #1915 extern int TakeProfit = 200; extern double Lots = 0.1; extern int StopLoss = 52; extern int Magic = 1111; extern int Slippage = 3; extern int n = 3; // На какую свечу открывать ордер //------------------------------------------------------------------ extern int LevelWLoss = 1; // Уровень безубытка extern int LevelProfit = 30; // Уровень профита //------------------------------------------------------------------ extern string Slope = "Параметры Slope"; extern int period = 163; extern int method = 3; extern int price = 0; //------------------------------------------------------------------ double uptr, SL, TP, dntr; int ticket, nd; bool fm; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if (Digits == 3 || Digits == 5) { TakeProfit *=10; StopLoss *=10; Slippage *=10; LevelWLoss *=10; LevelProfit *=10; } return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { uptr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n), 4); dntr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 1, n), 4); if(DN_Trend()==true) { if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Sloper", Magic, 0, Red); if (ticket > 0) { SL = NormalizeDouble(Bid + StopLoss*Point, Digits); TP = NormalizeDouble(Bid - TakeProfit*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print("Ошибка на продажу"); } } }//if(DN_Trend()==true) if(UP_Trend()==true) { if( CountBuy() == 0 && Ask > uptr && Open[3] > uptr && Close[3] > uptr ) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "Sloper", Magic, 0, Blue); if (ticket>0) { TP = NormalizeDouble(Ask + TakeProfit*Point, Digits); SL = NormalizeDouble(Ask - StopLoss*Point, Digits); if (OrderSelect(ticket, SELECT_BY_TICKET)) if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) Print("Ошибка на покупку"); } } }//if(UP_Trend()==true) if ( CountSell()>0 && Open[3] > uptr && Close[3] > uptr && UP_Trend()==true) { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_SELL) if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black)) Print("Ошибка"); } } } if ( CountBuy()>0 && Open[3] < dntr && Close[3] < dntr && DN_Trend()==true) { for(int i = OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderType() == OP_BUY) if(!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black)) Print("Ошибка"); } } } //+переход в безубыток+ for( int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()== Symbol() && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY) { if(OrderStopLoss()-OrderOpenPrice()<LevelWLoss*Point) { if(Bid-OrderOpenPrice()>LevelProfit*Point) { fm=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+LevelWLoss*Point,OrderTakeProfit(),CLR_NONE); } } } } if(OrderType()==OP_SELL) { if(OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*Point) { if(OrderOpenPrice()-Ask>LevelProfit*Point) { fm=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-LevelWLoss*Point,OrderTakeProfit(),CLR_NONE); } } } } } //------------ комментарии -----------------+ if(UP_Trend()) Comment("Восходящий тренд ", uptr); if(DN_Trend()) Comment("Нисходящий тренд ", dntr); } //+------------------------------------------------------------------+ int CountSell() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL) count++; } } return(count); } //+------------------------------------------------------------------+ int CountBuy() { int count = 0; for (int trade = OrdersTotal()-1; trade>=0; trade--) { if(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY) count++; } } return(count); } //+------------------------------------------------------------------+ bool UP_Trend() { if(uptr > 0 && uptr != 2147483647.0) return(true); return(false); } //+------------------------------------------------------------------+ bool DN_Trend() { if(dntr > 0 && dntr != 2147483647.0) return(true); return(false); } //+------------------------------------------------------------------+ d1w4m3 2017.05.04 15:05 #1916 お客様の条件を挿入すると、「これは、ストップまたはテイクのいずれかで閉じることができなかったことを意味し、順番にシグナルでポジションを開く許可を与える。"そして、私のシグナルは"if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr)" となります。(指標n=3のずれと合わせて)。チャート上に即座に配置すると、下降トレンドの 場合、ローソク足3本目のスタート時点からオープンし、その後、シグナルがあれば、必要に応じてオープンすることが判明した。 Artyom Trishkin 2017.05.04 18:57 #1917 d1w4m3:お客様の条件を挿入すると、「これは、ストップまたはテイクのいずれかで閉じることができなかったことを意味し、順番にシグナルでポジションを開く許可を与える。"そして、私のシグナルは"if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr)" となります。(指標n=3のずれと合わせて)。チャート上に即座に配置すると、下降トレンドの 場合、3本目のローソク足でスタートした瞬間に開き、その後、シグナルがあれば、必要に応じて開くことが判明しました。私は何も理解していません。理解できないものがあるのか?最後のポジションがストップまたはテイクでクローズされたと判断できないのですか?この条件を確認する場所がコード内に見つからないのでしょうか?あるいは、何ができないのか? それはどのように3番目のキャンドルに開くことができますか? または"それは3番目のキャンドルに開くだろう " の意味を説明してください。それはどういうことなのでしょうか? d1w4m3 2017.05.05 03:30 #1918 あるシグナルで注文が開始されるたびに、そのシグナルの種類を変数に格納するにはどうすればよいですか?私の条件は、特定のろうそくを参照していないため、バグ(私はEAを実行するとき)、順序は、トレンドの開始時に(ない指標の色の変化に応じて)開かないが、トレンドが上または下なら3ろうそくの開始時に開くと言います。 Maxim Shershnev 2017.05.05 13:31 #1919 皆さん、こんにちは。EXCElで仕事の統計を分析する方法を知りたいのですが。mt4からDDEで何が引き出せるか、またExcelに転送するための全ての許容関数はどこで手に入るか、どなたか教えてください。よろしくお願いします。 Alexey Viktorov 2017.05.05 15:14 #1920 Maxim Shershnev:皆さん、こんにちは。EXCElで仕事の統計を分析する方法を知りたいのですが。mt4からDDEで何が引き出せるか、またExcelに転送するための全ての許容関数はどこで手に入るか、どなたか教えてください。よろしくお願いします。 必要なものはすべて揃って います。.csvレコード形式は、Excelに書き込みます。 Файловые операции - Справочник MQL4 docs.mql4.com Файловые операции - Справочник MQL4 1...185186187188189190191192193194195196197198199...1953 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
回答ありがとうございます、しかし、私は2週間ほど勉強を始めたばかりです、これをコードで実装する方法、またはどこを読めばいいのか教えてください。それともイゴール・キムによると?
そして、まだそれは、その作業を開始したばかりのときに、システムに従っていない、ポジションを開く、あなたの条件は、この問題を回避することはできません。
考えてみると?なぜ、問題を回避できないのか?
彼が仕事を始めたとき、そして彼が以前に働いていない場合(一般に最初の実行)、彼のポジションはまだ存在せず、論理は最後に閉じたポジションが まだ単に存在しないことを示すでしょう。これは、ストップでもテイクでも決済されなかったことを意味し、その結果、シグナルでポジションを建てる許可が与えられます。
そうでしょう?
考えてみると?なぜ、問題を回避できないのか?
動作開始時、それまで動作していなかった場合(全くの初動)、そのポジションはまだそこになく、論理的には最後に閉じたポジション がまだそこにないだけであることがわかります。これは、ストップでもテイクでも決済されなかったことを意味し、その結果、シグナルでポジションを建てる許可が与えられます。
そうでしょう?
それは、「信号で!」ということです。しかし、この条件は2本目(インジケータがバッファを変更した時点)ではなく、任意の2本目で満たされる可能性があります(もちろん、その後はすべてシステムを通して機能します)。問題は、注文を開くための条件であり、それを修正する方法が、インジケータバッファの変更後2番目のバーに?
void OnTick()
}
まあ、要は信号がベースなんですけどね~。しかし、この条件は2本目のバー(インジケータがバッファを変更した時点)ではなく、任意の2本目のバーで満たされる可能性があります(もちろん、その後はすべてシステムで機能します)。問題は、注文を開くための条件であり、それを修正する方法が、インジケータバッファの変更後2番目のバーに?
void OnTick()
}
そこがポイントです!しかし、この条件は2本目(インジケータがバッファを変更した時点)ではなく、任意の2本目で満たされる可能性があります(もちろん、その後はすべてシステムで機能します)。問題は、注文を開くための条件であり、それを修正する方法が、インジケータバッファの変更後2番目のバーに?
1. コードを正しく挿入すると、このようになります。開発者が思いついたのには理由があるんです...。
2.微妙なヒント:Open[4]とClose[4]はインジケーターの値に対してどこにあるのか?
お客様の条件を挿入すると、「これは、ストップまたはテイクのいずれかで閉じることができなかったことを意味し、順番にシグナルでポジションを開く許可を与える。"
そして、私のシグナルは"if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr)" となります。(指標n=3のずれと合わせて)。
チャート上に即座に配置すると、下降トレンドの 場合、ローソク足3本目のスタート時点からオープンし、その後、シグナルがあれば、必要に応じてオープンすることが判明した。
お客様の条件を挿入すると、「これは、ストップまたはテイクのいずれかで閉じることができなかったことを意味し、順番にシグナルでポジションを開く許可を与える。"
そして、私のシグナルは"if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr)" となります。(指標n=3のずれと合わせて)。
チャート上に即座に配置すると、下降トレンドの 場合、3本目のローソク足でスタートした瞬間に開き、その後、シグナルがあれば、必要に応じて開くことが判明しました。
私は何も理解していません。理解できないものがあるのか?最後のポジションがストップまたはテイクでクローズされたと判断できないのですか?この条件を確認する場所がコード内に見つからないのでしょうか?
あるいは、何ができないのか?
それはどのように3番目のキャンドルに開くことができますか? または"それは3番目のキャンドルに開くだろう " の意味を説明してください。それはどういうことなのでしょうか?あるシグナルで注文が開始されるたびに、そのシグナルの種類を変数に格納するにはどうすればよいですか?
私の条件は、特定のろうそくを参照していないため、バグ(私はEAを実行するとき)、順序は、トレンドの開始時に(ない指標の色の変化に応じて)開かないが、トレンドが上または下なら3ろうそくの開始時に開くと言います。
皆さん、こんにちは。
EXCElで仕事の統計を分析する方法を知りたいのですが。
mt4からDDEで何が引き出せるか、またExcelに転送するための全ての許容関数はどこで手に入るか、どなたか教えてください。
よろしくお願いします。
皆さん、こんにちは。
EXCElで仕事の統計を分析する方法を知りたいのですが。
mt4からDDEで何が引き出せるか、またExcelに転送するための全ての許容関数はどこで手に入るか、どなたか教えてください。
よろしくお願いします。