List of usage examples for org.joda.time DateTime DateTime
public DateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
ISOChronology
in the default time zone. From source file:UpdateCustomer.java
private int getDaysDiff(java.util.Date startdate, java.util.Date enddate) { DateTime start = new DateTime(startdate.getYear(), startdate.getMonth(), startdate.getDay(), 0, 0, 0, 0); DateTime end = new DateTime(enddate.getYear(), enddate.getMonth(), enddate.getDay(), 0, 0, 0, 0); int days = Days.daysBetween(start, end).getDays(); return days;//from w w w .j av a 2 s . com }
From source file:AddCustomer.java
private int getDaysDiff(java.util.Date startdate, java.util.Date enddate) { DateTime start = new DateTime(startdate.getYear(), startdate.getMonth(), startdate.getDay(), 0, 0, 0, 0); DateTime end = new DateTime(enddate.getYear(), enddate.getMonth(), enddate.getDay(), 0, 0, 0, 0); int days = Days.daysBetween(start, end).getDays(); return days;//from w w w . j a v a 2s .c o m }
From source file:adwords.axis.v201502.extensions.AddSiteLinks.java
License:Open Source License
public static void runExample(AdWordsServices adWordsServices, AdWordsSession session, Long campaignId) throws ApiException, RemoteException { // Get the CustomerService. CustomerServiceInterface customerService = adWordsServices.get(session, CustomerServiceInterface.class); Customer customer = customerService.get(); DateTimeZone customerTimeZone = DateTimeZone.forID(customer.getDateTimeZone()); // Get the CampaignExtensionSettingService. CampaignExtensionSettingServiceInterface campaignExtensionSettingService = adWordsServices.get(session, CampaignExtensionSettingServiceInterface.class); // Create the sitelinks. SitelinkFeedItem sitelink1 = createSiteLinkFeedItem("Store Hours", "http://www.example.com/storehours"); // Show the Thanksgiving specials link only from 20 - 27 Nov. SitelinkFeedItem sitelink2 = createSiteLinkFeedItem("Thanksgiving Specials", "http://www.example.com/thanksgiving"); // The time zone of the start and end date/times must match the time zone of the customer. DateTime startTime = new DateTime(DateTime.now().getYear(), 11, 20, 0, 0, 0, customerTimeZone); sitelink2.setStartTime(startTime.toString("yyyyMMdd HHmmss ZZZ")); DateTime endTime = new DateTime(DateTime.now().getYear(), 11, 27, 23, 59, 59, customerTimeZone); sitelink2.setEndTime(endTime.toString("yyyyMMdd HHmmss ZZZ")); // Show the wifi details primarily for high end mobile users. SitelinkFeedItem sitelink3 = createSiteLinkFeedItem("Wifi available", "http://www.example.com/mobile/wifi"); // See https://developers.google.com/adwords/api/docs/appendix/platforms for device criteria // IDs.//from www .j a va2 s . c o m FeedItemDevicePreference devicePreference = new FeedItemDevicePreference(30001L); sitelink3.setDevicePreference(devicePreference); // Show the happy hours link only during Mon - Fri 6PM to 9PM. SitelinkFeedItem sitelink4 = createSiteLinkFeedItem("Happy hours", "http://www.example.com/happyhours"); sitelink4.setScheduling(new FeedItemScheduling(new FeedItemSchedule[] { new FeedItemSchedule(DayOfWeek.MONDAY, 18, MinuteOfHour.ZERO, 21, MinuteOfHour.ZERO), new FeedItemSchedule(DayOfWeek.TUESDAY, 18, MinuteOfHour.ZERO, 21, MinuteOfHour.ZERO), new FeedItemSchedule(DayOfWeek.WEDNESDAY, 18, MinuteOfHour.ZERO, 21, MinuteOfHour.ZERO), new FeedItemSchedule(DayOfWeek.THURSDAY, 18, MinuteOfHour.ZERO, 21, MinuteOfHour.ZERO), new FeedItemSchedule(DayOfWeek.FRIDAY, 18, MinuteOfHour.ZERO, 21, MinuteOfHour.ZERO) })); // Create your campaign extension settings. This associates the sitelinks // to your campaign. CampaignExtensionSetting campaignExtensionSetting = new CampaignExtensionSetting(); campaignExtensionSetting.setCampaignId(campaignId); campaignExtensionSetting.setExtensionType(FeedType.SITELINK); ExtensionSetting extensionSetting = new ExtensionSetting(); extensionSetting.setExtensions(new ExtensionFeedItem[] { sitelink1, sitelink2, sitelink3, sitelink4 }); campaignExtensionSetting.setExtensionSetting(extensionSetting); CampaignExtensionSettingOperation operation = new CampaignExtensionSettingOperation(); operation.setOperand(campaignExtensionSetting); operation.setOperator(Operator.ADD); // Add the extensions. CampaignExtensionSettingReturnValue returnValue = campaignExtensionSettingService .mutate(new CampaignExtensionSettingOperation[] { operation }); if (returnValue.getValue() != null && returnValue.getValue().length > 0) { CampaignExtensionSetting newExtensionSetting = returnValue.getValue(0); System.out.printf("Extension setting with type = %s was added to campaign ID %d.%n", newExtensionSetting.getExtensionType().getValue(), newExtensionSetting.getCampaignId()); } else { System.out.println("No extension settings were created."); } }
From source file:arjdbc.util.DateTimeUtils.java
License:Open Source License
@SuppressWarnings("deprecation") public static IRubyObject newTime(final ThreadContext context, final Date date) { //if ( time == null ) return context.nil; final int year = date.getYear() + 1900; final int month = date.getMonth() + 1; final int day = date.getDate(); DateTime dateTime = new DateTime(year, month, day, 0, 0, 0, 0); return RubyTime.newTime(context.runtime, dateTime); }
From source file:bo.com.edusoft.basic.Util.java
public static Integer getLastDayOfMonth(Integer month, Integer year) { write("MainApp:getLastDayOfMonth(month[" + month + "],year[" + year + "])"); //Integer currentMonth = getCurrentMonth(); //Integer year = 2017; DateTime currentMonthYear = new DateTime(year, month, 1, 0, 0, 0, 0); write("currentMonthYear[" + currentMonthYear + "]"); write(String.valueOf(currentMonthYear.dayOfMonth().getDateTime().getDayOfMonth())); return currentMonthYear.dayOfMonth().withMaximumValue().dayOfMonth().get(); }
From source file:ca.uwaterloo.cs.cs349.mikrocalendar.ui.datetimepicker.DateTimePickerDialog.java
License:Open Source License
/** * Returns the {@link DateTime} representation of the filled in fields for * the date time.// w w w.ja va2 s . c o m * * @return the {@link DateTime} */ public DateTime getDateTime() { if (!isDateTimeValid()) { return null; } DateTime dateTime = new DateTime(Integer.parseInt(yearTextField.getText()), monthComboBox.getSelectedIndex(), dayComboBox.getSelectedIndex(), hourComboBox.getSelectedIndex(), minuteComboBox.getSelectedIndex(), 0, 0); return dateTime; }
From source file:ch.icclab.cyclops.usecases.tnova.model.TnovaBillingModel.java
License:Open Source License
/** * Just a quick method to get number of days for the month * @param year// w w w. j a v a2 s .c o m * @param month * @return */ private static int secondsInMonth(int year, int month) { DateTime dateTime = new DateTime(year, month, 14, 12, 0, 0, 000); Integer days = dateTime.dayOfMonth().getMaximumValue(); return days * 24 * 60 * 60; }
From source file:ch.imetrica.mdfaTradingStrategies.MDFAStrategyEvolution.java
public boolean startStrategy() { int j, i, l, N, file_count, k; double sum = 0; Double D;/*from w w w . j a v a 2 s. c om*/ double spreadnow; String ddelims = "[-]"; boolean computed = false; double b0_sum = 0; int nobs_count = 0; boolean print_filter = false; boolean no_return = true; String date_stamp, strline; signal = new double[trade_obs]; xt = new double[trade_obs]; lag_signals = new double[trade_obs]; prix = new double[trade_obs]; lo_prix = new double[trade_obs]; hi_prix = new double[trade_obs]; total_succ = 0; total = 0; log_price = 0; N = n_obs; avg_vol = 0.0; b_avg = new double[L * n_rep]; count = 0; trade_succ_ratio = 0; int advance = 8; // number of observations afterwhich we optimize double prev_signal; int changed_signs = 0; reg_trading_hours = false; String[] intdates; //make sure arraylists empty ArrayList<String> latestDates = new ArrayList<String>(); last_trades = new ArrayList<Integer>(); final_trades = new ArrayList<Double>(); dailyoutret = new ArrayList<Double>(); maxIntValue = new ArrayList<Double>(); avg_volatility = new ArrayList<Double>(); close_series = new ArrayList<Double>(); highlow_series = new ArrayList<Double>(); exp_series_1 = new ArrayList<Double>(); exp_series_2 = new ArrayList<Double>(); price = new ArrayList<Double>(); lo_price = new ArrayList<Double>(); hi_price = new ArrayList<Double>(); mid = new ArrayList<Double>(); bid = new ArrayList<Double>(); ask = new ArrayList<Double>(); dates_series = new ArrayList<String>(); dailyReport = new ArrayList<String>(); b0_trend = new ArrayList<Double>(); vol_0 = new ArrayList<Double>(); vol_1 = new ArrayList<Double>(); sub_returns = new ArrayList<Double>(); trade_days = new ArrayList<String>(); returns = new ArrayList<Double>(); longreturns = new ArrayList<Double>(); shortreturns = new ArrayList<Double>(); dropdowns = new ArrayList<Double>(); success = new ArrayList<Double>(); dates_low_high = new ArrayList<String>(); crits = new ArrayList<String>(); svm = new ArrayList<String>(); filters = new ArrayList<Filter>(); date_returns = new ArrayList<String>(); live_series = new ArrayList<Double>(); //the data to be applied out of sample ib_data_hash = new ibHash(); fridayROI = 0; fridayROI_pos = 0; fridays = 0; int all_trades, all_succ_trades, tot_all_trades, tot_succ_trades; lookback_returns = new ArrayList<Double>(); num_pos_returns = 0; deg_0 = new ArrayList<Double>(); deg_1 = new ArrayList<Double>(); crit_0 = new ArrayList<Double>(); crit_1 = new ArrayList<Double>(); full_returns_array = new ArrayList<double[]>(); morning_returns = new ArrayList<double[]>(); morning_buy = true; //enter transaction at morning open morning_optimize = false; //optimize in the morning trading hours num_full_positive_returns = 0; //--- Now get historical interp values ------ //uploadInterpParams("max_int.dat"); //------------------------------------------- forex24 = true; ret_dist = new double[trade_obs]; pos_ret_dist = new int[trade_obs]; neg_ret_dist = new int[trade_obs]; neg_trades_started = new int[trade_obs]; pos_trades_started = new int[trade_obs]; neg_trades_started_mean = new double[trade_obs]; pos_trades_started_mean = new double[trade_obs]; diff_account = new double[trade_obs]; pos_ret_mean_time = new double[trade_obs]; neg_ret_mean_time = new double[trade_obs]; mdfaTrades = new ArrayList<MDFATrade>(); fmt = DateTimeFormat.forPattern("y-MM-dd HH:mm:ss"); formatter = new DecimalFormat("#0.000000"); formatter3 = new DecimalFormat("#0.00000"); formatter2 = new DecimalFormat("#0.00"); tot_all_trades = 0; tot_succ_trades = 0; histo_stat = new int[100]; interp_vals = new ArrayList<Double>(); max_ranks = new ArrayList<Double>(); profit_baby = 0; //setForecastDFAParameters(); bad_starts = 0; n_out_samp = 0; //take_profit = true; //take_profit_thresh = .0020; if (ib_data && ib_data_file != null) { try { fin = new FileInputStream(ib_data_file); din = new DataInputStream(fin); br = new BufferedReader(new InputStreamReader(din)); while ((strline = br.readLine()) != null) { String[] sp = strline.split("[,]+"); ib_data_hash.put(sp[0], new String( sp[1] + " " + sp[2] + " " + sp[3] + " " + sp[4] + " " + sp[5] + " " + sp[6])); //System.out.println(sp[1] + " " + sp[2] + " " + sp[3] + " " + sp[4] + " " + sp[5] + " " + sp[6]); } } catch (FileNotFoundException fe) { System.out.println("File not found..." + fe); } catch (IOException ioe) { System.out.println("IO procedure faulty..." + ioe); } } for (i = 0; i < trade_obs; i++) { neg_ret_dist[i] = 0; pos_ret_dist[i] = 0; ret_dist[i] = 0; pos_ret_mean_time[i] = 0; neg_ret_mean_time[i] = 0; neg_trades_started[i] = 0; pos_trades_started[i] = 0; neg_trades_started_mean[i] = 0; pos_trades_started_mean[i] = 0; } pos_ret_mean = 0; neg_ret_mean = 0; n_pos_ret = 0; n_neg_ret = 0; try { //PrintWriter overall = new PrintWriter(new FileWriter("performance_total.dat")); PrintWriter max_int = new PrintWriter(new FileWriter("max_interpolation.dat")); PrintWriter b0_coeff = new PrintWriter(new FileWriter("b0_coeff.dat")); PrintWriter perform = new PrintWriter(new FileWriter("intraday_performance.dat")); PrintWriter dailyout = new PrintWriter(new FileWriter("daily_nasdaq.dat")); PrintWriter out = new PrintWriter(new FileWriter("strategy_results.dat")); PrintWriter svmout = new PrintWriter(new FileWriter("neural.dat")); for (file_count = 0; file_count < 1; file_count++) { if (dataFiles[file_count].indexOf("JPY") != -1 && dataFiles[file_count].indexOf("NOKJPY") == -1) { //change_time_zone = true; System.out.println("Changed time zone to Tokyo"); jpy = true; stop_loss_thresh = stop_loss_thresh * 100; take_profit_thresh = take_profit_thresh * 100; } setTimeStandards(new File(dataFiles[file_count])); System.out.println("opening " + dataFiles[file_count]); fin = new FileInputStream(dataFiles[file_count]); din = new DataInputStream(fin); br = new BufferedReader(new InputStreamReader(din)); lookback_ready = false; spread = new PrintWriter(new FileWriter("spread_" + dataFiles[file_count] + ".dat")); //if(print_debug)System.out.println("Entering loop..."); trading_hours = false; nobs_count = 0; computed = false; while ((strline = br.readLine()) != null) { //System.out.println(strline); tokens = strline.split(delims); n_toks = tokens.length; //System.out.println("Number of toks = "+n_toks); if (n_toks == 0) { System.out.println("End of file"); break; } if (n_toks >= 6) { bid_ask_data = true; } else { bid_ask_data = false; } if (change_time_zone) { String[] dts = tokens[0].split("[ ]+"); String[] ymd = dts[0].split("[-]+"); String[] hmss = dts[1].split("[:]+"); DateTime localTime = new DateTime((new Integer(ymd[0])).intValue(), (new Integer(ymd[1])).intValue(), (new Integer(ymd[2])).intValue(), (new Integer(hmss[0])).intValue(), (new Integer(hmss[1])).intValue(), (new Integer(hmss[2])).intValue(), 0); localTime = localTime.plusHours(13); tokens[0] = localTime.toString(fmt); } date_stamp = tokens[0]; date_tokens = date_stamp.split(date_delims); intdates = date_tokens[0].split(ddelims); DateTime weekend = new DateTime((new Integer(intdates[0])).intValue(), (new Integer(intdates[1])).intValue(), (new Integer(intdates[2])).intValue(), 14, 0); //System.out.println(strline + " " + final_trade_time); if (let_shop) { setTimeInterval(insampStart, permEndTrading, final_trade_time); } else { setTimeInterval(insampStart, permEndTrading, permEndTrading); } friday = false; //System.out.println(strline + " " + forex24); if (forex24) //need to change friday trading end time { //System.out.println(weekend.dayOfWeek().getAsText()); if (weekend.dayOfWeek().getAsText().equals("Friday") && !change_time_zone) //change number of trading days { if (min30trade) { setTimeInterval(insampStart, "16:30:00", "16:30:00"); } else { setTimeInterval(insampStart, "16:00:00", "16:00:00"); } friday = true; } else if (weekend.dayOfWeek().getAsText().equals("Saturday") && change_time_zone) { if (min30trade) { setTimeInterval(insampStart, "05:30:00", "05:30:00"); } else { setTimeInterval(insampStart, "05:00:00", "05:00:00"); } friday = true; } else { if (let_shop) { setTimeInterval(insampStart, permEndTrading, final_trade_time); } else { setTimeInterval(insampStart, permEndTrading, permEndTrading); } } //System.out.println(startingTime + " " + insampStart + " " + endingTime + " " + final_trade_time + " " + start_seq + " " + trade_obs); } //System.out.println(startingTime + " " + insampStart + " " + endingTime + " " + start_seq + " " + trade_obs); if (date_stamp.indexOf(insampStart) != -1) { signal = new double[trade_obs]; xt = new double[trade_obs]; lag_signals = new double[trade_obs]; prix = new double[trade_obs]; lo_prix = new double[trade_obs]; hi_prix = new double[trade_obs]; } //print_filter = true; latestDates.add(date_stamp); //use only iqfeed data for insample, use ib for out-of-sample //strategy is as follows if (bid_ask_data) { D = new Double(tokens[4]); close_series.add(D); if (ib_data && ib_data_hash.containsKey(tokens[0])) { String[] hashed = ib_data_hash.get(tokens[0]).split("[ ]+"); //System.out.println("Contains " + tokens[0] + ", lengths = " + hashed.length + ", " + tokens.length); for (i = 1; i < hashed.length; i++) { tokens[i] = hashed[i]; } // System.out.print(tokens[i] + " ");} bid.add(new Double(tokens[2])); ask.add(new Double(tokens[3])); mid.add(new Double(tokens[1])); } else { bid.add(new Double(tokens[2])); ask.add(new Double(tokens[3])); mid.add(new Double(tokens[1])); } spreadnow = ask.get(ask.size() - 1) - bid.get(bid.size() - 1); //System.out.println(date_stamp + " spread = " + spreadnow); if ((date_stamp.indexOf(startingTime) != -1) && current_signal > 0) { D = new Double(tokens[3]); price.add(D); if (spread_method == 0) { live_series.add(log(bid.get(bid.size() - 1)) - log(bid.get(bid.size() - 2))); } //low urgency else if (spread_method == 1) { live_series.add(log(bid.get(bid.size() - 1)) - log(mid.get(mid.size() - 2))); } //med urgency else { live_series.add(log(bid.get(bid.size() - 1)) - log(ask.get(ask.size() - 2))); } //high urgency } else if ((date_stamp.indexOf(startingTime) != -1) && current_signal < 0) { D = new Double(tokens[2]); price.add(D); if (spread_method == 0) { live_series.add(log(bid.get(bid.size() - 1)) - log(bid.get(bid.size() - 2))); } //low urgency else if (spread_method == 1) { live_series.add(log(ask.get(ask.size() - 1)) - log(mid.get(mid.size() - 2))); } //med urgency else { live_series.add(log(ask.get(ask.size() - 1)) - log(bid.get(bid.size() - 2))); } //high urgency } else if ((date_stamp.indexOf(startingTime) == -1) && current_signal > 0) { D = new Double(tokens[2]); price.add(D); if (spread_method == 0) { live_series.add(log(bid.get(bid.size() - 1)) - log(bid.get(bid.size() - 2))); } //low urgency else if (spread_method == 1) { live_series.add(log(bid.get(bid.size() - 1)) - log(mid.get(mid.size() - 2))); } //med urgency else { live_series.add(log(bid.get(bid.size() - 1)) - log(ask.get(ask.size() - 2))); } //high urgency } else if ((date_stamp.indexOf(startingTime) == -1) && current_signal < 0) { D = new Double(tokens[3]); price.add(D); if (spread_method == 0) { live_series.add(log(bid.get(bid.size() - 1)) - log(bid.get(bid.size() - 2))); } //low urgency else if (spread_method == 1) { live_series.add(log(ask.get(ask.size() - 1)) - log(mid.get(mid.size() - 2))); } //med urgency else { live_series.add(log(ask.get(ask.size() - 1)) - log(bid.get(bid.size() - 2))); } //high urgency } else { D = new Double(tokens[1]); price.add(D); D = new Double(tokens[4]); if (ib_data && ib_data_hash.containsKey(tokens[0])) { live_series.add(log(mid.get(mid.size() - 1)) - log(mid.get(mid.size() - 2))); } else { live_series.add(new Double(tokens[4])); } } //lo_price.add((new Double(tokens[7])) + spreadnow/2.0); hi_price.add((new Double(tokens[8])) - spreadnow/2.0); if (ib_data && ib_data_hash.containsKey(tokens[0])) //use as is { lo_price.add(new Double(tokens[7])); hi_price.add(new Double(tokens[8])); } else { lo_price.add((new Double(tokens[7])) + spreadnow); hi_price.add((new Double(tokens[8]))); } //System.out.println(date_stamp + " " + live_series.get(live_series.size() - 1)); // if(live_series.size() > 2) // { // System.out.println("\n" + date_stamp + " " + live_series.get(live_series.size() - 1) + ", ask = " + ask.get(ask.size()-1) + ", bid = " + bid.get(bid.size()-1) + // ", ask_t-1 " + ask.get(ask.size()-2) + ", bid_t-1 " + bid.get(bid.size()-2)); // } //spread.println(date_stamp + " " + (new Double(tokens[3]) - new Double(tokens[2]))); } else { D = new Double(tokens[1]); price.add(D); D = new Double(tokens[2]); close_series.add(D); //if(print_debug)System.out.println(date_stamp + " " + price.get(price.size()-1) + " " + close_series.get(close_series.size()-1)); //System.out.println(date_stamp + " " + price.get(price.size()-1) + " " + close_series.get(close_series.size()-1)); if (n_rep > 2 && tokens.length > 3) { D = new Double(tokens[3]); exp_series_1.add(D); } if (n_rep > 3 && tokens.length > 4) { D = new Double(tokens[4]); exp_series_2.add(D); } } //System.out.println(nobs_count + " " + n_obs); if (nobs_count >= n_obs) { computed = true; //---- collect data and put in time series if (daily_strategy) { trading_hours = true; } if (date_stamp.indexOf(insampStart) != -1 || trading_hours) //start at 9:30 { // if(print_debug)System.out.println("Start the day trading"); // System.out.println("Starting TIME = " + startingTime); //System.out.println("ENDING TIME = " + endingTime + " " + finalCall); if (trade_count < trade_obs) { //--- new series //System.out.println("trade count = " + trade_count + " " + trade_obs); n_out_samp++; trading_hours = true; tseries = new double[n_rep * n_obs]; out_series = new double[n_obs]; if (!bid_ask_data) { if (n_rep == 3) { for (i = 0; i < n_obs; i++) { tseries[n_obs - 1 - i] = close_series.get(close_series.size() - 1 - i); if (n_rep > 2 && exp_series_1.size() > 0) { tseries[n_obs + n_obs - 1 - i] = exp_series_1 .get(exp_series_1.size() - 1 - i); } if (exp_series_2.size() > 0) { tseries[n_obs * 2 + n_obs - 1 - i] = exp_series_2 .get(exp_series_2.size() - 1 - i); } } } else { for (i = 0; i < n_obs; i++) { tseries[n_obs - 1 - i] = close_series.get(close_series.size() - 1 - i); tseries[n_obs + n_obs - 1 - i] = close_series .get(close_series.size() - 1 - i); if (n_rep > 2 && exp_series_1.size() > 0) { tseries[n_obs * 2 + n_obs - 1 - i] = exp_series_1 .get(exp_series_1.size() - 1 - i); } if (n_rep > 3 && exp_series_2.size() > 0) { tseries[n_obs * 3 + n_obs - 1 - i] = exp_series_2 .get(exp_series_2.size() - 1 - i); } } } } else { if (classical_data) { for (i = 0; i < n_obs; i++) { tseries[n_obs - 1 - i] = live_series.get(live_series.size() - 1 - i); tseries[n_obs + n_obs - 1 - i] = live_series .get(live_series.size() - 1 - i); if (n_rep > 2 && exp_series_1.size() > 0) { tseries[n_obs * 2 + n_obs - 1 - i] = exp_series_1 .get(exp_series_1.size() - 1 - i); } if (n_rep > 3 && exp_series_2.size() > 0) { tseries[n_obs * 3 + n_obs - 1 - i] = exp_series_2 .get(exp_series_2.size() - 1 - i); } } for (i = 0; i < n_obs; i++) { out_series[n_obs - 1 - i] = tseries[n_obs - 1 - i]; } } else { for (i = 0; i < n_obs; i++) { tseries[n_obs - 1 - i] = close_series.get(close_series.size() - 1 - i); tseries[n_obs + n_obs - 1 - i] = close_series .get(close_series.size() - 1 - i); if (n_rep > 2 && exp_series_1.size() > 0) { tseries[n_obs * 2 + n_obs - 1 - i] = exp_series_1 .get(exp_series_1.size() - 1 - i); } if (n_rep > 3 && exp_series_2.size() > 0) { tseries[n_obs * 3 + n_obs - 1 - i] = exp_series_2 .get(exp_series_2.size() - 1 - i); } } for (i = 0; i < n_out_samp; i++) { out_series[n_obs - 1 - i] = live_series.get(live_series.size() - 1 - i); } for (i = n_out_samp; i < n_obs; i++) { out_series[n_obs - 1 - i] = tseries[n_obs - 1 - i]; } } } //---- set new time series------------ // if((gaussianize || volatility_thresh) || save_volatility) // { // if(date_stamp.indexOf(startingTime) != -1) // { // gaussianizeData(.9,.01,2.0); // morningSeries = new double[n_rep*n_obs]; // System.arraycopy(tseries,0,morningSeries,0,morningSeries.length); // computePeriodogram(); // } // else // { // updateGaussianData(); // gauss_target.add(tseries[n_obs-1]); // if(n_rep > 2) // { // gauss_1.add(tseries[n_obs*2 + n_obs-1]); // gauss_2.add(tseries[n_obs*3 + n_obs-1]); // } // for(i=0;i<trade_count;i++) // { // tseries[n_obs-1-i] = gauss_target.get(gauss_target.size()-1-i); // tseries[n_obs + n_obs - 1 - i] = tseries[n_obs-1-i]; // if(n_rep > 2) // {tseries[n_obs*2 + n_obs-1 - i] = gauss_1.get(gauss_1.size()-1-i);} // if(n_rep > 3) // {tseries[n_obs*3 + n_obs-1 - i] = gauss_2.get(gauss_2.size()-1-i);} // } // // //System.out.println(date_stamp + " " + tseries[n_obs-1] + " " + tseries[n_obs*2 + n_obs-1] + " " + tseries[n_obs*3 + n_obs-1]); // // } // avg_vol = avg_vol + vol[vol.length-1]; // } mdfa.set_tseries(tseries, n_obs, n_rep); //--- compute new filter -------- //if(pulse_count >= recomp_pulse || (date_stamp.indexOf(startingTime) != -1)) if (date_stamp.indexOf(insampStart) != -1 && day_count == 0) { // System.out.println(date_stamp + " " + insampStart + " " + startingTime + " " + tseries[n_obs-1] + " " + tseries[n_obs - 2] + " " + tseries[n_obs-3] + " " + tseries[n_obs-4] + " " // + price.get(price.size()-1)); if (!useH0) //general filtering { //if(print_debug) System.out.println(date_stamp); // if(date_stamp.indexOf("2013-04-03") != -1 || date_stamp.indexOf("2013-04-02") != -1) // { // System.out.println(date_stamp); // System.out.println("AT THE END!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); // } mdfa.computeFilterGeneral(true, print_filter); b_coeffs = new double[(n_rep - 1) * L]; //System.out.println(b_coeffs.length + " " + L + n_rep); for (l = 0; l < L; l++) { for (i = 0; i < n_rep - 1; i++) { b_coeffs[L * i + l] = mdfa.b[L * (i + 1) + l]; } // System.out.println(b_coeffs[l]);} //if(date_stamp.indexOf("2013-12-17") != -1) {System.out.println(b_coeffs[l]);} } //if(print_debug) System.out.println(date_stamp + " b_coeffs = " + b_coeffs[0] + " " + b_coeffs[1] + " " + b_coeffs[2]); pulse_count = 0; b_copy = new double[mdfa.b.length]; System.arraycopy(mdfa.b, 0, b_copy, 0, b_copy.length); b0_coeff.println(b_coeffs[0]); // + ", " + b_coeffs[L] + ", " + b_coeffs[2*L]); b0_sum = 0; for (l = 0; l < L; l++) { b0_sum = b0_sum + b_coeffs[l]; } b0_trend.add(b0_sum); // if(filters.size() > 5) // { // System.out.println("Old BO = " + b_coeffs[0] + " " + b_coeffs[L] + " " + b_coeffs[L+L]); // averageFilters(3,.3); // System.out.println("Avg BO = " + b_coeffs[0] + " " + b_coeffs[L] + " " + b_coeffs[L+L]); // } } else { if (H0set) //H0_Optimization_Lookback2(double delta, double interp_start) { if (!lookback_ready) { H0_Optimization(h0_outsamp, localdecay, h0_delta, interp_start); avg_volatility.add(0.0); System.out.println("First"); } //else{H0_Optimization_Lookback(h0_delta, 0.0); max_int.println(max_interp_value + " " + max_ret_interp + " " + ROI + " " + date_stamp);} else { //if(morning_optimize) //{H0_Optimization(h0_outsamp, localdecay, h0_delta, interp_start);} //else //{ H0_Optimization_Lookback(h0_delta, 0); //H0_Optimization_Lookback_Test(yesterday_series, h0_delta, 0.0, optval, cut); //max_int.println(max_interp_value + " " + optval + " " + max_ret_interp + " " + zero_ret); max_int.println(max_interp_value + " " + max_ret_interp); //System.out.println("New BO = " + b_coeffs[0] + " " + b_coeffs[L] + " " + b_coeffs[L+L]); //} } //H0_Optimization_Morning(localdecay, h0_delta, interp_start); //max_int.println(max_interp_value + " " + max_ret_interp); pulse_count = 0; } else { System.out.println("Problem: Couldn't find H0 filter"); break; } } } //System.out.println("Out of sample " + date_stamp); //else {pulse_count++;} //---- change filter to updated filter -------------------------------- if ((morning_optimize && (date_stamp.indexOf(optimizeTime) != -1)) && lookback_ready) { System.out.println("Optimizing at 12:30"); advance = 13; // !!!! Caution, this value must correspond with the optimizeTime (e.g. 8 = 11:30) //optval = max_interp_value; H0_Optimization_Intraday(h0_delta, 0.0, advance); //find optimized parameter at new time // max_int.println(max_interp_value + " " + optval); } if (date_stamp.indexOf("09:30") != -1) { reg_trading_hours = true; } //start_seq = 10; if (pulse_count < recomp_pulse && reg_trading_hours) { if (H0set && (pulse_count % start_seq == 0) && pulse_count > 0) //5 is best //if(H0set) { H0_Optimization_Update(0, trade_count, true, true); } pulse_count++; } else if (pulse_count < recomp_pulse && date_stamp.indexOf("08:30") != -1) { System.out.println("Starting out for the day"); double[] outs = computeInterpolation(tseries, 0); int lag4 = 2 * (n_obs - L + 1) + 2 * (n_rep + 1) * K1; b_coeffs = new double[(n_rep - 1) * L]; for (l = 0; l < L; l++) { for (i = 0; i < n_rep - 1; i++) { b_coeffs[L * i + l] = outs[lag4 + L * (i + 1) + l]; } } pulse_count = 0; } //---- apply the mother filter------------ sum = 0.0; if (!bid_ask_data) { for (j = 1; j < n_rep; j++) { for (l = 0; l < L; l++) { sum = sum + b_coeffs[L * (j - 1) + l] * tseries[N * j + n_obs - 1 - l]; } } } else { for (l = 0; l < L; l++) { sum = sum + b_coeffs[l] * out_series[n_obs - 1 - l]; } // System.out.println(out_series[n_obs-1-l]);} } //System.out.println(""); prev_signal = current_signal; current_signal = sum; if (sig_inverse) { current_signal = -current_signal; } if (morning_optimize && (date_stamp.indexOf(optimizeTime) != -1)) { if ((prev_signal > 0 && current_signal < 0) || (prev_signal < 0 && current_signal > 0)) { System.out.println( "Sign of signal changed after optimization, forced to enter transaction."); changed_signs++; } } if (cont_lookback) //compute previous lag { if (compute_lag) { mdfa.set_lag(lag + 1); mdfa.computeFilterGeneral(true, false); b_lag = new double[(n_rep - 1) * L]; for (l = 0; l < L; l++) { for (i = 0; i < n_rep - 1; i++) { b_lag[L * i + l] = mdfa.b[L * (i + 1) + l]; } } sum = 0.0; for (j = 1; j < n_rep; j++) { for (l = 0; l < L; l++) { sum = sum + b_lag[L * (j - 1) + l] * tseries[N * j + n_obs - 1 - l]; } } lag_signal = sum; } else { sum = 0.0; for (j = 1; j < n_rep; j++) { for (l = 0; l < L; l++) { sum = sum + b_coeffs[L * (j - 1) + l] * tseries[N * j + n_obs - 2 - l]; } } lag_signal = sum; } } if (adaptive_filtering) { //------------------- Adaptive steps -------------------------------------------- if (adapt_pulse_count >= adaptive_recomp_pulse || (date_stamp.indexOf(startingTime) != -1)) { adaptiveUpdateFilter(); updateAdaptiveSignal(); adapt_pulse_count = 0; } else { updateAdaptiveSignal(); adapt_pulse_count++; } current_signal = update_signal[update_signal.length - 1]; lag_signal = update_signal[update_signal.length - 2]; } // if(print_debug) // { // System.out.println(date_stamp + ", " + formatter.format(price.get(price.size()-1)) + ", " + formatter.format(tseries[n_obs-1]) + ", " + formatter.format(current_signal)); // } // if(!forex24) {dailyReport.add(""+date_stamp + ", " + formatter2.format(Math.exp(price.get(price.size()-1))) + ", " + formatter.format(tseries[n_obs-1]) + ", " + formatter.format(current_signal));} // else {dailyReport.add(""+date_stamp + ", " + formatter.format(price.get(price.size()-1)) + ", " + formatter.format(tseries[n_obs-1]) + ", " + formatter.format(current_signal));} if (!bid_ask_data) { dailyReport.add( "" + date_stamp + ", " + formatter3.format(price.get(price.size() - 1)) + ", " + formatter3.format(lo_price.get(lo_price.size() - 1)) + ", " + formatter3.format(hi_price.get(hi_price.size() - 1)) + ", " + formatter.format(tseries[n_obs - 1]) + ", " + formatter.format(current_signal)); } else { dailyReport.add( "" + date_stamp + ", " + formatter3.format(price.get(price.size() - 1)) + ", " + formatter3.format(lo_price.get(lo_price.size() - 1)) + ", " + formatter3.format(hi_price.get(hi_price.size() - 1)) + ", " + formatter.format(out_series[n_obs - 1]) + ", " + formatter.format(current_signal)); } // double binsig = 0; // if(current_signal > 0) binsig = 1; // else binsig = -1; // // dailyReport.add(""+date_stamp + ", " + formatter.format(price.get(price.size()-1)) + ", " + binsig); //System.out.println(dailyReport.size()); xt[trade_count] = close_series.get(close_series.size() - 1).doubleValue(); signal[trade_count] = current_signal; if (diff_sig_trading && trade_count > 0) { signal[trade_count] = signal[trade_count] - signal[trade_count - 1]; } prix[trade_count] = price.get(price.size() - 1).doubleValue(); lo_prix[trade_count] = lo_price.get(lo_price.size() - 1).doubleValue(); hi_prix[trade_count] = hi_price.get(hi_price.size() - 1).doubleValue(); if (trade_count > 0 && cont_lookback) { lag_signals[trade_count - 1] = lag_signal; } trade_count++; } if (date_stamp.indexOf(finalCall) != -1) //if(date_stamp.indexOf(endingTime) != -1) { //System.out.println("ENDING TIME Data at " + endingTime); // for(i=0;i<L;i++) // { // System.out.println(tseries[n_obs-1-i] + " " + tseries[n_obs + n_obs-1 - i] + " " + tseries[2*n_obs + n_obs-1 - i] + " " + tseries[3*n_obs + n_obs-1 - i]); // } if (reset_signal) { current_signal = 0; } current_signal = 0; n_out_samp = 0; reg_trading_hours = false; daily_return = price.get(price.size() - 1).doubleValue() - log_price; log_price = price.get(price.size() - 1).doubleValue(); trade_count = 0; trading_hours = false; pulse_count = 0; // if(startingTime.equals("09:30")) // { actual_price = new double[trade_obs - start_seq]; actual_loprice = new double[trade_obs - start_seq]; actual_hiprice = new double[trade_obs - start_seq]; actual_signal = new double[trade_obs - start_seq]; for (i = 0; i < actual_price.length; i++) { actual_price[i] = prix[i + start_seq]; actual_signal[i] = signal[i + start_seq]; actual_loprice[i] = lo_prix[i + start_seq]; actual_hiprice[i] = hi_prix[i + start_seq]; } /// System.out.println(actual_price[i] + " " + actual_signal[i]);} short_sell = true; long_buy = true; if (!let_shop) { insampleTradingDiff(actual_price, actual_signal, actual_price.length); ROI = account[account.length - 1]; } else { insampleTradingDiff_Cust_SL(actual_price, actual_loprice, actual_hiprice, actual_signal, actual_price.length); ROI = account[end_time_index]; } if (jpy) { ROI = .01 * ROI; } //date_tokens = date_stamp.split("[ ]+"); diff_account = new double[account.length]; diff_account[0] = 0; //System.out.println(date_tokens[0]); for (k = 1; k < account.length; k++) { diff_account[k] = account[k] - account[k - 1]; ret_dist[k] = ret_dist[k] + diff_account[k]; if (diff_account[k] > 0) { pos_ret_dist[k] = pos_ret_dist[k] + 1; pos_ret_mean_time[k] = pos_ret_mean_time[k] + diff_account[k]; pos_ret_mean = pos_ret_mean + diff_account[k]; n_pos_ret++; } else if (diff_account[k] < 0) { neg_ret_dist[k] = neg_ret_dist[k] + 1; neg_ret_mean_time[k] = neg_ret_mean_time[k] + diff_account[k]; neg_ret_mean = neg_ret_mean + diff_account[k]; n_neg_ret++; } } //----- now do the trade analysis --------- trade_started = 0; no_return = true; for (k = 1; k < account.length; k++) { if (k > end_time_index) { break; } if (diff_account[k] != 0) { no_return = false; } if (diff_account[k] > 0) { min_pnl_dd = 0; max_pnl_uu = 0; l = k; while (l > 0) { if (pnl[l] < min_pnl_dd) { min_pnl_dd = pnl[l]; } if (png[l] > max_pnl_uu) { max_pnl_uu = png[l]; } l--; if (diff_account[l] != 0) { break; } } //System.out.println("trade, " + k + " " + trade_started + " " + end_time_index); if (trade_started != end_time_index) { pos_trades_started[trade_started] = pos_trades_started[trade_started] + 1; pos_trades_started_mean[trade_started] = pos_trades_started_mean[trade_started] + diff_account[k]; if (jpy) { mdfaTrades.add(new MDFATrade(date_tokens[0], trade_started, k, .01 * min_pnl_dd, .01 * max_pnl_uu, .01 * diff_account[k])); } else { mdfaTrades.add(new MDFATrade(date_tokens[0], trade_started, k, min_pnl_dd, max_pnl_uu, diff_account[k])); } //System.out.println("trade, " + trade_started + " " + k + " " + min_pnl_dd + " " + diff_account[k]); } trade_started = k; } if (diff_account[k] < 0) { min_pnl_dd = 0; max_pnl_uu = 0; l = k; while (l > 0) { if (pnl[l] < min_pnl_dd) { min_pnl_dd = pnl[l]; } if (png[l] > max_pnl_uu) { max_pnl_uu = png[l]; } l--; if (diff_account[l] != 0) { break; } } //System.out.println("trade, " + k + " " + trade_started + " " + end_time_index); if (trade_started != end_time_index) { neg_trades_started[trade_started] = neg_trades_started[trade_started] + 1; neg_trades_started_mean[trade_started] = neg_trades_started_mean[trade_started] - diff_account[k]; if (jpy) { mdfaTrades.add(new MDFATrade(date_tokens[0], trade_started, k, .01 * min_pnl_dd, .01 * max_pnl_uu, .01 * diff_account[k])); } else { mdfaTrades.add(new MDFATrade(date_tokens[0], trade_started, k, min_pnl_dd, max_pnl_uu, diff_account[k])); } //System.out.println("trade, " + trade_started + " " + k + " " + min_pnl_dd + " " + diff_account[k]); } trade_started = k; } } //the day had no action, so place an empty trade if (no_return) { mdfaTrades.add(new MDFATrade(date_tokens[0], 0, end_time_index, 0, 0, .00001)); } if (print_debug) { System.out.println(""); for (k = 0; k < account.length; k++) { System.out.println(dailyReport.get(k + start_seq) + ", " + formatter.format(account[k]) + ", " + formatter.format(pnl[k]) + ", " + formatter.format(png[k])); } } all_trades = total_trades; all_succ_trades = succ_trades; tot_all_trades = tot_all_trades + total_trades; tot_succ_trades = tot_succ_trades + succ_trades; short_sell = false; long_buy = true; //insampleTradingDiff_Cust_SL(actual_price, actual_signal, actual_price.length); //longROI = account[account.length-1]; longROI = account[end_time_index]; short_sell = true; long_buy = false; //insampleTradingDiff_Cust_SL(actual_price, actual_signal, actual_price.length); //shortROI = account[account.length-1]; shortROI = account[end_time_index]; final_trades.add(final_trade); last_trades.add(last_trade); sub_returns.add(diff_band); //I_MDFA.plotData(xt, signal, trade_obs); avg_vol = avg_vol / trade_obs; dailyReport.clear(); mnmx = minmax(account); ratio = ((double) succ_trades) / ((double) total_trades); if (ROI < 0) { losses_in_arow++; } else { losses_in_arow = 0; } if (useH0) { //System.out.println("using H0"); if (lookback_ready) { dailyoutret.add(daily_return); maxIntValue.add(max_interp_value); avg_volatility.add(avg_vol - 0.25); returns.add(ROI - all_trades * tradingCost); longreturns.add(longROI); shortreturns.add(shortROI); dropdowns.add(drop_down); success.add(ratio); trade_days.add(date_tokens[0]); dates_low_high.add(date_stamp + ", " + mnmx[0] + ", " + mnmx[1]); } else { lookback_ready = true; } } else { //System.out.println("Not using H0"); dailyoutret.add(daily_return); maxIntValue.add(max_interp_value); avg_volatility.add(100000.0 * (avg_vol - 0.30)); returns.add(ROI - all_trades * tradingCost); longreturns.add(longROI); shortreturns.add(shortROI); dropdowns.add(drop_down); success.add(ratio); trade_days.add(date_tokens[0]); dates_low_high.add(date_stamp + ", " + mnmx[0] + ", " + mnmx[1]); } if (ROI < 0 && first_trade_loss) { bad_starts++; } if (mnmx[1] > .005) { profit_baby++; } //out.println("Result for " + date_stamp + ", ROI = " + ROI + ", " + mnmx[0] + ", " + mnmx[1] + ", " + succ_trades + ", " + total_trades); if (print_debug) System.out.println("Result for " + date_stamp + ", ROI = " + (ROI - all_trades * tradingCost) + ", succ_trades = " + all_succ_trades + ", total_trades = " + all_trades); // if(returns.size() > rolling_length) //take latest 30 days and compute a few stats // { // double[] latRets = new double[rolling_length]; // Double[] latRetsD = new Double[rolling_length]; // for(k=0;k<rolling_length;k++) // { // latRets[rolling_length - 1 - k] = returns.get(returns.size() - 1 - k); // latRetsD[rolling_length - 1 - k] = returns.get(returns.size() - 1 - k); // } // //compute sharpe // double[] mstd = mean_std(latRets); // double sh = Math.sqrt(250)*mstd[0]/mstd[1]; // //compute rank // double rc = rankCoefficient(latRets,rolling_length); // //compute Ulcer // double ui = ulcerIndex(latRetsD); // //computer Kelly // // rolling_ind.add(sh + " " + rc + " " + ui + " " + kp); // } // else // {rolling_ind.add("0 0 0 0");} dailyout.println(daily_return); signal = new double[trade_obs]; xt = new double[trade_obs]; prix = new double[trade_obs]; lag_signals = new double[trade_obs]; avg_vol = 0.0; total_ROI = total_ROI + ROI - all_trades * tradingCost; total_succ = total_succ + succ_trades; total = total + total_trades; //System.out.println("total trades = " + total_succ + "/" + total); if (ROI > 0) { trade_succ_ratio++; } yesterday_vol = 0;//avg_volatility.get(avg_volatility.size() - 2); if (ROI > .006)// && (avg_volatility.get(avg_volatility.size() - 2) < 4.007053e-07 )) { avg_count++; for (k = 1; k < n_rep; k++) { for (l = 0; l < L; l++) { b_avg[L * k + l] = b_avg[L * k + l] + b_coeffs[L * (k - 1) + l]; } } } if (day_count == recompute_day) { day_count = 0; } else { day_count++; } } } } nobs_count++; //System.out.println(nobs_count); } //out.println("Total ROI: " + total_ROI + ", Total successful trades = " + succ_trades + ", total trades = " + total_trades + ", rate = " + (double)succ_trades/(double)total_trades); System.out.println("Total ROI: " + total_ROI + ", Total successful trades = " + tot_succ_trades + ", total trades = " + tot_all_trades + ", avg_n_trades = " + (double) tot_all_trades / returns.size() + ", rate = " + (double) tot_succ_trades / (double) tot_all_trades); //System.out.println("Avg Friday ROI = " + (fridayROI/fridays) + ", friday success = " + ((double)fridayROI_pos/fridays)); avg_n_trades = (double) tot_all_trades / (double) returns.size(); avg_rate = (double) tot_succ_trades / (double) tot_all_trades; dailyoutret.set(0, 0.0); if (!H0set || recomp_pulse > 0) { System.out.println("Summing statistics"); num_trade_days = returns.size(); if (num_trade_days == 0) { for (i = 0; i < 100; i++) returns.add(0.0); } num_trade_days = returns.size(); mean = 0.0; num_gains = 0; num_losses = 0; dreturns = new double[num_trade_days]; //double ret = returns.get(0); double ret = 0; if (num_trade_days > 0) dreturns[0] = 0; for (i = 0; i < num_trade_days; i++) { ret = returns.get(i); if (ret > 0) { num_gains++; } else { num_losses++; } mean = mean + ret; out.println(ret); if (i > 0) dreturns[i] = dreturns[i - 1] + ret; } mean = mean / ((double) returns.size()); double risk = -neg_ret_mean / (double) n_neg_ret; System.out.println("neg_ret_mean = " + (-neg_ret_mean) + ", " + n_neg_ret); double reward = pos_ret_mean / (double) n_pos_ret; System.out.println("pos_ret_mean = " + pos_ret_mean + ", " + n_pos_ret); double win_ratio = (double) (n_pos_ret) / (n_pos_ret + n_neg_ret); kellyPerc = win_ratio - (1.0 - win_ratio) * (risk / reward); ulcer_index = ulcerIndex(returns.toArray(new Double[0])); System.out.println("win ratio = " + win_ratio + ", risk = " + risk + ", reward = " + reward); System.out.println("kelly and ulcer = " + kellyPerc + " " + ulcer_index); sum_sd = 0; for (i = 0; i < returns.size(); i++) { sum_sd = sum_sd + (returns.get(i) - mean) * (returns.get(i) - mean) / ((double) returns.size()); } standard_deviation = Math.sqrt(sum_sd); } else { num_trade_days = lookback_returns.size(); mean = 0.0; num_gains = 0; num_losses = 0; dreturns = new double[num_trade_days]; double ret = lookback_returns.get(0); dreturns[0] = ret; for (i = 0; i < num_trade_days; i++) { ret = lookback_returns.get(i); if (ret > 0) { num_gains++; } else { num_losses++; } mean = mean + ret; out.println(ret); if (i > 0) dreturns[i] = dreturns[i - 1] + ret; } mean = mean / ((double) lookback_returns.size()); sum_sd = 0; for (i = 0; i < lookback_returns.size(); i++) { sum_sd = sum_sd + (lookback_returns.get(i) - mean) * (lookback_returns.get(i) - mean) / ((double) lookback_returns.size()); } standard_deviation = Math.sqrt(sum_sd); } out.println(""); /* for(i=0;i<num_trade_days;i++) { out.println(dreturns[i] + " " + dailyoutret.get(i)); System.out.println(dreturns[i] + " " + avg_volatility.get(i)); }*/ maxdraw = computeDrawdown(dreturns); //rankCoefficient(dreturns, num_trade_days); rank_coeff = segmentRankCorrelation(15, dreturns); out.println("Rank Coefficient = " + rank_coeff + ", mean = " + mean); System.out.println("Rank Coefficient = " + rank_coeff + ", mean = " + mean); mean_perf = mean; rank_perf = rank_coeff; } for (i = 0; i < svm.size(); i++) { svmout.println(svm.get(i)); } out.close(); dailyout.close(); perform.close(); b0_coeff.close(); max_int.close(); svmout.close(); spread.close(); } catch (FileNotFoundException fe) { System.out.println("File not found..." + fe); } catch (IOException ioe) { System.out.println("IO procedure faulty..." + ioe); } total_obs = returns.size(); if (trade_days.size() < total_obs) { total_obs = trade_days.size(); } for (i = 0; i < total_obs; i++) { //System.out.println(trade_days.get(i) + " " + returns.get(i) + " " + avg_volatility.get(i) + " " + maxIntValue.get(i) + " " + interp_vals.get(i) + crits.get(i)); if (!morning_optimize) { System.out.println(trade_days.get(i) + ", " + returns.get(i)); date_returns.add(trade_days.get(i) + ", " + dailyoutret.get(i)); } else { System.out.println(trade_days.get(i) + ", " + returns.get(i) + ", " + interp_vals.get(i) + ", " + max_ranks.get(i)); } } for (i = 0; i < morning_returns.size(); i++) { double[] array = morning_returns.get(i); for (j = 0; j < array.length - 1; j++) { System.out.print(df4.format(array[j]) + " "); } System.out.println(df4.format(array[array.length - 1])); } if (!morning_optimize) { for (i = 0; i < crits.size(); i++) { System.out.println(crits.get(i)); } } System.out.println(avg_count); for (k = 1; k < n_rep; k++) { for (l = 0; l < L; l++) { b_avg[L * k + l] = b_avg[L * k + l] / (double) avg_count; } } try { //PrintWriter overall = new PrintWriter(new FileWriter("performance_total.dat")); PrintWriter b0_coeff = new PrintWriter(new FileWriter("h0b0_filter.dat")); b0_coeff.println(L + " " + n_rep); for (l = 0; l < L; l++) { for (k = 0; k < n_rep - 1; k++) { b0_coeff.print(b_avg[L * k + l] + " "); } b0_coeff.println(b_avg[L * (n_rep - 1) + l]); } b0_coeff.close(); } catch (IOException ioe) { System.out.println("IO procedure faulty..." + ioe); } try { PrintWriter ret_dists = new PrintWriter(new FileWriter("return_dists_" + dataFiles[0])); for (l = 1; l < trade_obs; l++) { ret_dists.println((ret_dist[l] / (double) total_obs) + " " + (pos_ret_dist[l] / (double) (pos_ret_dist[l] + neg_ret_dist[l])) + " " + (pos_ret_mean_time[l] / (double) pos_ret_dist[l]) + " " + (neg_ret_mean_time[l] / (double) neg_ret_dist[l])); if (pos_trades_started[l - 1] == 0 && neg_trades_started[l - 1] == 0) { System.out.println("0 0 0"); } else { System.out.println(formatter .format((pos_trades_started[l - 1] / (double) (pos_trades_started[l - 1] + neg_trades_started[l - 1]))) + " " + formatter.format(pos_trades_started_mean[l - 1] / (double) pos_trades_started[l - 1]) + " " + formatter .format(neg_trades_started_mean[l - 1] / (double) neg_trades_started[l - 1])); } } ret_dists.close(); } catch (IOException ioe) { System.out.println("IO procedure faulty..." + ioe); } for (i = 0; i < full_returns_array.size(); i++) { double[] array = full_returns_array.get(i); for (j = 0; j < array.length - 1; j++) { System.out.print(df4.format(array[j]) + " "); } System.out.println(df4.format(array[array.length - 1])); } if (morning_optimize) { System.out.println("Signal changed signs at " + optimizeTime + " " + changed_signs + " times"); } return computed; }
From source file:cherry.goods.util.JodaTimeUtil.java
License:Apache License
/** * @param ts ???{@link Timestamp}/* w w w . ja va 2s . co m*/ * @return ?????{@link DateTime}(?)????????? */ public static DateTime getDateTime(Timestamp ts) { Calendar cal = getCalendar(ts); return new DateTime(cal.get(YEAR), cal.get(MONTH) + 1, cal.get(DAY_OF_MONTH), cal.get(HOUR_OF_DAY), cal.get(MINUTE), cal.get(SECOND), cal.get(MILLISECOND)); }