Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
I would like to start by saying thanks for a great forum as this is my first post.
I'm a mechanical trader from Sweden using MultiCharts.
So far I have traded manually but in order to learn more about programming I was thinking of automate my systems.
Some of it I figured out but now I've run in to some problems.
When using my "Backtesting" code for automatic trading I found lot of logical errors when the orders are executed.
I'm no experienced programmer so I try here to see if anyone can help me out.
The main problem is that to many orders are sent at the same time.
The problems I found so far:
1. If MarketPosition = 1 and UseTrailing = true
(I'm long and have a initial stop&reverse in the market and also using a trailing stop)
If the trailing stop level moves one tick above the initial stop level the trailing is active.
Now I have a stop order at the trailinglevel and a stop&reverse order one tick below.
The stop&reverse order is twice as big as my current position. (flat+short)
The problem i see is that if the market moves really fast I'll be flat at the trailing level and short twice the initial position at the stop&reverse level.
When I trade this manually I put in one order at the trailing level to make me flat and one order at the stop&reverse order to make me short.
I'll attach a pic to make it easier to understand what I mean. (It shows a short position but the issue is the same)
Auto Trading:
Manual Trading:
2. If MarketPosition = 1 and UseMoveToBreakEven = true
Basically same problem.
I'll try to explain the logic I'm looking for:
- If I'm long 1 contract I want to have a stop&reverse at a specified level below the entryprice.
(Flat and Short at the same level.)
- If I'm long 1 contract and using UseTrailing and the trailing stop is above the initial stop&reverse I want to Sell 1 contract at the trailing level and 1 contract at the initial stop&reverse level.
(Flat and Short at two different levels.)
- If I'm long 1 contract and using MoveToBreakEven and the BreakEven level is above the initial stop&reverse I want to Sell 1 contract at the BreakEven level and 1 contract at the initial stop&reverse level.
(Flat and Short at two different levels.)
- If I'm long 1 contract and using MoveToBreakEven and UseTrailing I want to sell 1 contract at the highest of the two and 1 contract at the initial stop&reverse level.
(Flat and Short at two different levels.)
Hope you understand what I'm trying to describe....
If anyone can give me some ideas I'd really appreciate it.
Thanks, Lars
Can you help answer these questions from other members on NexusFi?
Let's take one at a time. Can you re-state item 1 again? I'm having a hard time following, although I must admit my eyes are so bad today (allergies) I can barely see the screen.
I don’t have multicharts, I use tradestation
Tradestation has a setting called “Wait for UR Out Confirmation” before it reverses direction.
Another setting is to only allow max 1 contracts at a time in each direction.
Without platform settings mentioned above implemented, orders as close as this could be a problem even in moderate trading conditions.
Another thing in your code is
h >= entryprice+BreakEvenFactor
If this is a trailing a long entry and the bar after entry is a very long bar, the high could pull the trail level up into the bar, stopping you out, long trailing is usually done from the low of the bar.
Nevi