Slingshot system

Let me know if the link doesn’t work.

bkr1969, I was able to download it but it is an .ex4 file so I can’t do anything with it.

You can open the file with MetaEditor in MT4 and/or change the .ex4 extension to .mq4 in the link and it will download the uncompiled code (which still needs to be opened with MetaEditor to be compiled).

bkr,
thank you very much for your “little dissertation” that I appreciated very mcuh. Actually I agree with you 1000%. I know very well that the straddle was not yours, and I want to point out here that you were, more than the inventor himself, the one making it a “serious” and “rigorous story”. Those were my “first times” with the FX and BP, and as you know I appreciated you very much, as I do again now.

Basically I can say that the same kind of “philosophy” or “little wisdom” about the markets and the good trading approach to them are the forces who took me mainly back to where I came before the forex, and namely the option world, where I just apply what you’re telling us here. But this is just me. It is also a very “relaxing experience”, without the need of looking at the screen the whole day, etc… Think about: I set up my trades in my (European) morning, when markets are closed, I have fresh mind and cold analysis switched on… :wink:

Now my profits, there, are just very nice, and I have the feeling they’ll consistently outperform my forex trades. But, as already said, in the limits of my time (I have a cumbersome job and a nice, but demanding family) I’ll give “your” slingshot (or mine: probably they are just a variation of the same basic thing) a trial.

Thanks again and keep on!

Bye

Fabio

Thanks for your kind words, fsprea. I hope your testing is successful.

For anyone who has previously downloaded the EA, I realized last night that the SL movement for every 50 pips had been coded wrong. (It would only move the SL for every 50 dollars in profit. Fine if you’re trading lots so that 1 pip = $1, but not good if you’re trading .05 lots like I’ve been.)

I fixed this minor glitch and re-uploaded the EA here.

Maybe I am a doldt - but I cannot get this in .mq4? I’ve done what you recommended hit save on the .ex4 then when window pops up change to .mq4, but all i see is EX4 on first line of code and then some wingdings type of stuff on second line.
I had downloaded the .mq4 previously, but I don’t see that as an option anymore.

I’ll go into chatroom for a bit - maybe someone can tell me what I need to do?

Excellent post!

I’ve heard so much about back testing. Who cares if something performs bad during back testing? If it performs well in the present, then it’s a winner!

I also totally agree about keeping forex simple. A trading system should not be as complicated as some esoteric physics formula. It should be based on a simple plan with some simple principles that works the majority of the time.

That’s all you have to do to make it in the world of Forex.

I just downloaded your EA. I’ll be testing it out on a demo account of $1,000. I’ll use the Daily Charts with the GBP/USD.

Looking forward to hearing more.

Thanks for everything,

-ForexPhantom-

I get the exact same problem!

Help plz :eek:

Thanks,

-ForexPhantom-

http://www.brianredmond.net/forex/Slingshot/Slingshot.mq4

Here’s the actual code as well:

//+------------------------------------------------------------------+
//|                                             Slingshot System.mq4 |
//|                                  Copyright � 2009, Brian Redmond |
//|                      http://www.brianredmond.net/forex/Slingshot |
//+------------------------------------------------------------------+

#property copyright "Copyright � 2009, Brian Redmond"
#property link   "[email protected]/forex/Slingshot"

//---- input parameters
extern double    Lots=0.1;

bool tradeOpen=false;
int ticket=0,diff,tickNum[5];
double sl,spread,profTest=50.0;

bool NewBar()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar!=curbar)
   {
      lastbar=curbar;
      return (true);
   }
   else
   {
      return(false);
   }
}

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----

  tradeOpen=false;
  ticket=0;
  profTest=50.0;

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

  tradeOpen=false;
  ticket=0;
  profTest=50.0;
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

void shortTrade()

 {
   sl=High[0]+Point;
   if(sl<(Bid+(10*Point))) sl=Bid+(10*Point);
   ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,sl,0);
   profTest=50.0*Lots;
   if(ticket<0)
     {
       Print("Error # ",GetLastError());
       tradeOpen=false;
       return(0);
     }
 }

void longTrade()

 {
   sl=Low[0]-Point;
   if(sl>(Ask-(10*Point))) sl=Ask-(10*Point);
   ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,sl,0);
   profTest=50.0*Lots;
   if(ticket<0)
     {
       Print("Error # ",GetLastError());
       tradeOpen=false;
       return(0);
     }
 
 }
 
bool checkPrior()

 {
   diff=(MathAbs(High[1]-Low[1]))/Point;
   if(diff>=20) return(true);
   else return(false);
 }

int tradeDir()

 {
   if(Close[1]>Open[1]) return(-1);
   else 
     {
       if(Close[1]<Open[1]) return(1);
       else return(0);
     }
 }

int start()
 {
 
  if((NewBar() == true)||((DayOfWeek()==6)&&(Hour()==20)))
   { // Close orders with new candle or on Friday to avoid gaps
     if(tradeOpen==true)
       {
         int total = OrdersTotal();
         int cnt = 0;
         int t = 0, x = 0;

         for (cnt = total ; cnt >0 ; cnt--)
            {
               OrderSelect((cnt - 1),SELECT_BY_POS,MODE_TRADES);
               tickNum[t]=OrderTicket();
               t++;
             }
             for (x=(total-1);x>=0;x--)
             {
                OrderSelect(tickNum[x],SELECT_BY_TICKET);
                  if(OrderType()==OP_BUY)
                     OrderClose(OrderTicket(),OrderLots(),Bid,0);
                  if(OrderType()==OP_SELL) 
                     OrderClose(OrderTicket(),OrderLots(),Ask,0);
            }
          tradeOpen=false;
       }
   } //End New Bar 
       
   if((Hour()>=7)&&(Hour()<20))
   {
     if((checkPrior()==true)&&(tradeOpen==false))
       {
         spread = (MarketInfo(Symbol(),MODE_SPREAD)*Point);
         if(tradeDir()==1)
           {
             if((Low[0]<Low[1])&&((Ask-spread)>(Close[1]-spread)))
               {
                 tradeOpen=true;
                 longTrade();
               }
           }
       
         if(tradeDir()==-1)
           {
             if((High[0]>High[1])&&((Bid+spread)<(Close[1]+spread)))
               {
                 tradeOpen=true;
                 shortTrade();
               }
           } 
       }
     
     if(tradeOpen==true)
       {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
           {
             if(OrderProfit()>=profTest)
               {
                 if(tradeDir()==1) sl=OrderStopLoss()+(50*Point);
                 else sl=OrderStopLoss()-(50*Point);
                 OrderModify(OrderTicket(),OrderOpenPrice(),sl,0,0);
                 profTest=profTest+(50.0*Lots);
               }
           }
         else Print("Error # ",GetLastError());
       }
   }
   return(0);
 }

//+------------------------------------------------------------------+

EA downloaded and installed successfully.

No trades placed yet…

Daily Chart
GBP/USD
.1 Lot

Thanks,

-ForexPhantom-

Great night for GBP/USD. I closed manually this morning for +207 pips! EUR/USD also made +55 pips. That’s 9 wins out of 10 trades and brings my 4 week total to +954 pips. :smiley:

You will have to excuse my ignorance here but I started using your EA for the first time myself today (Mon 9th) and my GPBUSD trade was stopped out. If I understand correctly Fridays bar was a Short which meant we were looking for a Long today My Long trade was opened at 1.40926 ( At 08.36 AM with Alpari UK (GMT +1) which is 07.36 GMT) just above Fridays close of 1.40920 I was then stopped out at 08.20 GMT on 1.40288

So what am I doing wrong

Thanks

I have talked to another trader here who uses FXPro and his charts are completely different from mine (IBFX). Yours seem to be a bit different, however the main thing is that for Monday’s trade you’d be looking at Sunday’s candle (not Friday’s) which was bullish (closed at 1.4155 on my chart) so today was a sell day. I closed my trade already and it’s still going down. What did your Sunday candle show? Looking at my charts at market open for Monday, I could tell that both EUR/USD and GBP/USD were going to go down. I could’ve entered trades manually and made more simply because I would’ve gained the amount between open and 0700, but that’s not in keeping with the rules. If your Sunday candle was truly bearish, then the buy was correct and you simply had a losing day, which happens. Hang in there and test some more.

One other thing. Since Alpari went to 5 decimal places, I believe the last number is actually 1/10th pip as compared to mine. If your previous day close was 1.40920 and you were actually going long, your entry would be 1.40930, not 1.40921. Someone more familiar with the Alpari should verify this, but if I’m correct, the EA may need to be modified slightly to compensate.

There are no candles for Sunday on Alpari UK. Trading ceases Friday 10.00 PM GMT and opens up Sunday 11.00PM GMT That means I was looking for a Long

It actually entered at 1.40926 which might be due to rounding if you do not account for 1/10th pips Does the EA need modifying?

Also I noticed on the USD/JPY that a Long was incorrectly triggered at 6.15 AM GMT, Now because my charts are GMT+1 then this was recorded as 7.15 AM which did match your criteria for time of entry (ie > 7.00 AM) So does this mean that my charts have to be GMT based or can the EA be provided with a GMT offset parameter to account for this And thinking further it may be that because this system uses Daily candle prices then the chart needs to be GMT based in any case So are your charts GMT based

If so then would this restrict the brokers who can run it

Hello,

Do you realize that with your current average, you could be a millionaire in 2 years from now whilst starting with only 1,000 dollars??

Does the EA work well with Oanda?

Thanks,

-ForexPhantom-

Hallo people,
from my backtesting and my private messages with bkr, it looks like this system is [B]extremely sensitive[/B] to timing. This means that, provisionally, I found that it is [B]very profitable[/B] if you use a certain timing and it becomes [B]a nightmare[/B] if you use another timing.

I.e.: if I backtest it with IBFX, bkr’s broker, it gives wonderful results. With FXDD it produces [B]wonderful losses!!![/B] :eek:

Now, I did not and will not present my results here not to scare anybody, and I think this would not be nice especially towards our wonderful hero bkr, here. I will eagerly make it when it comes to a conclusion and HOPEFULLY we find our little nice way to be consistently profitable.

This message is just a warning on this issue and somehow a confirmation of “strange” results somebody is experiencing.

And to you bkr: perhaps you can help science making advances! In your code you use the function Hour() for getting the time. This should be the SERVER time, isn’t it? Well: I know for sure that FXDD closes/opens the daily candles at 0:00 GMT+2. If I understand correctly (?) IBFX closes/opens at 0:00 EST (GMT-4). The original slingshot author, and you too, dear bkr, say that the system should be operated between 07:00 and 20:00 GMT. Actually, in your code, bkr, positions are opened starting on 07:00 “Hour()”. Is it 07:00 “IBFX time” (thus 03:00 GMT) or you confirm us that this is really 07:00 GMT? That’s because, in this case, it could be possible changing the timing on another broker/server time just by adjusting it relative to GMT. Otherwise we should adjust it based on EST. And perhaps it is not sufficient, because the “shape” of the bars is also different.

Sorry for the quite boring and “finical” question, but in my hands it makes the difference between water and fire, so to say.

Curious? Did we find a system that is absolutely “broker-specific” and -dependent? Bkr: you could ask them for a commission, in the case! LOL :smiley: And still more curious: I cannot see any “logic” logic in all that, in the sense that, if the principle is good, why should it work/don’t work like that? But that’s it! And being tendentially too much logic is probably a weakness and not a strength of myself!

Bye

Fabio

Well…to my knowledge, IBFX server time is GMT+3, however, looking at the times on my charts, the time displayed is actually GMT, so as far as I can tell, the EA running on IBFX for me is set correctly to GMT. I cannot speak for any other brokers, but if your candle times need to be corrected, it would be very easy to do. The easiest way to tell is to check out what time it is on your 1M candle and compare that to what you know to be GMT. If the times match, the EA should stand as it is. If not, add or subtract accordingly. I hope this helps.

Yes…this EA seems to be [B]very[/B] broker dependent. As a matter of fact, when I back tested for the past year on IBFX with EUR/USD, I just over doubled my balance. However, exactly the same EA and parameters on ODL produced a return of 7 times! Please be aware of this and test the EA with your broker to be sure it runs correctly. I really don’t like the whole “no candle on Sunday” thing that was mentioned. That would make a HUGE difference. For example, GBP/USD was bearish on Friday, which would make Monday a buy day. This would have poor results since the pair fell 419 pips today. By throwing in the Sunday candle which I have on IBFX, it was a bullish candle so Monday became a sell day, hence the great results. I do not support any broker in particular, but perhaps Alpari is not the one you want to use for this system. I was looking into ODL after the outstanding results, but they seem to have sold their US operations to FXCM who doesn’t currently offer an MT4 demo (you can demo with their platform, you can trade with MT4 with them, just not demo MT4 with them). I plan to just stick with IBFX for now. I’ve had good results with customer service, no lag time with orders, no downtime, etc. and I can trade what would be micro lots on their mini account by just trading .01 lot sizes. Once I get to $100,000 (maybe very optimistic, but that’s my goal) I can open a standard account. (I’ll actually probably do that at $10,000)

Actually, I’m quite aware of that. I think it’s a little overly optimistic as there will be more losses than my current average is showing, but I’m shooting for around 4-5 years. :smiley:

Just thought I’d add my negative cents - I didn’t have the EA on, but did notice the GBP/USD candle did in fact make the move the EA would have eventually been hit and opened a sell order. So I had a sell on with a S.L. of 1.4144 - and not being able to watch, I discover tonight - IF I’d have had a S.L. of lets just say 1.4145 - :slight_smile: I’d have made a few pips - - when I checked - 320 of them. dam -

but a ‘small’ price to pay to learn. as they were just .10 each