MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 588 1...581582583584585586587588589590591592593594595...1953 新しいコメント Ihor Herasko 2018.07.27 09:02 #5871 lil_lil:4つのポジションを一度に決済しているのですが、損切り機能で1つずつカウントするにはどうしたらよいですか? スリッページのため、同じ価格ではなく、時間も異なる可能性があります。 トライアルです。 ブローカーが反対売買を許可している場合、我々は、終値を確定するために、累積的に決済された注文の数量と同じ数量の反対売買注文を開く必要があります。すると、終値が確定し、反対注文を決済するために、のんびりと4回の取引を 行うことができるのです。 Sergey Likho 2018.07.27 15:03 #5872 マージンの計算方法を教えてください。 ブローカーによっては、ポジションごとに証拠金を徴収するところもあります。また、一部の証券会社では、売り買いの出来高の差だけで(例:口座がフルロックの場合、証拠金はゼロ) マージンの計算方法をプログラムで決定する方法は? Ghabo 2018.07.30 09:40 #5873 こんにちは。MAより上のフラクタルを探しています。 MAより上のフラクタルを探すには、あるバーを記憶し、そのバーからフラクタルを探し、それが最初に見つけたものより小さければ、真 コメントで常に虚勢を張る Comment(f_ma(Symbol(),0,i)); //+----------------------------------------------------------------------------+ bool f_ma(string sy="0",int tf=0,int nf=0) { if(sy=="" || sy=="0") sy=Symbol(); double f=0,MA=0,fr1,fr2; int d=MarketInfo(sy,MODE_DIGITS),s; if(d==0) if(StringFind(sy,"JPY")<0) d=4; else d=2; int i,k=iBars(sy,tf),kf,num_bar; for(i=nf+2; i<k; i++) { f=iFractals(sy,tf,MODE_UPPER,i); MA=iMA(NULL,0,35,0,MODE_EMA,PRICE_CLOSE,i); if(f!=0) { // kf++; if(f>MA) {num_bar=i; fr1=NormalizeDouble(f, d);continue;} } } // for(i=nf+ num_bar; i<k; i++) { f=iFractals(sy,tf,MODE_UPPER,i); if(f!=0) { fr2=NormalizeDouble(f, d); if(fr2<fr1) return(true); } } return(false); } Alexey Viktorov 2018.07.30 10:12 #5874 Ghabo:こんにちは。MAより上のフラクタルを探しています。 MAより上のフラクタルを探すには、あるバーを記憶し、そのバーからフラクタルを探し、それが最初に見つけたものよりも低ければ、真 コメントで常に虚勢を張る 問題はこの行にある if(f>MA) {num_bar=i; fr1=NormalizeDouble(f, d);continue;} フラクタルが発見され、それがMAの上にある場合、我々はそれを継続するのではなく、サイクルを中断する必要があります。最初のフラクタルが見つかったら、次のフラクタルがあり、3番目のフラクタルがあり......という具合に。 Ghabo 2018.07.30 10:14 #5875 Alexey Viktorov:問題はこの行にある フラクタルが発見され、それがMAの上にある場合、我々はそれを継続するのではなく、サイクルを中断する必要があります。最初のフラクタルが見つかったら、次のフラクタルがあり、3番目のフラクタルがあり......という具合に。 ありがとうございます。break;に置き換えた。これで常にtrueになるが、if(fr2<fr1)の 条件を満たせなくなる。 Alexey Viktorov 2018.07.30 10:50 #5876 Ghabo: ありがとうございます。break;に置き換えた。これで常にtrueになるが、if(fr2<fr1)の 条件が満たされない。そこで、関数の結果を表示する前に、この条件を追加する必要があります。何がそんなに難しいのでしょうか? Ghabo 2018.07.30 17:17 #5877 Alexey Viktorov:そこで、関数が結果を出力する前に、この条件を追加する必要があります。何がそんなに難しいんだ?条件を満たさない場合、関数はfalseを返してはいけないのでしょうか? #property strict #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- if(rates_total<100) return(0); int limit=rates_total-prev_calculated; if(limit>200)limit=200; for(int i=limit; i>0; i--) { Comment(f_ma(Symbol(),0,i)); } //--- return value of prev_calculated for next call return(rates_total); } //------------------- bool f_ma(string sy="0",int tf=0,int nf=0) { if(sy=="" || sy=="0") sy=Symbol(); double f=0,MA=0,fr1,fr2; int d=MarketInfo(sy,MODE_DIGITS),s; if(d==0) if(StringFind(sy,"JPY")<0) d=4; else d=2; int i,k=iBars(sy,tf),kf,num_bar; for(i=nf+2; i<k; i++) { f=iFractals(sy,tf,MODE_UPPER,i); MA=iMA(NULL,0,35,0,MODE_EMA,PRICE_CLOSE,i); if(f!=0) { // kf++; if(f>MA) {num_bar=i; fr1=NormalizeDouble(f, d);break;} } } // for(i=nf+ num_bar; i<k; i++) { f=iFractals(sy,tf,MODE_UPPER,i); if(f!=0) { fr2=NormalizeDouble(f, d); if(fr2<fr1) return(true); } } return(false); } Alexey Viktorov 2018.07.30 17:25 #5878 Ghabo:条件を満たさない場合、関数はfalseを返してはいけないのでしょうか? iFractalsがゼロまたは空の値を返すことを確認します。 Ghabo 2018.07.30 19:10 #5879 Alexey Viktorov:iFractalsがゼロまたは空の値を返すことを確認します。データウィンドウに 空の値がある。if(f!=0) を if(f!=EMPTY_VALUE) に置き換えたが、結果に変化はない。 Alexey Viktorov 2018.07.30 20:10 #5880 Ghabo: データウィンドウに 空の値がある。if(f!=0) を if(f!=EMPTY_VALUE) に置き換えたが、結果は変更されていない。1.チェックと言ったのであって、交換ではない。iFractals はフラクタルがないときは 0 を返します。普段から使っているわけではないので、当然、そんな雑学で未乾燥の記憶の残骸を詰まらせることはない。2.この機能は、ひどい書き方ではあるが、今でも問題なく動作する。3.最後の値はCommentに表示されます。に置き換えてください。 Print("************ ", f_ma(Symbol(), 0, 0)); そして、何回印刷されるか見てみましょう 2018.07.30 21:02:43.656 00 EURUSD.e,H1: ************ true 1...581582583584585586587588589590591592593594595...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
4つのポジションを一度に決済しているのですが、損切り機能で1つずつカウントするにはどうしたらよいですか?
スリッページのため、同じ価格ではなく、時間も異なる可能性があります。
トライアルです。
ブローカーが反対売買を許可している場合、我々は、終値を確定するために、累積的に決済された注文の数量と同じ数量の反対売買注文を開く必要があります。すると、終値が確定し、反対注文を決済するために、のんびりと4回の取引を 行うことができるのです。
マージンの計算方法を教えてください。
ブローカーによっては、ポジションごとに証拠金を徴収するところもあります。また、一部の証券会社では、売り買いの出来高の差だけで(例:口座がフルロックの場合、証拠金はゼロ)
マージンの計算方法をプログラムで決定する方法は?
こんにちは。MAより上のフラクタルを探しています。
MAより上のフラクタルを探すには、あるバーを記憶し、そのバーからフラクタルを探し、それが最初に見つけたものより小さければ、真
コメントで常に虚勢を張る
こんにちは。MAより上のフラクタルを探しています。
MAより上のフラクタルを探すには、あるバーを記憶し、そのバーからフラクタルを探し、それが最初に見つけたものよりも低ければ、真
コメントで常に虚勢を張る
問題はこの行にある
フラクタルが発見され、それがMAの上にある場合、我々はそれを継続するのではなく、サイクルを中断する必要があります。最初のフラクタルが見つかったら、次のフラクタルがあり、3番目のフラクタルがあり......という具合に。
問題はこの行にある
フラクタルが発見され、それがMAの上にある場合、我々はそれを継続するのではなく、サイクルを中断する必要があります。最初のフラクタルが見つかったら、次のフラクタルがあり、3番目のフラクタルがあり......という具合に。
ありがとうございます。break;に置き換えた。これで常にtrueになるが、if(fr2<fr1)の 条件が満たされない。
そこで、関数の結果を表示する前に、この条件を追加する必要があります。何がそんなに難しいのでしょうか?
そこで、関数が結果を出力する前に、この条件を追加する必要があります。何がそんなに難しいんだ?
条件を満たさない場合、関数はfalseを返してはいけないのでしょうか?
条件を満たさない場合、関数はfalseを返してはいけないのでしょうか?
iFractalsがゼロまたは空の値を返すことを確認します。
iFractalsがゼロまたは空の値を返すことを確認します。
データウィンドウに 空の値がある。if(f!=0) を if(f!=EMPTY_VALUE) に置き換えたが、結果は変更されていない。
1.チェックと言ったのであって、交換ではない。iFractals はフラクタルがないときは 0 を返します。普段から使っているわけではないので、当然、そんな雑学で未乾燥の記憶の残骸を詰まらせることはない。
2.この機能は、ひどい書き方ではあるが、今でも問題なく動作する。
3.最後の値はCommentに表示されます。に置き換えてください。
そして、何回印刷されるか見てみましょう