Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

clbradley

Need Help with Hull MA Crossover Strategy

Recommended Posts

If I wanted to use the Hull Moving Average (jtHMA) for a crossover strategy instead of a simple or exponential moving average crossover strategy, how would it be coded in Easy Langurage for a fast length jtHMA(10) and a slow length jtHMA (20) with parameters that if fast avg jtHMA crosses above slow avg jtHMA then BuyLong 100 shares next bar at market, and SellShort if reverse, and would like to be able to displace the jtHMAs + or -1, 2, or 3, and will be using this on a 30 or 60 min. timeframe?

 

Also, is it possible, or even necessary, to put within the strategy a buy/sellshort order with a pre-set stoploss? Possibly something like:

 

If conditions are met for fast jtHMAavg crosses slow jtHMAavg, then begin;

buy/sellshort 100 shares next bar at market;

SetProfitTarget(1000);

SetStopLoss( 100);

end;

 

This is going to be my first time using a strategy, and want to backtest it, haven't tried that and not sure how to figure it in for possible flaws and slippage for backtesting in Tradestation. I'm going to use it on a 2x or 3x Proshares or Direxion index fund, and the position will reverse immediately when the jtHMAs cross on the next bar after the cross, from long to sellshort, or vice-versa. Not sure if that brings more problems, the instant reversal.

 

 

Thanks for any help.

 

Curtis

Share this post


Link to post
Share on other sites
If I wanted to use the Hull Moving Average (jtHMA) for a crossover strategy instead of a simple or exponential moving average crossover strategy, how would it be coded in Easy Langurage for a fast length jtHMA(10) and a slow length jtHMA (20) with parameters that if fast avg jtHMA crosses above slow avg jtHMA then BuyLong 100 shares next bar at market, and SellShort if reverse, and would like to be able to displace the jtHMAs + or -1, 2, or 3, and will be using this on a 30 or 60 min. timeframe?

 

Also, is it possible, or even necessary, to put within the strategy a buy/sellshort order with a pre-set stoploss? Possibly something like:

 

If conditions are met for fast jtHMAavg crosses slow jtHMAavg, then begin;

buy/sellshort 100 shares next bar at market;

SetProfitTarget(1000);

SetStopLoss( 100);

end;

 

This is going to be my first time using a strategy, and want to backtest it, haven't tried that and not sure how to figure it in for possible flaws and slippage for backtesting in Tradestation. I'm going to use it on a 2x or 3x Proshares or Direxion index fund, and the position will reverse immediately when the jtHMAs cross on the next bar after the cross, from long to sellshort, or vice-versa. Not sure if that brings more problems, the instant reversal.

 

 

Thanks for any help.

 

Curtis

 

 

Curtis

 

 

You mention you would like to displace 1,2 or 3...... the displace feature is only affected on where to plot the lines..... the actual real time values are the same, all the displace feature does is move the lines back x amount of bars.

 

With regards to your strategy, here's a code that should get you started...

 

Inputs:

FastLength(10), SlowLength(20);

 

Vars:

FastAvg(0),SlowAvg(0);

 

FastAvg = jTHMA(Close,FastLength);

SlowAvg = jTHMA(Close,SlowLength);

 

 

If FastAvg crosses above SlowAvg then

buy 100 shares next bar at market;

 

If FastAvg crosses below SlowAvg then

sellshort 100 shares next bar at market;

 

 

SetProfitTarget(1000);

SetStopLoss( 100);

 

 

Hope this helps

 

Blu-Ray

Share this post


Link to post
Share on other sites

Thanks again, Blu-Ray. Do I need to put in anything to state if I want this to repeat buy/sellshort order on a daily timeframe or 60 minute timeframe? No need to use (end;) at the end? Thanks for any more info, especially on the time issue.

 

Curtis

Share this post


Link to post
Share on other sites
Thanks again, Blu-Ray. Do I need to put in anything to state if I want this to repeat buy/sellshort order on a daily timeframe or 60 minute timeframe? No need to use (end;) at the end? Thanks for any more info, especially on the time issue.

 

Curtis

 

Hi Curtis

 

The code will work on any timeframe, just insert the strategy onto the relevant chart and it will work.

 

There's no need to use the word "end" on that code, you only use the word end if the true/ false condition is to specify more than one outcome and then you would have to use the word "begin" as well.

 

Here's an example.....

 

This is to specify only one outcome.... to plot something

 

If FastAvg crosses above SlowAvg then

Plot1(High,"Long");

_______________________________________________

 

This is to specify two outcomes... to plot & also to alert.

 

If FastAvg crosses above SlowAvg then begin

Plot1(High,"Long");

Alert("CrossOver Long");

end;

 

Hope this helps

 

Blu-Ray

Share this post


Link to post
Share on other sites

Thanks again so much Blu-Ray, they've been working me to death this week, and haven't had any time off. I don't know why I thought that you had to specify if it was on a 15, 30, 60 minute, or daily basis in the code. If I wanted to have the trade for just during the session 9:30-4 Eastern Standard Time and end at the end of day each day instead of holding overnight, what would be required? I have a couple others that look good, one with a simple moving average crossover, and the other with an exponential crossover, so should I just replace

FastAvg = jTHMA(Close,FastLength);

SlowAvg = jTHMA(Close,SlowLength);

with SMA or EMA, instead of jtHMA?

 

Thanks again for all your help.

 

Curtis

Share this post


Link to post
Share on other sites
Thanks again so much Blu-Ray, they've been working me to death this week, and haven't had any time off. I don't know why I thought that you had to specify if it was on a 15, 30, 60 minute, or daily basis in the code. If I wanted to have the trade for just during the session 9:30-4 Eastern Standard Time and end at the end of day each day instead of holding overnight, what would be required? I have a couple others that look good, one with a simple moving average crossover, and the other with an exponential crossover, so should I just replace

FastAvg = jTHMA(Close,FastLength);

SlowAvg = jTHMA(Close,SlowLength);

with SMA or EMA, instead of jtHMA?

 

Thanks again for all your help.

 

Curtis

 

Hi Curtis

 

You just need to insert a start & endtime to the code.... so it would like this....

 

Inputs:

FastLength(10), SlowLength(20), StartTime(0930),EndTime( 1600 );

 

Vars:

FastAvg(0),SlowAvg(0);

 

FastAvg = jTHMA(Close,FastLength);

SlowAvg = jTHMA(Close,SlowLength);

 

If Time > StartTime and Time < EndTime then begin

 

If FastAvg crosses above SlowAvg then

buy 100 shares next bar at market;

 

If FastAvg crosses below SlowAvg then

sellshort 100 shares next bar at market;

 

end;

 

 

SetProfitTarget(1000);

SetStopLoss( 100);

 

SetExitOnClose;

 

 

With regards to changing the type of moving average, yes just replace the jTHMA with xaverage for EMA or average for SMA.

 

Hope this helps

 

Blu-Ray

Share this post


Link to post
Share on other sites

I tried adding these 2 lines to Blu-ray's last code above:

 

If FastAvg is above SlowAvg at open then buy 100 shares next bar at market;

 

If FastAvg is below SlowAvg at open then sellshort 100 shares next bar at market;

 

and thought they would work above the crossover rules, but when I tried to verify, it said "arithmetic cannot be converted to true/false".

 

Isn't there a way to mesh these rules so that on days after the moving averages have crossed, the strategy can still get in at or near the open to obtain gains on those days when the fast MA remains above or below the slow MA all day or week, and still change upon a cross and exit end of day?

 

Thanks for any help.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.