커뮤니티
검토 좀 해주세요!!!
2015-04-16 18:29:25
240
글번호 85114
아래의 수식에서 첨부 된 차트와 같이 부분적으로 진입과 청산이 다중으로 발생되는 부분이 있습니다. 검토 후 수정해 주시면 감사 하겠습니다.
아마도
# 주 시스템부분의
# Exits
IF LReaction == 0 Then
ExitLong("lx",atstop,LExit);
IF SReaction == 0 Then
ExitShort("sx",atstop,SExit); 부분과
# 보조 시스템 부분의
If MarketPosition == 0 Then {
If LRLs > upv Then Buy("b2");
If LRLs < dnv Then Sell("s2");
}
이 부분이 상호 충돌로 일어나는 현상인 듯 합니다.
# 1) 주 시스템부분
Inputs: ChanLen(14), Reaction(4), TCount(1), Setup(6);
Vars: HiChan(0), LoChan(0), LReaction(0), LReacHigh(0), LReacLow(0), SReaction(0),
SReacHigh(0), SReacLow(0), LThrust(0), SThrust(0), LEntry(0), LExit(0), SEntry(0), SExit(0),
NewLThrust(False), NewSThrust(False), LTR(False), STR(False);
# Assignment of values for the High/Low Channel
HiChan = Highest(High, ChanLen)[1];
LoChan = Lowest(Low, ChanLen)[1];
# Reversal Breakout - Initial Setup
IF MarketPosition <> 1 Then {
IF High > HiChan Then {
LReaction = 1;
LReacHigh = High;
LReacLow = Low;
LExit = LReacLow;
LThrust = 0;
SReaction = 0;
}
}
Else {
LReaction = 0;
LThrust = 0;
}
# Reversal Breakout - Initial Setup
IF MarketPosition <> -1 Then {
IF Low < LoChan Then {
SReaction = 1;
SReacHigh = High;
SReacLow = Low;
SExit = SReacLow;
SThrust = 0;
LReaction = 0;
}
}
Else {
SReaction = 0;
LThrust = 0;
}
# Upward Trend Resumption
IF LReaction >= 1 Then {
IF Low < LExit Then {
LExit = Low;
LThrust = 0;
}
IF High < LReacHigh AND Low < LReacLow Then {
LReaction = LReaction + 1;
LReacHigh = High;
LReacLow = Low;
NewLThrust = True;
}
}
# Downward Trend Resumption
IF SReaction >= 1 Then {
IF High > SExit Then {
SExit = High;
SThrust = 0;
}
IF Low > SReacLow AND High > SReacHigh Then {
SReaction = SReaction + 1;
SReacLow = Low;
SReacHigh = High;
NewSThrust = True;
}
}
# Bullish Thrust Day accumulation
IF LReaction >= Reaction AND Close > High[1] Then
LThrust = LThrust + 1;
# Bearish Thrust Day accumulation
IF SReaction >= Reaction AND Close < Low[1] Then
SThrust = SThrust + 1;
# Thrust Count Completion
LTR = LThrust == TCount AND NewLThrust;
STR = SThrust == TCount AND NewSThrust;
# Entry Price Setup
IF LTR Then {
LEntry = High + 0.1 ;
NewLThrust = False;
}
IF STR Then {
SEntry = Low - 0.1 ;
NewSThrust = False;
}
# Entries
IF MRO(LTR, Setup, 1) <> -1 Then
Buy("b1",atstop,LEntry);
IF MRO(STR, Setup, 1) <> -1 /*AND SReaction >= Reaction */Then
Sell("s1",atstop,SEntry);
# Exits
IF LReaction == 0 Then
ExitLong("lx",atstop,LExit);
IF SReaction == 0 Then
ExitShort("sx",atstop,SExit);
# 2) 보조 시스템 부분
Input : LRLP(9),sig(5);
input : A(3),MU(2);
var : LRLv(0),LRLs(0),UPv(0),dnv(0),Ov(0);
LRLv = LRL(C,LRLP);
LRLs = ema(LRLv,sig);
Ov = (DayOpen(2)+DayOpen(1)+ DayOpen(0))/3; #3일간시가평균
if dayindex == 0 Then{
upv = Ov+atr(A)*MU;
dnv = Ov-atr(A)*MU;
}
if dayindex > 0 Then
{
if CrossUp(LRLs,upv) Then
{
upv = upv[1]+atr(A)*MU;
dnv = upv[1];
}
if CrossDown(LRLs,dnv) Then
{
upv = dnv[1];
dnv = dnv[1]-atr(A)*MU;
}
}
If MarketPosition == 0 Then {
If LRLs > upv Then Buy("b2");
If LRLs < dnv Then Sell("s2");
}
# 선물 만기청산
var: month(0),nday(0),week(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
SetStopEndofday(144000);
Else
SetStopEndofday(0);
- 1. 85619_제목_없음.jpg (0.16 MB)
답변 1
예스스탁 예스스탁 답변
2015-04-17 09:49:12
안녕하세요
예스스탁입니다.
보조시스템쪽의 진입이 단순 크다와 작다로 되어 있어
청산후에도 계속 유지가 되고 잇으면 다시 진입하는 것을 반복합니다.
보조시스템의 진입조건을 상향돌파와 하향이탈로 변경했습니다.
Inputs: ChanLen(14), Reaction(4), TCount(1), Setup(6);
Vars: HiChan(0), LoChan(0), LReaction(0), LReacHigh(0), LReacLow(0), SReaction(0),
SReacHigh(0), SReacLow(0), LThrust(0), SThrust(0), LEntry(0), LExit(0), SEntry(0), SExit(0),
NewLThrust(False), NewSThrust(False), LTR(False), STR(False);
# Assignment of values for the High/Low Channel
HiChan = Highest(High, ChanLen)[1];
LoChan = Lowest(Low, ChanLen)[1];
# Reversal Breakout - Initial Setup
IF MarketPosition <> 1 Then {
IF High > HiChan Then {
LReaction = 1;
LReacHigh = High;
LReacLow = Low;
LExit = LReacLow;
LThrust = 0;
SReaction = 0;
}
}
Else {
LReaction = 0;
LThrust = 0;
}
# Reversal Breakout - Initial Setup
IF MarketPosition <> -1 Then {
IF Low < LoChan Then {
SReaction = 1;
SReacHigh = High;
SReacLow = Low;
SExit = SReacLow;
SThrust = 0;
LReaction = 0;
}
}
Else {
SReaction = 0;
LThrust = 0;
}
# Upward Trend Resumption
IF LReaction >= 1 Then {
IF Low < LExit Then {
LExit = Low;
LThrust = 0;
}
IF High < LReacHigh AND Low < LReacLow Then {
LReaction = LReaction + 1;
LReacHigh = High;
LReacLow = Low;
NewLThrust = True;
}
}
# Downward Trend Resumption
IF SReaction >= 1 Then {
IF High > SExit Then {
LExit = High;
SThrust = 0;
}
IF Low > SReacLow AND High > SReacHigh Then {
SReaction = SReaction + 1;
SReacLow = Low;
SReacHigh = High;
NewSThrust = True;
}
}
# Bullish Thrust Day accumulation
IF LReaction >= Reaction AND Close > High[1] Then
LThrust = LThrust + 1;
# Bearish Thrust Day accumulation
IF SReaction >= Reaction AND Close < Low[1] Then
SThrust = SThrust + 1;
# Thrust Count Completion
LTR = LThrust == TCount AND NewLThrust;
STR = SThrust == TCount AND NewSThrust;
# Entry Price Setup
IF LTR Then {
LEntry = High + 0.1 ;
NewLThrust = False;
}
IF STR Then {
SEntry = Low - 0.1 ;
NewSThrust = False;
}
# Entries
IF MRO(LTR, Setup, 1) <> -1 Then
Buy("b1",atstop,LEntry);
IF MRO(STR, Setup, 1) <> -1 /*AND SReaction >= Reaction */Then
Sell("s1",atstop,SEntry);
# Exits
IF MarketPosition == 1 and LReaction == 0 Then
ExitLong("lx",atstop,LExit);
IF MarketPosition == -1 and SReaction == 0 Then
ExitShort("sx",atstop,SExit);
Input : LRLP(9),sig(5);
input : A(3),MU(2);
var : LRLv(0),LRLs(0),UPv(0),dnv(0),Ov(0);
LRLv = LRL(C,LRLP);
LRLs = ema(LRLv,sig);
Ov = (DayOpen(2)+DayOpen(1)+ DayOpen(0))/3; #3일간시가평균
if dayindex == 0 Then{
upv = Ov+atr(A)*MU;
dnv = Ov-atr(A)*MU;
}
if dayindex > 0 Then
{
if CrossUp(LRLs,upv) Then
{
upv = upv[1]+atr(A)*MU;
dnv = upv[1];
}
if CrossDown(LRLs,dnv) Then
{
upv = dnv[1];
dnv = dnv[1]-atr(A)*MU;
}
}
If MarketPosition == 0 Then {
If crossup(LRLs,upv) Then Buy("b2");
If CrossDown(LRLs,dnv) Then Sell("s2");
}
# 선물 만기청산
var: month(0),nday(0),week(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
SetStopEndofday(144000);
Else
SetStopEndofday(0);
즐거운 하루되세요
> 너무조아 님이 쓴 글입니다.
> 제목 : 검토 좀 해주세요!!!
> 아래의 수식에서 첨부 된 차트와 같이 부분적으로 진입과 청산이 다중으로 발생되는 부분이 있습니다. 검토 후 수정해 주시면 감사 하겠습니다.
아마도
# 주 시스템부분의
# Exits
IF LReaction == 0 Then
ExitLong("lx",atstop,LExit);
IF SReaction == 0 Then
ExitShort("sx",atstop,SExit); 부분과
# 보조 시스템 부분의
If MarketPosition == 0 Then {
If LRLs > upv Then Buy("b2");
If LRLs < dnv Then Sell("s2");
}
이 부분이 상호 충돌로 일어나는 현상인 듯 합니다.
# 1) 주 시스템부분
Inputs: ChanLen(14), Reaction(4), TCount(1), Setup(6);
Vars: HiChan(0), LoChan(0), LReaction(0), LReacHigh(0), LReacLow(0), SReaction(0),
SReacHigh(0), SReacLow(0), LThrust(0), SThrust(0), LEntry(0), LExit(0), SEntry(0), SExit(0),
NewLThrust(False), NewSThrust(False), LTR(False), STR(False);
# Assignment of values for the High/Low Channel
HiChan = Highest(High, ChanLen)[1];
LoChan = Lowest(Low, ChanLen)[1];
# Reversal Breakout - Initial Setup
IF MarketPosition <> 1 Then {
IF High > HiChan Then {
LReaction = 1;
LReacHigh = High;
LReacLow = Low;
LExit = LReacLow;
LThrust = 0;
SReaction = 0;
}
}
Else {
LReaction = 0;
LThrust = 0;
}
# Reversal Breakout - Initial Setup
IF MarketPosition <> -1 Then {
IF Low < LoChan Then {
SReaction = 1;
SReacHigh = High;
SReacLow = Low;
SExit = SReacLow;
SThrust = 0;
LReaction = 0;
}
}
Else {
SReaction = 0;
LThrust = 0;
}
# Upward Trend Resumption
IF LReaction >= 1 Then {
IF Low < LExit Then {
LExit = Low;
LThrust = 0;
}
IF High < LReacHigh AND Low < LReacLow Then {
LReaction = LReaction + 1;
LReacHigh = High;
LReacLow = Low;
NewLThrust = True;
}
}
# Downward Trend Resumption
IF SReaction >= 1 Then {
IF High > SExit Then {
SExit = High;
SThrust = 0;
}
IF Low > SReacLow AND High > SReacHigh Then {
SReaction = SReaction + 1;
SReacLow = Low;
SReacHigh = High;
NewSThrust = True;
}
}
# Bullish Thrust Day accumulation
IF LReaction >= Reaction AND Close > High[1] Then
LThrust = LThrust + 1;
# Bearish Thrust Day accumulation
IF SReaction >= Reaction AND Close < Low[1] Then
SThrust = SThrust + 1;
# Thrust Count Completion
LTR = LThrust == TCount AND NewLThrust;
STR = SThrust == TCount AND NewSThrust;
# Entry Price Setup
IF LTR Then {
LEntry = High + 0.1 ;
NewLThrust = False;
}
IF STR Then {
SEntry = Low - 0.1 ;
NewSThrust = False;
}
# Entries
IF MRO(LTR, Setup, 1) <> -1 Then
Buy("b1",atstop,LEntry);
IF MRO(STR, Setup, 1) <> -1 /*AND SReaction >= Reaction */Then
Sell("s1",atstop,SEntry);
# Exits
IF LReaction == 0 Then
ExitLong("lx",atstop,LExit);
IF SReaction == 0 Then
ExitShort("sx",atstop,SExit);
# 2) 보조 시스템 부분
Input : LRLP(9),sig(5);
input : A(3),MU(2);
var : LRLv(0),LRLs(0),UPv(0),dnv(0),Ov(0);
LRLv = LRL(C,LRLP);
LRLs = ema(LRLv,sig);
Ov = (DayOpen(2)+DayOpen(1)+ DayOpen(0))/3; #3일간시가평균
if dayindex == 0 Then{
upv = Ov+atr(A)*MU;
dnv = Ov-atr(A)*MU;
}
if dayindex > 0 Then
{
if CrossUp(LRLs,upv) Then
{
upv = upv[1]+atr(A)*MU;
dnv = upv[1];
}
if CrossDown(LRLs,dnv) Then
{
upv = dnv[1];
dnv = dnv[1]-atr(A)*MU;
}
}
If MarketPosition == 0 Then {
If LRLs > upv Then Buy("b2");
If LRLs < dnv Then Sell("s2");
}
# 선물 만기청산
var: month(0),nday(0),week(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
SetStopEndofday(144000);
Else
SetStopEndofday(0);
다음글
이전글