Tag Archives: 3rd party

MotiveWave SDK Java no 3rd party coding problems so far

Here they are as there are few 3rd party examples

BIG UPDATE BELOW which means I got this partially working!!

I tested to add a Redis NOSQL (3rd party) using simple Jedis Jar. This was done fairly easily with another Mac OS based proprietary platform like Dukascopy JForex. I could see the Redis update when running the strategy or study within MotiveWave. This builds fine. but there does not seem debugging log capabilities for a strategy but there is for studies. Also, when making changes in the Java in Eclipse, the MotiveWave platform does not seem to pick up the latest changes  in a dynamically changed class.  The only way for this to be picked up is by reseting the platform.

My opinion but it is looking good but …

I think there needs to a be lot more samples from MotiveWave instead of just 3 simple studies and 1 strategy. I could only find one other 3rd party providing further examples. Unfortunately, I am not  in the business of spinning my wheels to figure this out as compared to other brokers/platform who provide flawless coding experiences. I think I need to see a demo or better examples.

Until then, I am may just use MotiveWave for charting or connecting with IQFeed only. I can do that with the entry level MotionWave edition. This platform is very exciting indeed but I need to get to see improvements in the above area before I get serious with it from a coding point for view.

BIG UPDATE on getting Java coding! (Nov 29)

See the video to see what is working including text writing and CSV reading files

Here is working Java code as hinted in the video

package study_examples;

import com.motivewave.platform.sdk.common.Coordinate;

import com.motivewave.platform.sdk.common.DataContext;

import com.motivewave.platform.sdk.common.DataSeries;

import com.motivewave.platform.sdk.common.Defaults;

import com.motivewave.platform.sdk.common.Enums;

import com.motivewave.platform.sdk.common.Inputs;

import com.motivewave.platform.sdk.common.MarkerInfo;

import com.motivewave.platform.sdk.common.desc.InputDescriptor;

import com.motivewave.platform.sdk.common.desc.IntegerDescriptor;

import com.motivewave.platform.sdk.common.desc.MAMethodDescriptor;

import com.motivewave.platform.sdk.common.desc.MarkerDescriptor;

import com.motivewave.platform.sdk.common.desc.PathDescriptor;

import com.motivewave.platform.sdk.common.desc.SettingGroup;

import com.motivewave.platform.sdk.common.desc.SettingTab;

import com.motivewave.platform.sdk.common.desc.SettingsDescriptor;

import com.motivewave.platform.sdk.common.desc.ValueDescriptor;

import com.motivewave.platform.sdk.draw.Marker;

import com.motivewave.platform.sdk.study.RuntimeDescriptor;

import com.motivewave.platform.sdk.study.Study;

import com.motivewave.platform.sdk.study.StudyHeader;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import redis.clients.jedis.Jedis;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

/** Moving Average Cross. This study consists of two moving averages: 

    Fast MA (shorter period), Slow MA. Signals are generated when the 

    Fast MA moves above or below the Slow MA. Markers are also displayed 

    where these crosses occur. */

@StudyHeader(

  namespace=”com.mycompany”, 

  id=”MACROSS”, 

  name=”Sample Moving Average Cross”,

  label=”MA Cross”,

  desc=”Displays a signal arrow when two moving averages (fast and slow) cross.”,

  menu=”Examples”,

  overlay=true,

  signals=true)

public class SampleMACross extends Study

{

  enum Values { FAST_MA, SLOW_MA };

  enum Signals { CROSS_ABOVE, CROSS_BELOW };

  @Override

  public void initialize(Defaults defaults)

  {

try {

File file = new File(“/Users/quantlabsnet/atestfile1.txt”);

FileWriter fileWriter = new FileWriter(file);

fileWriter.write(“This is “);

fileWriter.write(“a test”);

fileWriter.flush();

fileWriter.close();

} catch (IOException e) {

this.debug(e.toString());

e.printStackTrace();

}

//https://www.mkyong.com/java/how-to-read-and-parse-csv-file-in-java/

String csvFile = “/Users/quantlabsnet/country.csv”;

    BufferedReader br = null;

    String line = “”;

    String cvsSplitBy = “,”;

    try {

        br = new BufferedReader(new FileReader(csvFile));

        while ((line = br.readLine()) != null) {

            // use comma as separator

            String[] country = line.split(cvsSplitBy);

            this.debug(“Country [code= ” + country[4] + ” , name=” + country[5] + “]”);

        }

    } catch (FileNotFoundException e) {

        e.printStackTrace();

        this.debug(e.toString());

    } catch (IOException e) {

        e.printStackTrace();

        this.debug(e.toString());

    } finally {

        if (br != null) {

            try {

                br.close();

            } catch (IOException e) {

                e.printStackTrace();

                this.debug(e.toString());

            }

        }

    }

// Jedis jedis = new Jedis(“localhost”); 

//    this.debug(“Connection to server sucessfully”); 

//    //check whether server is running or not 

//    this.debug(“Server is running: “+jedis.ping()); 

 

this.debug(“hello debug from SampleMACross()”);

 

    // User Settings

    SettingsDescriptor sd=new SettingsDescriptor();

    setSettingsDescriptor(sd);

    SettingTab tab=new SettingTab(“General”);

    sd.addTab(tab);

    // Fast MA (shorter period)

    SettingGroup ma1=new SettingGroup(“Fast MA”);

    tab.addGroup(ma1);

    ma1.addRow(new InputDescriptor(Inputs.INPUT, “Fast Input”, Enums.BarInput.CLOSE));

    ma1.addRow(new MAMethodDescriptor(Inputs.METHOD, “Fast Method”, Enums.MAMethod.EMA));

    ma1.addRow(new IntegerDescriptor(Inputs.PERIOD, “Fast Period”, 10, 1, 9999, 1));

    // Slow MA (shorter period)

    SettingGroup ma2=new SettingGroup(“Slow MA”);

    tab.addGroup(ma2);

    ma2.addRow(new InputDescriptor(Inputs.INPUT2, “Slow Input”, Enums.BarInput.CLOSE));

    ma2.addRow(new MAMethodDescriptor(Inputs.METHOD2, “Slow Method”, Enums.MAMethod.EMA));

    ma2.addRow(new IntegerDescriptor(Inputs.PERIOD2, “Slow Period”, 20, 1, 9999, 1));

    tab=new SettingTab(“Display”);

    sd.addTab(tab);

    SettingGroup lines=new SettingGroup(“Lines”);

    tab.addGroup(lines);

    lines.addRow(new PathDescriptor(Inputs.PATH, “Fast MA”, defaults.getGreenLine(), 1.0f, null, true, false, false));

    lines.addRow(new PathDescriptor(Inputs.PATH2, “Slow MA”, defaults.getBlueLine(), 1.0f, null, true, false, false));

    SettingGroup markers=new SettingGroup(“Markers”);

    tab.addGroup(markers);

    markers.addRow(new MarkerDescriptor(Inputs.UP_MARKER, “Up Marker”, Enums.MarkerType.TRIANGLE, Enums.Size.SMALL, defaults.getGreen(), defaults.getLineColor(), true, true));

    markers.addRow(new MarkerDescriptor(Inputs.DOWN_MARKER, “Down Marker”, Enums.MarkerType.TRIANGLE, Enums.Size.SMALL, defaults.getRed(), defaults.getLineColor(), true, true));

    // Runtime Settings

    RuntimeDescriptor desc=new RuntimeDescriptor();

    setRuntimeDescriptor(desc);

    desc.setLabelSettings(Inputs.INPUT, Inputs.METHOD, Inputs.PERIOD, Inputs.INPUT2, Inputs.METHOD2, Inputs.PERIOD2);

    desc.exportValue(new ValueDescriptor(Values.FAST_MA, “Fast MA”, new String[] { Inputs.INPUT, Inputs.METHOD, Inputs.PERIOD }));

    desc.exportValue(new ValueDescriptor(Values.SLOW_MA, “Slow MA”, new String[] { Inputs.INPUT2, Inputs.METHOD2, Inputs.PERIOD2 }));

    desc.exportValue(new ValueDescriptor(Signals.CROSS_ABOVE, Enums.ValueType.BOOLEAN, “Cross Above”, null));

    desc.exportValue(new ValueDescriptor(Signals.CROSS_BELOW, Enums.ValueType.BOOLEAN, “Cross Below”, null));

    desc.declarePath(Values.FAST_MA, Inputs.PATH);

    desc.declarePath(Values.SLOW_MA, Inputs.PATH2);

    // Signals

    desc.declareSignal(Signals.CROSS_ABOVE, “Fast MA Cross Above”);

    desc.declareSignal(Signals.CROSS_BELOW, “Fast MA Cross Below”);

    desc.setRangeKeys(Values.FAST_MA, Values.SLOW_MA);

  }

  @Override

  protected void calculate(int index, DataContext ctx)

  {

    int fastPeriod=getSettings().getInteger(Inputs.PERIOD);

    int slowPeriod=getSettings().getInteger(Inputs.PERIOD2);

    if (index < Math.max(fastPeriod, slowPeriod)) return; // not enough data

    DataSeries series=ctx.getDataSeries();

    // Calculate and store the fast and slow MAs

    Double fastMA=series.ma(getSettings().getMAMethod(Inputs.METHOD), index, fastPeriod, getSettings().getInput(Inputs.INPUT));

    Double slowMA=series.ma(getSettings().getMAMethod(Inputs.METHOD2), index, slowPeriod, getSettings().getInput(Inputs.INPUT2));

    if (fastMA == null || slowMA == null) return;

    series.setDouble(index, Values.FAST_MA, fastMA);

    series.setDouble(index, Values.SLOW_MA, slowMA);

    if (!series.isBarComplete(index)) return;

    // Check to see if a cross occurred and raise signal.

    Coordinate c=new Coordinate(series.getStartTime(index), slowMA);

    if (crossedAbove(series, index, Values.FAST_MA, Values.SLOW_MA)) {

      MarkerInfo marker=getSettings().getMarker(Inputs.UP_MARKER);

      if (marker.isEnabled()) addFigure(new Marker(c, Enums.Position.BOTTOM, marker));

      ctx.signal(index, Signals.CROSS_ABOVE, “Fast MA Crossed Above!”, series.getClose(index));

    }

    else if (crossedBelow(series, index, Values.FAST_MA, Values.SLOW_MA)) {

      MarkerInfo marker=getSettings().getMarker(Inputs.DOWN_MARKER);

      if (marker.isEnabled()) addFigure(new Marker(c, Enums.Position.TOP, marker));

      ctx.signal(index, Signals.CROSS_BELOW, “Fast MA Crossed Below!”, series.getClose(index));

    }

    series.setComplete(index);

  }

}

 

 

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Python do it yourself coding vs 3rd party trading platforms

Python do it yourself coding vs 3rd party trading platforms like Multicharts

Questions from someone via my help desk:

Here is the exact question which is found here 

Hope all is well. I am at a crossroads right now when it comes to choosing a platform, and coding the proper language for some strategies.  Im not interested in wasting too much time, for now. I do have interest down in the road when my time frees up to go through libraries of videos. I have accounts at Interacrive Brokers, and was planning on using Multicharts to execute trades to IB but have come across the open source you were posting about with tradelink. Does this seem like the route to be taking? Coding language for tradelink? I read about guys bashing people for not wanting to pay the $1500/lifetime but for what Ive paid for a lot of programming to get done Id be penny pinching these days just like anyone else and asking questions. Hindsight is 20/20 and I dont want to waste much more time and or money. Im looking to just begin trading and trying to open up avenues for business grow when that happens. Thanks for the time.

Python do it yourself coding vs 3rd party trading platforms like Multicharts
This is only execlusive through my new broadcast email which you can access here

Mobile friendly sign up (corrected)

Introducing my New entry level Quant Analytics Lite version

This is only execlusive through my new broadcast email which you can access here

Mobile friendly sign up (corrected)

Check out my the details payment URLs here 

This will be a limited time offer to get into a grandfatheredmembership if you want to start out watching my automated trading system. As you know, I will be adding many new daily postings which include my portfolio analysis, position handling, price action, asset watchlist which will be part of my full analytics service. 

If you are interested in this new introductory entry level membership, please get it here

Buy Now via Paypal
I am also testing out a newer payment merchant called Stripe. Would you be interested in paying that way?
NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Python do it yourself coding vs 3rd party trading platforms like Multicharts

Python do it yourself coding vs 3rd party trading platforms like Multicharts

Questions from someone via my help desk:

Hope all is well. I am at a crossroads right now when it comes to choosing a platform, and coding the proper language for some strategies.  Im not interested in wasting too much time, for now. I do have interest down in the road when my time frees up to go through libraries of videos. I have accounts at Interacrive Brokers, and was planning on using Multicharts to execute trades to IB but have come across the open source you were posting about with tradelink. Does this seem like the route to be taking? Coding language for tradelink? I read about guys bashing people for not wanting to pay the $1500/lifetime but for what Ive paid for a lot of programming to get done Id be penny pinching these days just like anyone else and asking questions. Hindsight is 20/20 and I dont want to waste much more time and or money. Im looking to just begin trading and trying to open up avenues for business grow when that happens. Thanks for the time.

Get more info on this Python Algo Course here 

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Why I don’t like 3rd party dependency or service for automated trading

Why I don’t like 3rd party dependency or service for automated trading

I don’t believe in 3rd party system anymore. These are usually put out by people with little knowledge in the markets in todays automated programming world. That is just my view but I am skeptical for a lot of it. This was sent in by a new Quant Elite Member

Join my FREE newsletter to see how I planto build out my automated trading system you can depend on 

http://sceeto.com/

http://www.stockmarketfunding.com/

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

Why NO more videos or 3rd party presentations from my Meetup sessions

Why NO  more videos or 3rd party presentations from my Meetup sessions

Effective immediately, I had to make an executive decision to no longer host videos publicly recorded from my Meetup groups to be posted on my Youtube channel. Find the reason and outcome here:

https://quantlabs.net/blog/2015/06/once-revered-quant-gets-our-youtube-good-standing-yanked/

What this mean is if you always depends on watching video playbacks, they will no longer be put on my Youtube channel at https://www.youtube.com/user/quantlabs/. You will need to watch only the live presentation.

This also means there will be no more support for third party vendors/indie traders to present to my Meetup my groups. Sorry I can no longer will risk my Youtube channel as I have put 5 years of hard work  into developing it to where it is today. This include 2000+ subscribers with 950+ videos and 500,000+ views.

I have got 2 separate NYC based lawyers who feel punitive damages could come out this this inadvertent Youtube video take down action but I just want to reinstate my good standing.

Hope you understand my position over this as well as a huge apology who may have had an interest in presenting a future session.

Bryan

Toronto .NET Developer Meetup

Toronto, ON
663 Members

This group was created to give Toronto .NET Developers an opportunity to meet and network. It will allow developers an opportunity to meet face-to-face and share best practice…

Check out this Meetup Group →

http://www.meetup.com/R-Matlab-Users/

Quant Finance

Toronto, ON
1,613 Members

Quant Finance group talking hedge fund, investment, quant analytics, and quant tech development. This includes MatLab, C++, C#/.NET, Java, Excel, VBA, Python, R, etc. I would …

Check out this Meetup Group →

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

3rd party software selected for stock charting in Office Excel with advantages of VBA QuantLib Matlab

Hi there

I have investigated various options to help in my trading infrastructure but there is nothing easier than Microsoft Excel. Here is what I mean:

3rd party software selected for stock charting in Office Excel with advantages of VBA

3rd party software selected for stock charting in Office Excel with advantages of VBA



You heard that right. I have decided to commit to a piece of software which is based on Excel worksheets with VBA. It can make life easier but execution is slower. That is ok since these are strictly used for monitoring purposes which has no part of the core trading execution. I already showcased that last week. As a result, you can expect to see some exciting developments  with screeners, decent visual charting, high level market views using Excel. It should be pretty fast to develop as well. Remember I also demoed how to integrate Matlab with Excel as well. Watch this:

https://quantlabs.net/blog/2012/12/youtube-video-matlab-demo-spreadsheet-link-ex-with-microsoft-excel-and-iqfeed-real-time-data/

Or how about with QuantLib using QuantLibXL with C++

how to build quantlib quantlixl as a microsoft excel addin uses visual studio c++

https://quantlabs.net/blog/2012/01/9258/

Wow. I have impressed myself from all this work? Hmm.

You should also check out the day trading capabilities through the video at

http://tsunami.io/media.html#pane-12

Join me and my 150+ members as I piece together various webinars showing how to piece this all together.

–> JOIN NOW <–


Here are the many benefits this offers

Have a profitable trading day,

Bryan

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

FREE GPU CUDA 3rd party high level C++ library for math awesomeness with genetic algorith,, neural net learning, PC, FFT, BLAS

FREE GPU CUDA 3rd party high level C++ library for math awesomeness with genetic algorithm, neural net learning, PCA, FFT, BLAS

I stlll have to verify this is free but there is a download button with no limitations. I will try to post a video on this.

Key is ensure it is compatible for both Windows and Linux which this does

http://www.accelereyes.com/arrayfire/c/examples_2financial_2blackscholes_8cpp-example.htm

After further digging, this is actually an expensive option:

http://www.accelereyes.com/products/arrayfire_licensing

Learn more if I implement this into HFT platform

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!

From Alfresco: Let’s confuse those poor 3rd party developer saps with multiple versions of this Javascript API

From Alfresco: Let’s confuse those poor 3rd party developer saps with multiple versions of this Javascript API
Yes you heard correct. The junk process of making everything backward incompatible. Another smart software engineering process over at Alfresco. Right from their wiki
? For the next version of Alfresco (3.4.X and HEAD) 3.4 Java Script API and 3.4 Java Script Services
? Alfresco 3.3 code line 3.3 Java Script API and 3.3 Java Script Services
? Alfresco 3.2 code line 3.2_JavaScript_API and 3.2 Java Script Services
? Alfresco 3.1 code line 3.1_JavaScript_API and 3.0 Java Script Services (no changes from 3.0)
? Labs 3D/STABLE and 3.0.XE code line: 3.0_JavaScript_API and 3.0 Java Script Services
? For older Alfresco 2.1 or previous versions JavaScript API For Alfresco 2.1.

Confused|? So am I? Nice!
http://wiki.alfresco.com/wiki/JavaScript_API

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!