初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 812 1...805806807808809810811812813814815816817818819...1504 新しいコメント 削除済み 2017.12.24 20:33 #8111 どうしてそんなことが可能なのでしょうか? 計算に問題があったのでは?input double T_P =0.81; input double S_L =0.35; b_ep=price-atrH1200; b_sl=b_ep-(b_ep*S_L)/100; b_tp=b_ep+(b_ep*T_P)/100; 1.05 *0.81/100 =0.008505の ように見えます。0.81%と0.35%ではなく、35%のストップと81%のテクプロフィットを提供します。SellLimit(LOT_FOR_TRADE,s_ep,symb,s_sl,s_tp,ORDER_TIME_DAY,0,"SellLimit"); BuyLimit(LOT_FOR_TRADE,b_ep,symb,b_sl,b_tp,ORDER_TIME_DAY,0,"BuyLimit");標準のSellLimit&BuyLimit ライブラリに あるメソッドPrint(s_ep,"s_ep"); Print(s_sl,"s_sl"); Print(s_tp,"s_tp");プリントショー2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.04236745s_ep2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.25084094s_sl2017.12.24 07:55:27.559 2017.01.03 16:54:17 0.521183725s_tp Vladimir Karputov 2017.12.24 22:01 #8112 SILVERPRINT:どうしてこんなことが可能なのでしょうか? 計算に問題があったのでは?1.05 *0.81/100 =0.008505の ように見えます。0.81%と0.35%ではなく、35%のストップと81%のテクプロフィットを提供します。標準のSellLimit&BuyLimit ライブラリに あるメソッドプリントショー2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.04236745s_ep2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.25084094s_sl2017.12.24 07:55:27.559 2017.01.03 16:54:17 0.521183725s_tp同じコードを書き直しますが、すべての変数が宣言されているようにします。宣言する変数の種類を見てみる。そうすれば、適切な解決策はすぐそばにあるのです。 削除済み 2017.12.24 22:11 #8113 Vladimir Karputov: 同じコードを書き直しますが、すべての変数が宣言されているようにします。宣言する変数の種類を見てみる。そうすれば、正しい解決策にたどり着けるはずです。 //+------------------------------------------------------------------+ //| | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ #include <Indicators\Trend.mqh> #include <Indicators\Oscilators.mqh> #include <Indicators\TimeSeries.mqh> #include <Trade\Trade.mqh> input double T_P =0.81; input double S_L =0.35; static int hour; int h; input int TIME_FOR_ACTION=16; input int slowma=200; input int fastwma=20; input int mahours=20; input double LOT_FOR_TRADE=0.1; string symb; MqlTick infotick; MqlDateTime currentTime; CiMA ValueofMA200; CiMA ValueofMA20; CiMA ValueofMAHour; CiATR atr; CTrade T_M; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { //--- symb=_Symbol; ValueofMA200.Create(symb,PERIOD_D1,slowma,0,MODE_SMA,PRICE_CLOSE); ValueofMA20.Create(symb,PERIOD_D1,fastwma,0,MODE_SMA,PRICE_CLOSE); ValueofMAHour.Create(symb,PERIOD_H1,mahours,0,MODE_SMA,PRICE_CLOSE); atr.Create(symb,PERIOD_H1,200); atr.BufferResize(40); ValueofMA200.BufferResize(250); ValueofMA20.BufferResize(250); ValueofMAHour.BufferResize(250); T_M.LogLevel(LOG_LEVEL_ALL); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- RefCustom(); SymbolInfoTick(symb,infotick); TimeToStruct(infotick.time,currentTime); if(1==1) { if(1==1) { double maD1200,maD120,maH120,atrH1200,price; maD1200=ValueofMA200.Main(0); maD120=ValueofMA20.Main(0); maH120=ValueofMAHour.Main(0); atrH1200=atr.Main(0); price=infotick.bid; double s_ep,s_sl,s_tp; double b_ep,b_sl,b_tp; if(1==1) { b_ep=price-atrH1200; b_sl=b_ep-(b_ep*S_L)/100; b_tp=b_ep+(b_ep*T_P)/100; T_M.BuyLimit(LOT_FOR_TRADE,b_ep,symb,b_sl,b_tp,ORDER_TIME_DAY,0,"BuyLimit"); } if(1==1) { s_ep=price+atrH1200; s_sl=s_ep+(s_ep*S_L)/100; s_tp=s_ep-(s_ep*T_P)/100; T_M.SellLimit(LOT_FOR_TRADE,s_ep,symb,s_sl,s_tp,ORDER_TIME_DAY,0,"SellLimit"); } } } } //+------------------------------------------------------------------+ //| Trade function | //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+ void RefCustom() { ValueofMA200.Refresh(); ValueofMA20.Refresh(); ValueofMAHour.Refresh(); atr.Refresh(); } //+------------------------------------------------------------------+ Vladimir Karputov 2017.12.24 22:14 #8114 SILVERPRINT: エラーコンパイルしていない。 削除済み 2017.12.24 22:18 #8115 Vladimir Karputov: エラーコンパイルできない。すみません、今試してみてください。 Vladimir Karputov 2017.12.24 22:44 #8116 SILVERPRINT: すみません、今試してみてください。おそらく一晩中でしょう。だから、あなたが何をしようとしているのか、まったく理解できないのです。ひとことお願いします。 宣言時に変数をINITIALIZEする割るときはintではなくdoubleで割る(例:数値100.0→double、数値100→int)。このスタイルは何ですか if(1==1) - ?これはモンペだ、絶対にこんな書き方はするな。最後に、最も重要なことは、コードに3行だけ残すことです。 b_ep=price-atrH1200; b_sl=b_ep-(b_ep*S_L)/100; b_tp=b_ep+(b_ep*T_P)/100;で、明示的に変数を宣言して初期化します。例えばこんな感じ。 double price=1.05848; double atrH1200=1.05168; double T_P=0.81; double S_L=0.35; double b_ep=price-atrH1200; double b_sl=b_ep-(b_ep*S_L)/100.0; double b_tp=b_ep+(b_ep*T_P)/100.0; DebugBreak(); 削除済み 2017.12.25 01:22 #8117 Vladimir Karputov: おそらく一晩で......だから、あなたがやろうとしていることは何一つ理解できないんです。ひとことお願いします。 宣言時に変数をINITIALIZEする割るときはintではなくdoubleで割る(例:数値100.0→double、数値100→int)。このスタイルは何ですか if(1==1) - ?これはモンペだ、絶対にこんな書き方はするな。最後に、最も重要なことは、コードに3行だけ残すことです。で、明示的に変数を宣言して初期化します。例えばこんな感じ。ありがとうございます。 削除済み 2017.12.25 01:27 #8118 不思議なことに、この関数はゼロ以上のオーダーがあっても動作する。if(OrdersTotal()==0)大きな違いは ありませんが、機能が働かないところでは、預金全額を開放することもあります。 Kirill Belousov 2017.12.25 04:40 #8119 SILVERPRINT: 不思議なことに、この関数は、注文がゼロより多くても動作します。大差は ないのですが、機能がうまく働かないところでは、預け入れが全部開いてしまうこともあるのです。この機能のMT5ヘルプを開き、MT5での注文が何であるかを正しく理解していることを確認します。 User_mt5 2017.12.26 19:15 #8120 F1を押しても押しても見つからない...。 他の文字の_Digitsを決定する方法を教えてください。 1...805806807808809810811812813814815816817818819...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どうしてそんなことが可能なのでしょうか? 計算に問題があったのでは?
1.05 *0.81/100 =0.008505の ように見えます。
0.81%と0.35%ではなく、35%のストップと81%のテクプロフィットを提供します。
標準のSellLimit&BuyLimit ライブラリに あるメソッド
プリントショー
2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.04236745s_ep
2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.25084094s_sl
2017.12.24 07:55:27.559 2017.01.03 16:54:17 0.521183725s_tp
どうしてこんなことが可能なのでしょうか? 計算に問題があったのでは?
1.05 *0.81/100 =0.008505の ように見えます。
0.81%と0.35%ではなく、35%のストップと81%のテクプロフィットを提供します。
標準のSellLimit&BuyLimit ライブラリに あるメソッド
プリントショー
2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.04236745s_ep
2017.12.24 07:55:27.559 2017.01.03 16:54:17 1.25084094s_sl
2017.12.24 07:55:27.559 2017.01.03 16:54:17 0.521183725s_tp
同じコードを書き直しますが、すべての変数が宣言されているようにします。宣言する変数の種類を見てみる。そうすれば、適切な解決策はすぐそばにあるのです。
同じコードを書き直しますが、すべての変数が宣言されているようにします。宣言する変数の種類を見てみる。そうすれば、正しい解決策にたどり着けるはずです。
エラーコンパイルしていない。
エラーコンパイルできない。
すみません、今試してみてください。
すみません、今試してみてください。
おそらく一晩中でしょう。だから、あなたが何をしようとしているのか、まったく理解できないのです。
ひとことお願いします。
おそらく一晩で......だから、あなたがやろうとしていることは何一つ理解できないんです。
ひとことお願いします。
ありがとうございます。
大きな違いは ありませんが、機能が働かないところでは、預金全額を開放することもあります。
不思議なことに、この関数は、注文がゼロより多くても動作します。
大差は ないのですが、機能がうまく働かないところでは、預け入れが全部開いてしまうこともあるのです。
この機能のMT5ヘルプを開き、MT5での注文が何であるかを正しく理解していることを確認します。
他の文字の_Digitsを決定する方法を教えてください。