
カブロボコンテストのプログラムで、以下のようなプログラムを作りましたが、コンパイルしたら、シンボル:holding シンボルを解決できませんというエラーが出ます。どうしたらエラーを直せるでしょうか?(字数制限のため、一部プログラムを削除していますが、質問にはあまり関係ないと思います。)
import java.util.*;
import jp.kaburobo.robot.Robot;
import jp.kaburobo.investment.*;
import jp.kaburobo.information.*;
import jp.kaburobo.util.*;
import jp.kaburobo.technical.*;
public class RSIRobot2 implements Robot{
public void run (InvestmentAgent investmentAgent){
for(int i=0;i<stocks.length;i++){
List indexList = informationManager.getIndexInformation(stocks[i],Time.getTime(),-14);
IndexInformation[] indexinfo= (IndexInformation[])indexList.toArray(new StockMarketInformation[0]);
List rsiList = technical.getRSI(indexinfo,null,14);
RSI rsi = (RSI)rsiList.get(rsiList.size()-1);
StockOrder stockOrder = null;
if(rsi.getRsi()>0){
if(rsi.getRsi()>70){
stockOrder = new SimpleStockOrder(stocks[i],StockOrder.SELL);}
else if(rsi.getRsi()<20){
stockOrder = new SimpleStockOrder(stocks[i],stockOrder.BUY);}
else{
Holding holding = (Holding)holdingMap.get(stocks[i]);}
if(holding != null){
if(holding.getNumber()>0){stockOrder = new SimpleStockOrder(stocks[i],StockOrder.SELL,holding.getNumber());}
else{stockOrder = new SimpleStockOrder(stocks[i],stockOrder.BUY,-holding.getNumber());}
}
break;
}
if(stockOrder != null){
investmentAgent.order(stockOrder);
}
}
}
No.2ベストアンサー
- 回答日時:
>if文に入る前にholdingの宣言をすれば良いですよね?
解決方法としてはそれで良いと思います。
「if(rsi.getRsi()>70){」の前で「Holding holding = null;」とすれば大丈夫です。
ただ、今回のエラーの原因はelseブロックを通るか否かの問題ではなく、変数holdingのスコープ(有効範囲)の問題です。holdingのスコープの外でholdingの値を参照している事が問題なのです。変数のスコープについて勉強する事をお勧めします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- その他(プログラミング・Web制作) pythonのpygameでキャラクターが滑らかに動きません。 1 2022/06/18 14:41
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
何故かNoFoundClassExceptionに...
-
アプレットの動作テストができない
-
時間のフォーマット
-
画像の位置指定の数字を変えて...
-
アプレットでスクロールバーを...
-
main()メソッドが無いコード
-
JavaでWindowsのタスクトレイに...
-
JFrame の再表示を禁止したい。
-
Java初心者ですが・・・
-
読み込んだ行からランダムに選ぶ
-
Eclipse3.4でJavaアプリ実行時...
-
SWINGでアプレット使えますか?
-
javaの質問です ボタンを右、...
-
Timer schedule
-
カブロボコンテストのプログラム
-
かなり初歩的なプログラミング...
-
javaのプログラムについてなの...
-
現在AndroidSDKにてゲームを製...
-
二次元配列について
-
Javaプログラムの繋げ方について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
<forEach> 内で供給された "ite...
-
干支の計算で。。。
-
importするには java.io.*; imp...
-
Javaを使ってデジタル時計を作...
-
シャットダウンフックが呼ばれない
-
setAttribute(String, int)は適...
-
Selenium IDEでexportしたコー...
-
JAVA 乱数で同じ数字を出さな...
-
文字列を数式に
-
Java での グローバルIP取得
-
importとextendsの用い方の違い...
-
文字サイズが可変のラベル
-
ColabでのPytorchのエラー
-
Swingなしで画像ファイルロード
-
ActionForm form にnullが入っ...
-
GridBagLayoutについての質問
-
ファイル名を動的に生成したい
-
Xercesを使ったjavaでのXML解析
おすすめ情報