would it not be better to still have the channel top/buttom as a manual variable, so that we can (with a human factor) decide where the best entry point for primers is?
if we where just before a big resistence, we could set the variable to just on the other side, so that if the rate breaks resistance we have primers, but if it bounces there is no need for primers…
if its on total auto pilot it would start exactly at 40% no matter what right?
I think manual borders will be a huge source of human error. And if some morons fly planes into a building or attack a hotel in India, your channel could have collapsed by the time you wake up. Manually setting retracements for main primers I get, but the system should at the very least keep your account alive even if you are AWFK for weeks. That means auto-triggering primers based on equity.
Re
D
[QUOTE=“sgude0;495669”]
I think manual borders will be a huge source of human error. And if some morons fly planes into a building or attack a hotel in India, your channel could have collapsed by the time you wake up. Manually setting retracements for main primers I get, but the system should at the very least keep your account alive even if you are AWFK for weeks. That means auto-triggering primers based on equity.
Re
D[/QUOTE]
It could Be a source for human error, but If i set a manual Channel bottom 50 pip bellow what The EA would do, my Channel would still Be fine…
Dont get me wrong, i like The idea of making it as much auto as possible.
i would never leave my accounts AFK for a longer period of time by The way… So many things Can go wrong
For most people I think it will be difficult to see where to put the channel border, but my main problem with manual borders is when stuff happens while you’re not looking. A 1000 pips fall due to some disaster, and your account is gone. I think manual borders would trigger primers too early or not at all depending on the skill level of the user. Greenlanding is a turtle rather than a hare, we’re talking years here. I’d love to have as much understanding about this as Michael, but it also looks like he’s working himself practically to death. Being able to take a vacation (preferably on your newly purchased private island in the Caribbean) is necessary once in awhile. Everything that can be automated should be, so the question is, what can be?
Re
D
Hello Dennis, Zepp,
I have started working on the EA with secondary and sub primers. I will try to release it by this weekend.
I agree with Dennis that the borders should extend with price action.
The first revision that I will release will not reactivate any primers if price retraces. The lot sizes will also be fixed in the first revision. After we are happy with the logic of the EA I will code autolot sizes.
So let me get back to work now. Keep the discussion ON.
Regards
CC
[QUOTE=“crisscross1983;495752”]
Hello Dennis, Zepp,
I have started working on the EA with secondary and sub primers. I will try to release it by this weekend.
I agree with Dennis that the borders should extend with price action.
The first revision that I will release will not reactivate any primers if price retraces. The lot sizes will also be fixed in the first revision. After we are happy with the logic of the EA I will code autolot sizes.
So let me get back to work now. Keep the discussion ON.
Regards
CC[/QUOTE]
Sounds great
Actually, there’s a new wrinkle. M says that if a main primer is taken out it should be “replaced by a secondary primer” (so P1 hits SL and only P2 is open). I initially thought that would be a regular secondary, but what he meant was that a new primer with all the characteristics of a main primer, but sized as a secondary. This is not going to be easy to code…
Just re-read that sentence, I probably should include an example of what I mean to be clearer.
At 1.5000 main #1 opens with 4K. At 1.4970 sec #1 opens with 2K. At 1.4920 main #2 opens with 4K. If rate now retraceses and hits 1.5000 again both main #1 and sec #1 is taken out. If rate then starts to fall again sec #2 should open at 1.5000 like a main primer, but sized like a secondary primer (we do after all still have an open main primer 80 pips below). Phuh…
It would probably be easiest code-wise to “re-open” closed main primers as if they were a new main primers, but with lesser size. Still. This is going to be a proverbial tongue twister.
Re
D
CC:
guess what have happend 2 times today
see the 2 trades at the arrow https://dl.dropboxusercontent.com/u/5267610/screen3.jpg
it dossent matter much though, as far as i can see, it Places a 0.02 trade along side the 0.01 trade and not a 0.01 trade…
but as there is max 1 extra trade open in either direction its not that big a deal
Looking forward to testing the new EA.
I agree with Dennis that we should try to automate as much as possible; but if we can add a way to disable things such as primers for those who wanna handle it manually that is fine by me.
CC and Dennis
Just thought of something i dont know If you have thought of…
The hole idea with The leftover primers is that at a later point they Will become normal trades when we have increased lot size to that size…
So when placing The primers we also need to Be shure that they are deployed in X*TP distance or we Will have a problem later on…
Or maybe another solution could Be a check If old primers are = or smaller than current lot size, and then just close Them when they turn green, and not re-use Them as normal trades
We can’t fit primers into “X*TP distance” and M doesn’t do that either. When regs become as large as an open primer I stop counting that order as a primer so it doesn’t affect channelTop/Bottom anymore (if no primers are larger than currentLotSize I remove the border completely). “Turning a primer into a reg” would take a lot of fuzzy logic, so what I do when an open order is too small is just to set its TP to open rate so that it will close as soon as it’s green and then add a regular order of the correct size where it should be. I do the same with open regs that are too small. Of course, if undersized regs are pending they can just be deleted.
Re
D
yes, M is not having a fixed TP at any time, this is why he can easily re-use the old primers even though they are not at fixed rate steps… and thats why im bringing this up, as we are running more “robotic”… just so that we are clear about what to do…
and im also voting for just setting a TP maybe 5-10 pip in green on the old primers when they are smaller or the same size as current trades, and not counting them as primers anymore
When trading manually it’s easy to make a judgment such as “oh, I’ll skip a reg here and just use this old primer instead”, but in code we could get stuck on that for months. I use an extra test (to avoid doubling up the regs) where if (OrderOpenRate()==OrderTakeProfit()) I know that this is an order I wanted to delete earlier, but couldn’t as it was open rather than pending, but I can safely ignore it while placing new regs as it will close as soon as possible by itself. Adding a few extra pips could work for a better programmer than me, but there’s no surety in profits unless you also start calculating swap and I don’t think that would be worth CC’s time. The list of what has to be included is already so long that, “would be nice” should be ignored, in my opinion.
Good catch though.
Re
D
i was thinking about covering the spread, but you are right, it wont make a big difference compared to swap costs, and if we are already trading the same or bigger lot size, then the spread cost wont be a big problem anyway… so yeah, lets get it working first, then we can always look at “nice to have” features [U][B]if[/B][/U] we want to use the time on it at a later point
I have figured out some of the “would be nice” code like putting short and long lots, current drawdown and lotsize on the chart as well as horizontal lines showing channelTop/Bottom. Even how to take a screen grab and automatically save image it to disk when primers open etc, but I’ll let CC focus on the skeleton first. Not much use for a nice haircut if you don’t have a skeleton, you’ll still be just a puddle on the floor
Re
D
by the way, i have to much time at work it seems, and a domain to spare…
so i have stats from my live account running here http://www.sepp.dk/
if anybody should be in doubt, i startet running the EA the 5 this month, and have ofcourse upgraded along the way the get the latest version once i had tested them in demo and backtests to see that they didnt go completly haywire…
BUT, i do this because i can look at MT4 all day while working, and know the system good enough to disable the EA and trade manually if something goes wrong, so let this also be a warning to people reading this that dont really know how the system works… the EA is in BETA, and NOT a final version, so DONT go live if you cant afford to loose your money.
To CC:
I’ve been working on the logic for primers (only in Excel) and I’m getting close to, well, a suggestion anyway.
First we need to split off from the channelBottom variable (using short primers in this example) to have a chance at replacements. So I added some new variables:
channelBottom: set by drawdown and kept at the same level until channel can be extended.
topMainShort: OrderOpenPrice() for highest main primer (instead of using channelBottom)
bottomMainShort: OrderOpenPrice() for lowest main primer
topSecondaryShort : OrderOpenPrice() for highest secondary primer
bottomSecondaryShort: OrderOpenPrice() for lowest secondary primer
topSubShort: OrderOpenPrice() for highest sub primer
bottomSubShort: OrderOpenPrice() for lowest sub primer
RetraceBuffer: used for replacement distance tests. We can’t immediately add new replacement primers as old ones hit SL or we’re likely to bring lots equal to all primers ever opened back with us on rate turn. Rate has to pass well by SL before we add a pending replacement to prepare for a new fall in rate.
mainLotSize: 3x currentLotSize
secLotSize: 1.5x currentLotSize
SubLotSize: 0.75x currentLotSize
Now, my thinking is that we need 5 new functions: OpenMainShort(), AddPendingMainShort(), AddPendingSecondaryShort(), AddPendingSubShort() and ModifyShortPrimers().
CalculateDrawdown will trigger OpenMainShort() when >=0.06, as before. This will open Main #1 and set channelBottom, topMainShort and bottomMainShort. It will also trigger AddPendingSecondaryShort(1) (which will add a pending secondary primer SEC #1 and set topSecondaryShort and bottomSecondaryShort), and trigger AddPendingSubShort(1) (which will add pending SUB #1 and set topSubShort and bottomSubShort).
Then we have ModifyShortPrimers() which triggers on every pip and loops through all primers (we can use different MagicNumbers to separate primers by type, Main:11111, Sec: 22222, Sub: 33333, regs: 12345) and looks for trailing stoploss, need for new primers or replacement of closed primers. This is where the variables come in.
While still falling, ModifyShortPrimers() will test:
Ask<=bottomMainShort: should call AddPendingMainShort(1) to add a pending main primer below.
Ask<=bottomSecondaryShort: should call AddPendingSecondaryShort(1) to add a pending secondary primer below.
Ask<=bottomSubShort: should call AddPendingSubShort(1) to add a pending sub primer below.
As long as the topXXX and bottomXXX variables are updated with the OrderOpenPrice() on each loop through ModifyShortPrimers(), we would successfully place orders in the trend direction (I think).
You may have notice that most functions has (1) as a parameter. This is to allow for the same functions to be used on retracements, I simply defined those as (2).
In the Excel sheet (see link below) I first have a red line symbolizing a large fall, then I have a green line below with data for a complete retracement.
On retracements, ModifyShortPrimers() will test:
Ask=>topMainShort+RetraceBuffer: should call AddPendingMainShort(2) to add a pending main primer below. Remember that replacing a main primer should be done with secondary primer sizing.
Ask=>topSecondaryShort+RetraceBuffer: should call AddPendingSecondaryShort(2) to add a pending secondary primer below.
Ask=>topSubShort+RetraceBuffer: should call AddPendingSubShort(2) to add a pending sub primer below.
In the Excel sheet I’ve used 10 pips for RetraceBuffer, but that’s clearly not enough (just a visual choice to point out its function). We’ll need a buffer as we don’t want to trigger replacement primers too quickly and carry them with us back up, but I need more advice from M to find a good distance for this. topXXX and bottomXXX would need to be updated as before, just in the other direction (bottom would now stay the same while top would change).
I’ve also added distance variables:
FirstSecondaryPlacement 300Point (from Main #1, used by OpenMainShort())
FirstSubPlacement 500Point (from Main #1, used by OpenMainShort())
MainPlacement 800Point (preferably set by retracement patterns)
SecondaryPlacement 800Point
SubPlacement 200Point
MainTakeProfit 1500Point
SecTakeProfit 1000Point
SubTakeProfit 200Point
Initially I also had a RemovePendingPrimers variable. The idea was that once safely back inside the regular channel we would delete all pending primers, but I’ve found that once we return to primer area for a second or later time we would still need the top/bottom variables. On a return the lot sizes are likely to be higher, but what we could do is add a test for lot size, and if the old primer is too small, either delete it and add a new one if the old one is just pending, or change TP to OrderOpenPrice() for a quick closing (and then ignore it in further tests) and add a new one with correct size. Since we’re using pendings, this won’t mess up the balance as the old would close as the new open (assuming we maintain the top/bottom variables, meaning we don’t delete primers far away with RemovePendingPrimers). Changing channelBottom to extend the regs would just exclude whatever topXXX/bottomXXX variable are now inside the channel, and since they’re set on each tick by ModifyShortPrimers(), we would maintain the distance between the different primer types and OpenMainPrimer() should never have to be run again as new primers, regardless of size, would just build on the old ones and slowly extend the channel when possible.
I still need more info from M to get a good strategy for changing channelBottom (extending the regs area) and a good way to choose RetraceBuffer, but hopefully this is a start.
Very messy Excel sheet at http://sdrv.ms/11aG22N. I made some mistakes in placement distance for main primers, please ignore that, it’s the logic that counts, not the specific rates.
I don’t know if this is understandable at all to others, but these are my current thoughts on primers
Re
D
PS! Variables who starts with a small letter is meant as internal, while those with capitol letters are external.
Wow… Dennis! Even when I understand not even the half I can follow the intentions of your thoughts… can this ever be coded once? The primers are the only MM the Greenland Strategy has (in my eyes) - if they fail all will fail.
On the other side… IF ever a robot can handle them you’re very near to a holy grail (and only some morons who
destroy the world outside can stop it). Reminds me on the medieval myth of making gold out of plumbum!
Well, assuming a real programmer like CC doesn’t find faults in the logic, the programming can be done. I’ve based everything on if statements. There might be better ways to do it than that, I’m just limited in programming experience. So far what I’ve come up with is simply:
“if rate < lowest opened primer, add another below in case of continued trend”
+
“if rate > highest opened primer+buffer, add a replacement in case of retracement”.
There’s a bit of fancy footwork needed to keep different types of primers apart, but basically this is all I said above. Now whether this logic will actually add enough primers to keep the channel alive, while not adding so many that it will contract, I do not know yet. We’ll just have to test once the code is written. It’s based on info from Michael, but I think he’s a pretty visual person, reacting to patterns and “just seeing” things rather than actually taking out a calculator. What I’m trying to do is reduce a “piece of art” to “paint by numbers”. We won’t end up with the Mona Lisa, but my goal is definatly to have a solution that can run on its own and still survive (and Mona Lisa has very exact mathematical proportions in all aspects).
I look at it like this, if the EA can make 60% of M’s profits from manual trades and the channel will never crash, then we can just set up more and more channels with the profits from the first one, eventually getting to a very nice income level.
Re
D
Hi guys, I see you are working hard on everything here, to make the EA more efficient. As was discussed on my OpenBook page on eToro last week, then it is as Sepp is saying. “If you don´t understand the system in detail” do not try to trade it as you are more likely to fail. The system look simple and innocent, but it´s a wolf in sheeps clothes really, especially when you reach the primer area. Now primers might seem very big in the beginning, but within a few months, they basically will have the same volume os your average trades. If you have primers in the bottom, you will also have to use primers on the way up. Now when having been up and down the ladder a few times, the primers will meet in the middle and you will have created a new volume and a new centre. But when using primers you need to be able to “read” the market, so it does take some experience to use the right sizes and calculate that you can either balance or change your trading level by turning the equity . So so far there isn´t a general solution how far down you will bring the primers, but it is up to the market conditions and your expectations, of which of the 2 options to use. Just be careful with turning the equity , as you need to calculate how far you can carry the primers in the opposite direction. The use of various size of primers and the distance of the tp´s is a very important part of the use of them. Also I never said that the system is " the holy grail" but so far nobody has been able to break it. But against " force majeur " nobody can protect themselves, apart from having the SL´s as far away during the weekend, if you use the web trader like on eToro, but when you use margin trading, it will of course be different. It is of course possible to keep the hourglass going forever, if you are good enough to place the primers and read the market. It´s called the Hourglass because it resembles a string of hourglasses attached on the bottom of each other,like XXXXXXXXX . It indicates that you can jump trading ranges even if the rate move a few thousand pips in one direction. But of course Dennis if you have more questions, you know where you can find me …Have a great week all and good luck with the EA!!.. Michael