• 締切済み

TradingView Pineスクリプト if文

友達に作っていただいたスクリプトを勉強しながらカスタマイズしてみようと思いやっていますが、if文がたぶん適当すぎてうまくいかず、お力添えをお願いしたいと思います。(友達が出張中でしばらく連絡がとれないので) 下記のスクリプトの「//質問部分はこの部分↓」と書いてあるところです。 //@version=5 indicator('マイスクリプト', shorttitle='MyScript', overlay=true) //inputs onoff_A = input(true, title='MA_A ON/OFF', group = "MA1 set") MA_Type1 = input.string('SMA', '移動平均種類', options=['EMA', 'SMA'], inline="MA1", group = "MA1 set") period_A = input(title='期間', defval=10,inline="MA1", group = "MA1 set") time_f_A = input.timeframe(title='時間足A', defval='', inline="MA1_2", group = "MA1 set") Gaps1 = input.bool(defval = true, title="Gaps", inline="MA1_2", group = "MA1 set") src = input(close, title='ソース') f_ma(type, _src, _len) => float result = 0 if type == 'SMA' result := ta.sma(_src, _len) result if type == 'EMA' result := ta.ema(_src, _len) result result //質問部分はこの部分↓ if Gaps1==true MA_A = request.security(syminfo.tickerid, time_f_A, f_ma(MA_Type1, src, period_A), barmerge.gaps_on) if Gaps1==false MA_A = request.security(syminfo.tickerid, time_f_A, f_ma(MA_Type1, src, period_A), barmerge.gaps_off,barmerge.lookahead_on) //plot p1 = plot(onoff_A ? MA_A : na, color=color.new(color.blue, 0), title='MA_A') やりたいこと: Gaps1がtrue(ON)であれば、MA_A=・・・を動作させたい。 Gaps1がfale(OFF)であれば、MA_A=・・・を動作させたい。 else文でもやってみましたが結果は変わらずエラーになってしまいました。 行頭にスペースを4個入れなくてはいけないとかあるようなので、それもやりました。 よろしくお願い致します。

みんなの回答

回答No.1

まず、エラーが発生している理由は、if文の文法が正しくないためです。if文は、次のような形式で記述する必要があります。 if (条件) { // 条件が true の場合に実行される処理 } else { // 条件が false の場合に実行される処理 } if文の中で、実行したい処理をブロック {} で囲んで記述します。また、条件式の前後には括弧 () をつける必要があります。 したがって、質問部分を以下のように修正することで、正常に動作するようになります。 if (Gaps1 == true) { MA_A = request.security(syminfo.tickerid, time_f_A, f_ma(MA_Type1, src, period_A), barmerge.gaps_on); } else { MA_A = request.security(syminfo.tickerid, time_f_A, f_ma(MA_Type1, src, period_A), barmerge.gaps_off,barmerge.lookahead_on); } 修正後のif文では、条件式を括弧 () で囲み、trueの場合には {} で囲んだ処理を実行し、falseの場合には else {} ブロック内の処理を実行するようになっています。 以上が、スクリプトの修正方法です。ご参考になれば幸いです!😉

degitalman
質問者

お礼

早々に回答ありがとうございます。 Pine version5のせいでしょうか。 うまくいきませんでした。

関連するQ&A