Юрий Иванович (jc_trader) wrote,
Юрий Иванович
jc_trader

  • Mood:

Рождественские подарки

По версии агентства Futures Truth Magazine лучшей механической системой для торговли фьючерсом на мини-SP500 на данный момент является система RC Beginner.



Автор системы Rickey Cheung полностью раскрывает ее логику и код для TradeStation и MultiCharts:

1. Logic: NQ (Nasdaq 100 futures) leads ES in most cases, and many traders know I have been using
this simple logic since 2001. So NQ is the only indicator needed, no moving average, pivot or any “sophisticated”
calculation.
2. Assumption: Market has no rules, not like chess playing which has rules. So I had to develop some
rules to help novice traders learn easily.
3. I divided market into ten conditions based on US central time 09:10 because most economic data is
out at 09:00.
Before we start with the description of the strategies we must apply the following rules :
A) As most economic data mentioned will be out by 09:00 (US Central Time), we start trading 10
minutes after the last data is released under normal situations it is 09:10 a.m.
B) We use 5 min bars, that means we sample data with 5 min intervals. You may do it by hand
with any quote machine or use TradeStation print log to generate it. Do not use 15 minute bars or
longer. If the market moves fast you will miss the trade.
C) Once a Long or Short entry is initiated put a 12 pt stop on immediately.
D) If the stop is not hit, we will close all position at 15:00 (US central time.)
E) We only execute 1 trade per day at most.
Notations:
• “S” means single digits, i.e. 0 to 9.75
• “D” means double digits, i.e. 10, 15, 27 etc…
• “ +ve ” means Up from yesterday market close.
• “ –ve ” means Down from yesterday market close.
If we say ES + 5 , means ES has Up 5 pts. from yesterday’s close. If we say
NQ -10 means NQ is down 10 pts. from yesterday’s close. These ups and downs will be available in any
quote machine.
“RC Beginner Strategy and Logic”
1. 09:10 ES +S, NQ +S, NQ >= ES, then wait NQ <= -13 SHORT- (“Short 1”)
2. 09:10 ES +S, NQ +S, ES > NQ, then NO TRADE
3. 09:10 ES -S, NQ -S, NQ <= ES, then wait NQ <= -13 SHORT - (“Short 3”)
4. 09:10 ES -S, NQ -S, ES < NQ, then SHORT immediately at 09:10 - (“Short 4”)
5. 09:10 ES +S, NQ -S, then wait ES >= +2 and NQ >= +13 LONG - (“Long 5”)
6. 09:10 ES -S, NQ +S, then wait ES <= -2 and NQ <= -13 SHORT - (“Short 6”)
7. 09:10 ES -S, NQ -D, then NO TRADE
8. 09:10 ES +S, NQ +D, then wait NQ up 10pt from 09:10, LONG - (“Long 8”)
9. 09:10 ES -D, NQ -D, then wait NQ down 10pt from 09:10, SHORT - (“Short 9”)
10. 09:10 ES +D, NQ +D, then wait NQ up 10pt from 09:10, LONG - (“Long 10”)
Logic for RC Beginner Strategy
Strategy 1: a) At 09:10, ES & NQ only have a single-digit up, the chance of ES’s getting a big up-trend
is small - a big up-trend appears mostly with condition 10 (ES +D, NQ +D). Most traders who make
decision of entry by chart may long when there is a breakout or MACD crossing etc. When the market
makes a down-turn in late session, most traders or systems will lose, but this one may win. It looks
like a countertrend strategy, but it’s a strategy of following trend indeed. We short as NQ goes down
13 points.
b) Why we take “NQ +13 points” or “NQ -13 points” as the reference point (Strategy 1,3,5,6)? The
choice of 13 is not an optimization. If it is optimized, °”13 for four strategies will not be used, but
instead NQ +11 will be used for one and NQ +15 will be used for the others etc. The real reason for
using +13 or -13 is that NQ is up from single digits to double digits (double digits mean +10, +11,
+12, +13…+20, +30 etc). It may be too late for entry to take any number larger than +20, and it may
be too early to use +10 because NQ may go down to +9 (single digits) again in next 5-min bar. Any
number from +12 to +15 is acceptable. I just pick my lucky number 13 to practice my trade. The logic
is simply that NQ moves from single-digit level to double-digit level. (Same logic apply to NQ -13)
Strategy 2: No trade. In general, it’s not a big trend day but probably stays in tight range. Most systems
and traders may long at day high and short at day low, but it is just a false breakout under this
condition and causes systems to lose. Simply, when in doubt, stay out.
Strategy 3: The market in general will go up, except during some financial crisis or economic downturn.
If the market is down at 09:10, we short as NQ goes down 13 points.
Strategy 4: It is just an aggressive strategy for beginners that we short immediately at 09:10. The
logic is that ES tends to go down but NQ is not leading it down. From another angle, NQ tends to lead
ES up but fails, so we short immediately. This means ES will lead NQ down in this condition.
Strategy 5: This is “opposite day” - ES tends to go up, NQ tends to go down. Most of the time, opposite
day is also a tight-range day. But since ES tends to go up, we follow and long as NQ turns from
negative to +13.
Strategy 6: Similar to condition 5, but this time ES tends to go down. NQ moves from positive to
-13, we follow the trend and short since ES and NQ are in the same direction to form a down trend.
Strategy 7: No trade. It is the most difficult condition for beginners to trade. We are not satisfied with
most strategies we have tried, so prefer no trade for beginners. The logic is that NQ has double-digit
down but ES has only a single-digit down. If it’s a big down day, ES should already have double-digit
down at 09:10. This system only uses one robust indicator NQ, but we can deal with this condition
using the advanced system.
Strategy 8: The market appears to be up, so we long when NQ goes up 10 or more points. Students
always ask why ES +S, NQ +D, we long when NQ up 10 points but do not short when NQ goes down
10 points for condition 7. The logic is that the market always tends to and is going to go up. Global
market will continue to grow. The stocks that make up ES index and NQ index keep updated with
high growth stock and those lagging ones will be taken out. Of course there is a setback due to financial
crisis or economic downturn, but it will be going up again afterwards. So when the market is up,
we follow after we confirm that it’s moving up (using NQ +10 points ).
Strategy 9: It shows a big down day at 09:10. If NQ continues to go down 10 points, we short and
put a stop loss and ride it till market close (this is a rule as simple as riding with profits).
Strategy 10: It shows a big up day at 09:10. If NQ continues to go up 10 points, we long and put a stop
loss and ride it till market close (again, ride with profits).

Код для Трейдстейшн:

TradeStation Source Code of RC Beginner
Inputs:
PriceES(Close of Data1),
PriceNDQ(Close of Data2);
Vars: StopLoss(12), Stop_Width(0), Stop_Price(0);
Vars: StartTimeMins(0), EndTimeMins(0), LastTradeMins(0), Tmins(0);
if CurrentBar=1 then
begin
StartTimeMins = TimeToMinutes(Sess1StartTime)+40; //09:10
LastTradeMins = TimeToMinutes(Sess1EndTime)-25; //14:50
EndTimeMins = TimeToMinutes(Sess1EndTime)-15; //15:00
end;
Tmins = TimeToMinutes (Time);
Vars: ESYDC(0), NDQYDC(0), Started(FALSE);
Vars: ESLevel(0), NDQLevel(0);
if Date<>Date[1] then
begin
ESYDC = PriceES[1];
NDQYDC = PriceNDQ[1];
Started = TRUE;
end;
if Started then
begin
ESLevel = Close-ESYDC;
NDQLevel = PriceNDQ-NDQYDC;
end;
Vars: Priority(false), NDQ(0), NoTrade(false);
Vars: Trade1(false), Trade3(false), Trade4(false), Trade5(false);
Vars: Trade6(false), Trade8(false), Trade9(false), Trade10(false);
if Date<>Date[1] then
begin
Priority = false;
NoTrade = false;
Trade1 = false;
Trade3 = false;
Trade4 = false;
Trade5 = false;
Trade6 = false;
Trade8 = false;
Trade9 = false;
Trade10 = false;
end;
if Tmins = StartTimeMins then
begin
{condition 1}
if ESLevel >= 0 and ESLevel < 10 and NDQLevel >= 0 and NDQLevel
< 10 and NDQLevel >= ESLevel then Trade1 = true
{condition 2}
else if ESLevel >= 0 and ESLevel < 10 and NDQLevel >= 0 and
NDQLevel < 10 and ESLevel > NDQLevel then NoTrade = true
{condition 3}
else if ESLevel < 0 and ESLevel > -10 and NDQLevel < 0 and
NDQLevel > -10 and NDQLevel <= ESLevel then Trade3 = true
{condition 4}
else if ESLevel < 0 and ESLevel > -10 and NDQLevel < 0 and
NDQLevel > -10 and ESLevel < NDQLevel then
begin
Sell Short(“Short 4”)this bar on close;
Priority = true;
Stop_Width = StopLoss;
end
{condition 5}
else if ESLevel >= 0 and ESLevel < 10 and NDQLevel < 0 and
NDQLevel > -10 then Trade5 = true
{condition 6}
else if ESLevel < 0 and ESLevel > -10 and NDQLevel >= 0 and
NDQLevel < 10 then Trade6 = true
{condition 7}
else if ESLevel < 0 and ESLevel > -10 and NDQLevel <= -10 then
NoTrade = true
{condition 8}
else if ESLevel >= 0 and ESLevel < 10 and NDQLevel >= 10 then
begin
NDQ = NDQLevel;
Trade8 = true;
End
{condition 9}
else if ESLevel <= -10 and NDQLevel <= -10 then
begin
NDQ = NDQLevel;
Trade9 = true;
End
{condition 10}
else if ESLevel >= 10 and NDQLevel >= 10 then
begin
NDQ = NDQLevel;
Trade10 = true;
end;
end;
if Tmins >= StartTimeMins and Tmins <= LastTradeMins and
Priority = false then
begin
{condition 1}
if NDQLevel <= -13 and Trade1 then
begin
Sell Short(“Short 1”)this bar on close;
Trade1 = false;
Priority = true;
Stop_Width = StopLoss;
end;
{condition 2 = No Trade}
{condition 3}
if NDQLevel <= -13 and Trade3 then
begin
Sell Short(“Short 3”)this bar on close;
Trade3 = false;
Priority = true;
Stop_Width = StopLoss;
end;
{condition 5}
if ESLevel >= 2 and NDQLevel >= 13 and Trade5 then
begin
Buy(“Long 5”)this bar on close;
Trade5 = false;
Priority = true;
Stop_Width = StopLoss;
end;
{condition 6}
if ESLevel <= -2 and NDQLevel <= -13 and Trade6 then
begin
Sell Short(“Short 6”)this bar on close;
Trade6 = false;
Priority = true;
Stop_Width = StopLoss;
end;
{condition 7 = No Trade}
{condition 8}
if NDQLevel-NDQ >= 10 and Trade8 then
begin
Buy(“Long 8”)this bar on close;
Trade8 = false;
Priority = true;
Stop_Width = StopLoss;
end;
{condition 9}
if NDQ-NDQLevel >= 10 and Trade9 then
begin
Sell Short(“Short 9”)this bar on close;
Trade9 = false;
Priority = true;
Stop_Width = StopLoss;
end;
{condition 10}
if NDQLevel-NDQ >= 10 and Trade10 then
begin
Buy(“Long 10”)this bar on close;
Trade10 = false;
Priority = true;
Stop_Width = StopLoss;
end;
end;
if MarketPosition = 1 then
begin
Stop_Price = EntryPrice - Stop_Width;
Sell (“L-Exit”) next bar Stop_Price Stop;
end;
if MarketPosition = -1 then
begin
Stop_Price = EntryPrice + Stop_Width;
buy to cover (“S-Exit”) next bar Stop_Price
Stop;
end;
if Tmins >= EndTimeMins then
begin
Sell(“Long Close”) this bar on close;
Buy to Cover(“Short Close”) this bar on close;
end;

Если кто протестирует, было бы интересно узнать результаты и сравнить с приведенными в Futures Truth Magazine. Также интересны и просто мнения о логике системы. Обсуждение приветствуется :)
Tags: rc beginner
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 27 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →