trendstockrecommendationservice.java

来自「source code of voyager yellow page」· Java 代码 · 共 106 行

JAVA
106
字号
/*
 * RECURSION PROPRIETARY-NOT TO BE DISCLOSED OUTSIDE RECURSION, INC.
 */

/**
 * Created by twheeler on Mar 8, 2007 at 4:06:53 PM
 */
package examples.yellowpages;

import com.recursionsw.ve.Namespace;
import com.recursionsw.ve.NamespaceException;
import com.recursionsw.ve.StartupException;
import com.recursionsw.ve.Voyager;
import com.recursionsw.ve.yp.IYellowPages;
import com.recursionsw.ve.yp.ServiceDescriptionExistsException;
import com.recursionsw.ve.yp.ServiceResolutionException;
import com.recursionsw.ve.yp.YellowPages;
import com.recursionsw.ve.yp.YellowPagesException;
import com.recursionsw.ve.yp.registry.ServiceDescription;

/**
 * 
 *
 * @author twheeler
 */
public class TrendStockRecommendationService extends AbstractStockRecommendationService
{
  static TrendStockRecommendationService recommendationService; 
  
  public TrendStockRecommendationService(IExchangeBroker exchangeBroker)
  {
    super(exchangeBroker);
  }
  
  public int getRecommendation(String ticker, String exchange)
  {
    StockData data = getStockDataFor(ticker, exchange);
    int increases = 0;
    int decreases = 0;
    
    double[] closingPrices = data.getClosingPrices();
    double closingPrice = closingPrices[0];
    for(int i = 1; i < closingPrices.length; i++)
    {
      if(closingPrices[i] > closingPrice)
        increases++;
      else
        decreases++;
    }
    if(increases > decreases)
      return BUY_LONG;
    else if(increases < decreases)
      return BUY_SHORT;
    return NO_TRADE;
  }

  
  public static void main(String[] args)
  {
    String serverUrl = "8002";
    String exchangeBrokerUrl = "8000"; 
    if(args.length > 0)
    {
      serverUrl = args[0];
      exchangeBrokerUrl = args[1];
    }

    try
    {
      Voyager.startup(serverUrl);
      IExchangeBroker exchangeBroker = (IExchangeBroker) Namespace.lookup(exchangeBrokerUrl + "/ExchangeBroker");
      recommendationService = new TrendStockRecommendationService(exchangeBroker);
      IYellowPages yellowPages = YellowPages.getInstance(exchangeBrokerUrl);
      ServiceDescription serviceDescription = new ServiceDescription("StockRecommendationService", recommendationService);
      yellowPages.registerService(serviceDescription);
    }
    catch (StartupException e)
    {
      System.out.println("Exception starting Voyager Edge: " + e.getMessage());
      System.exit(1);
    }
    catch (NamespaceException e)
    {
      System.out.println("Exception binding TrendStockRecommendationService: " + e.getMessage());
      System.exit(1);
    }
    catch (ServiceDescriptionExistsException e)
    {
      System.out.println("Exception registering service with Yellow Pages: " + e.getMessage());
      System.exit(1);
    }
    catch (ServiceResolutionException e)
    {
      System.out.println("Exception creating service resolver: " + e.getMessage());
      System.exit(1);
    }
    catch (YellowPagesException e)
    {
      System.out.println("Exception obtaining Yellow Pages at " + exchangeBrokerUrl + ":" + e.getCause().getMessage());
      System.exit(1);
    }
    
    System.out.println("TrendStockRecommendationService started on " + serverUrl);
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?