List of usage examples for org.joda.time DateTime toString
public String toString(String pattern)
From source file:be.nielsbril.clicket.app.viewmodels.ParkFragmentViewModel.java
private void loadCurrentSession() { ApiHelper.subscribe(/*from ww w. ja v a 2s. co m*/ ClicketInstance.getClicketserviceInstance().activeSession(AuthHelper.getAuthToken(mContext)), new Action1<SessionSingleResult>() { @Override public void call(SessionSingleResult sessionSingleResult) { if (sessionSingleResult != null && sessionSingleResult.isSuccess()) { Session session = sessionSingleResult.getData(); setSession(session); startButton(false); stopButton(true); DateTime start = new DateTime(getSession().getStarted_on()); start = start.withZone(dateTimeZone); setStarted_on(start.toString(dateTimeFormatter)); setStopped_on("n.a."); setZone(getSession().getZone_id().getName() + " (" + getSession().getStreet() + ")"); setCar(getSession().getCar_id().getName() + " (" + getSession().getCar_id().getLicense_plate() + ")"); setCost(0); } else { noCurrentSession(); } } }); }
From source file:be.nielsbril.clicket.app.viewmodels.ParkFragmentViewModel.java
private void startSession() { ApiHelper.subscribe(//from w w w .j a v a 2 s . c o m ClicketInstance.getClicketserviceInstance().startSession(Double.toString(mLocation.getLatitude()), Double.toString(mLocation.getLongitude()), mId, AuthHelper.getAuthToken(mContext)), new Action1<SessionSingleResult>() { @Override public void call(SessionSingleResult sessionSingleResult) { if (sessionSingleResult != null && sessionSingleResult.isSuccess()) { setSession(sessionSingleResult.getData()); startButton(false); stopButton(true); DateTime start = new DateTime(getSession().getStarted_on()); start = start.withZone(dateTimeZone); setStarted_on(start.toString(dateTimeFormatter)); setStopped_on("n.a."); setZone(getSession().getZone_id().getName() + " (" + getSession().getStreet() + ")"); setCar(getSession().getCar_id().getName() + " (" + getSession().getCar_id().getLicense_plate() + ")"); setCost(0); } else { showSnackbar("Error when starting session: zone not found, Clicket won't work here"); } } }); }
From source file:be.nielsbril.clicket.app.viewmodels.ParkFragmentViewModel.java
private void stop() { ApiHelper.subscribe(ClicketInstance.getClicketserviceInstance().stopSession(getSession().get_id(), AuthHelper.getAuthToken(mContext)), new Action1<SessionStopResult>() { @Override//from ww w . j a v a2 s .c om public void call(SessionStopResult sessionStopResult) { if (sessionStopResult != null && sessionStopResult.isSuccess()) { setSession(null); startButton(true); stopButton(false); DateTime stop = new DateTime(sessionStopResult.getData().getSession().getStopped_on()); stop = stop.withZone(dateTimeZone); setStopped_on(stop.toString(dateTimeFormatter)); setCost(sessionStopResult.getData().getInfo().getPrice().getTotal()); showSnackbar( "Stopped your session. You parked for " + Utils.roundToDecimals( sessionStopResult.getData().getInfo().getPrice().getTotal(), 2) + "."); updateUser(); } else { showSnackbar("Error when stopping session"); } } }); }
From source file:be.roots.taconic.pricingguide.service.MailServiceImpl.java
License:Open Source License
@Override public void sendReport(DateTime lastMonth, String filename, byte[] report) throws MessagingException { final MimeMessageHelper helper = new MimeMessageHelper(javaMailSender.createMimeMessage(), true); helper.setFrom(fromEmail);//w w w . j av a2 s .co m if (StringUtils.isEmpty(testEmail)) { helper.setTo(reportRecipientEmail.split(",")); } else { helper.setTo(testEmail.split(",")); } if (!StringUtils.isEmpty(bccEmail)) { helper.setBcc(bccEmail.split(",")); } helper.setSubject(documentTitle + " requests for " + lastMonth.toString(DefaultUtil.FORMAT_MONTH)); final String body = "Dear<br>" + "<br>" + "Attached you find the overview of " + documentTitle + " requests for " + lastMonth.toString(DefaultUtil.FORMAT_MONTH) + ".<br>" + "<br>" + "Taconic Biosciences, Inc.<br>" + "One Hudson City Centre<br>" + "Hudson, New York 12534<br>" + "North America +1 888 822-6642<br>" + "Europe +45 70 23 04 05<br>" + "info@taconic.com<br>" + "www.taconic.com"; helper.setText(body, true); helper.addAttachment(filename, new ByteArrayResource(report)); javaMailSender.send(helper.getMimeMessage()); }
From source file:be.roots.taconic.pricingguide.service.ReportServiceImpl.java
License:Open Source License
private String getFileNameFor(DateTime date) { return reportLocation + "/report-" + date.toString(DefaultUtil.FORMAT_MONTH) + ".csv"; }
From source file:ch.icclab.cyclops.util.DateInterval.java
License:Open Source License
public DateInterval() { DateTime from = whenWasLastPull(); fromDate = from.toString("yyyy-MM-dd'T'HH:mm:ssZ"); toDate = new DateTime(DateTimeZone.UTC).toString("yyyy-MM-dd'T'HH:mm:ssZ"); if (fromDate.contains("+")) fromDate = fromDate.substring(0, fromDate.indexOf("+")); if (toDate.contains("+")) toDate = toDate.substring(0, toDate.indexOf("+")); }
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 www . j a v a2 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:ch.silviowangler.dox.DoxVersion.java
License:Apache License
public String formatVersion() { if (this.version.contains("-")) { String[] tokens = this.version.split("-"); if (tokens.length == 3 && this.version.matches("(\\d\\.?)+-[A-Za-z0-9]+-\\d{14}")) { DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHHmmss"); DateTime dateTime = dateTimeFormatter.parseDateTime(tokens[tokens.length - 1]); StringBuilder sb = new StringBuilder(tokens[0]); sb.append("-").append(tokens[1]).append(" (").append(dateTime.toString("dd.MM.yyyy HH:mm:ss")) .append(")"); return sb.toString(); } else if (tokens.length == 2 && tokens[1].matches("\\d{14}")) { DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHHmmss"); DateTime dateTime = dateTimeFormatter.parseDateTime(tokens[tokens.length - 1]); StringBuilder sb = new StringBuilder(tokens[0]); sb.append(" (").append(dateTime.toString("dd.MM.yyyy HH:mm:ss")).append(")"); return sb.toString(); }/*from w w w. j av a 2 s . co m*/ } if ("@dox.app.version@".equals(this.version)) { return "<development mode>"; } return "invalid"; }
From source file:ch.windmobile.server.datasourcemodel.JaxbDateTimeConverter.java
License:Open Source License
public static String printDateTime(DateTime dateTime) { try {//from ww w . j av a 2 s .co m return dateTime.toString(compatibleParser); } catch (Exception e) { return null; } }
From source file:classes.Querys.java
private String restarDias(String fecha, Integer cantidad) throws ParseException { DateTime dateTime = DateTime.parse(fecha, DateTimeFormat.forPattern("dd-MM-yyyy")); dateTime = dateTime.minusDays(cantidad); return dateTime.toString("dd-MM-yyyy"); }