Trabajo finalizado
Tarea técnica
The idea:
To begin with this strategy has been tested with IT-charts backtesting method and gives about 50-50 of the trades either on the profit or the loss site. However the profitable trades generate around three times more profit than the loosing trades are causing losses. The end result gives a net profit after 3 months ideally (if all signals are executed at the very time they come out) at 2500 points given that all positions are open as 1. The method has been used for about a month for trading with DJIA and Forex (EUR/USD) at 2 hours and 4 hours charts respectivelly and due to practical reasons (i.e. not being able to execute all signals) ended up with lower profits than expected at around 400 points. The main problem as with many strategies is that an average person can not follow all signals as these are coming out on a 24/hour-basis.
The method is based on simple 3, 4 and 5 candle set patterns and defines a bearish or a bullish pivot points (trend reversal).
Example of 3 candle sets: (The candles are numbered as 2-1-0 with the 0 being the most recent one). We have a bullish pivot point whereas candle 1 has lower low than candle 2 and candle 1 has lower high than candle 2 and candle 0 crosses over the high of candle 1. The program should automatically exit all short positions should there are any open and automatically open a long position at the time of crossing without any manual intervention. Of course the reverse (i.e. sell all long positions and sell short simultaneously should be executed in case of a bearish signal).
I can provide all help that might be needed so that the developer gets a clear picture of what is needed. Please also see below the rules that I wrote in IT-chart build-in language if that helps.
The rules I am using in the IT-charts custom indicator, in case they are of any help are as follows:
ONCE S3 = 0
ONCE S4 = 0
ONCE S5 = 0
//NOTE: S3, S4 and S5 are sets of 3, 4 and 5 candles respectively
//NOTE: Values of the above can only take the values of 1 (for bullish, - 1 for bearish, or 0 (for no signal).
//NOTE: The following code defines the rules based on highs and lows of the involved candles:
IF LOW[0] < LOW[1] AND LOW[1] > LOW[2] AND HIGH[0] < HIGH[1] AND HIGH[1] > HIGH[2] THEN
S3 = -1
ELSIF LOW[0] > LOW[1] AND LOW[1] < LOW[2] AND HIGH[0] > HIGH[1] AND HIGH[1] < HIGH[2] THEN
S3 = 1
ELSE
S3 = 0
ENDIF
IF LOW[0] < LOW[1] AND LOW[3] < LOW[1] AND HIGH[0] < HIGH[1] AND HIGH[3] < HIGH[1] AND HIGH[2] < HIGH[1] AND LOW[2] > LOW[1] THEN
S4 = -1
ELSIF LOW[0] < LOW[2] AND LOW[3] < LOW[2] AND HIGH[0] < HIGH[2] AND HIGH[3] < HIGH[2] AND HIGH[1] < HIGH[2] AND LOW[1] > LOW[2] THEN
S4 = -1
ELSIF LOW[0] > LOW[2] AND LOW[3] > LOW[2] AND HIGH[3] > HIGH[2] AND HIGH[0] > HIGH[2] AND HIGH[1] < HIGH[2] AND LOW[1] > LOW[2] THEN
S4 = 1
ELSIF LOW[0] > LOW[1] AND LOW[3] > LOW[1] AND HIGH[0] > HIGH[1] AND HIGH[3] > HIGH[1] AND HIGH[2] < HIGH[1] AND LOW[2] > LOW[1] THEN
S4 = 1
ELSIF LOW[0] < LOW[2] AND LOW[3] < LOW[2] AND HIGH[0] < MAX(HIGH[2],HIGH[1]) AND HIGH[3] < MAX(HIGH[2],HIGH[1]) AND LOW[1] = LOW[2] AND HIGH[0] < MAX(HIGH[1],HIGH[2]) THEN
S4 = -1
ELSIF LOW[0] > MIN(LOW[1],LOW[2]) AND LOW[3] > MIN(LOW[1],LOW[2]) AND HIGH[0] > HIGH[1] AND HIGH[3] > HIGH[1] AND HIGH[2] = HIGH[1] AND LOW[3] > MIN(LOW[1],LOW[2]) THEN
S4 = 1
ELSE
S4 = 0
ENDIF
IF LOW[0] < LOW[2] AND LOW[4] < LOW[2] AND HIGH[0] < HIGH[2] AND HIGH[4] < HIGH[2] AND HIGH[1] < HIGH[2] AND HIGH[3] < HIGH[2] AND LOW[1] > LOW[2] AND LOW[3] > LOW[2] THEN
S5 = -1
ELSIF HIGH[0] > HIGH[2] AND HIGH[4] > HIGH[2] AND LOW[0] > LOW[2] AND LOW[4] > LOW[2] AND LOW[1] > LOW[2] AND LOW[3] > LOW[2] AND HIGH[1] < HIGH[2] AND HIGH[3] < HIGH[2] THEN
S5 = 1
ELSIF HIGH[1] > HIGH[0] AND HIGH[1] > HIGH[4] AND LOW[1] > LOW[0] AND LOW[1] > LOW[4] AND HIGH[2] < HIGH[1] AND HIGH[3] < HIGH[1] AND LOW[3] > LOW[1] AND LOW[2] > LOW[1] THEN
S5 = -1
ELSIF HIGH[3] > HIGH[0] AND HIGH[3] > HIGH[4] AND LOW[3] > LOW[0] AND LOW[3] > LOW[4] AND HIGH[2] < HIGH[3] AND HIGH[1] < HIGH[3] AND LOW[1] > LOW[3] AND LOW[2] > LOW[3] THEN
S5 = -1
ELSIF LOW[1] < LOW[0] AND LOW[1] < LOW[4] AND HIGH[1] < HIGH[0] AND HIGH[1] < HIGH[4] AND HIGH[2] < HIGH[1] AND HIGH[3] < HIGH[1] AND LOW[2] > LOW[1] AND LOW[3] > LOW[1] THEN
S5 = 1
ELSIF LOW[3] < LOW[0] AND LOW[3] < LOW[4] AND HIGH[3] < HIGH[0] AND HIGH[3] < HIGH[4] AND HIGH[2] < HIGH[3] AND HIGH[1] < HIGH[3] AND LOW[2] > LOW[3] AND LOW[1] > LOW[3] THEN
S5 = 1
ELSE
S5 = 0
ENDIF
// The following part of the code checks the crossing event and gives the price at which the order should be executed. P for price.
ONCE P = 0
IF S3 = 1 THEN
P = HIGH[1]
ELSIF S3 = -1 THEN
P = LOW[1]
ELSIF S4 = 1 THEN
P = MAX(HIGH[1],HIGH[2])
ELSIF S4 = -1 THEN
P = MIN(LOW[1],LOW[2])
ELSIF S5 = 1 THEN
P = MAX(MAX(HIGH[1],HIGH[2]),HIGH[3])
ELSIF S5 = -1 THEN
P = MIN(MIN(LOW[1],LOW[2]),LOW[3])
ELSE
P = 0
ENDIF
RETURN S as "signal", P AS "PRICE OF SIGNAL"