커뮤니티
당일봉으로
2014-01-20 17:06:46
153
글번호 71585
다음과 같은 수식을 사용하고 있습니다 밑으로 수식이 더 있지만 필요한것만 올렸습니다
중간에 생략된것도 있구요
최초매수식에 진입양봉갯수라고 있습니다
이때 당일봉 기준으로 하고 싶습니다 예를들어 진입양봉갯수 3을 해놓으면
전일봉까지 포함되어서 매수진입이 됩니다 오늘 봉부터 계산되어지게 부탁 드립니다
그리구요 최적화를 진행하다보면 가끔식 결과값에서 이평선들이 꼬이는걸
발견합니다 해결방법을 좀 부탁 드립니다
예를 들어 ma1 7 ma2 21 ma3 28 ma4 27 이런식입니다 수식 정의에 따르면
이런결과 값이 나올수 없는게 아닌가요?
수식에는 분명 and MAv3 > MAv4 이렇게 되어 있는데요 ㅜㅜ
input : RSVValue(60);
input : Vol(1280);
input : Vol3(1280);
input : LossPoint(0.65),진입양봉갯수(3),ProfitPoint(10);
input : LossPoint2(0.5);
input : ProfitPoint2(10);
input : LossPoint4(0.5);
input : ProfitPoint4(10);
input : p7(0.5);
input : p9(2);
var : cnt(0),count(0),rebuy(0),ReEL(0);
var : cond1(false),cond2(false);
input : RSIP(9),RSIvalue1(30),RSIvalue2(70),RSIvalue3(30),RSIvalue4(70),RSIvalue5(70),RSIvalue6(40);
var : RSIV(0)
RSIV = RSI(RSIP);
//ma1
input : maPeriod1(7);
var : MAv1(0);
MAv1 = ma(C,maPeriod1);
//ma2
input : maPeriod2(22);
var : MAv2(0);
MAv2 = ma(C,maPeriod2);
//ma3
input : maPeriod3(29);
var : MAv3(0);
MAv3 = ma(C,maPeriod3);
//ma4
input : maPeriod4(60);
var : MAv4(0);
MAv4 = ma(C,maPeriod4);
//ma5
Input : maPeriod5(30);
var : MAv5(0);
MAv5 = ma(C,maPeriod5);
//ma6
Input : maPeriod6(2);
var : MAv6(0);
MAv6 = ma(C,maPeriod6);
//ma7
Input : maPeriod7(50);
var : MAv7(0);
MAv7 = ma(C,maPeriod7);
//ma8
Input : maPeriod8(30);
var : MAv8(0);
MAv8 = ma(C,maPeriod8);
//RSI
input : rsiPeriod(3);
var : RSV(0);
RSV = RSI(rsiPeriod);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if date != date[1] Then{
Rebuy = 0;
ReEL = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{
Rebuy = 0;
ReEL = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then
Rebuy = Rebuy+1;
if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then
ReEL = ReEL+1;
cond1 = C > O or (C==O and C >= C[1]);
cond2 = C < O or (C==O and C < C[1]);
if MarketPosition = 0 and
c > dayopen
and close > open
and (V > Vol
and MAv1 > MAv2
and MAv2 > MAv3
and MAv3 > MAv4
and RSV > RSVValue
and C > MAv7 )or
(( Countif(cond1 == true,진입양봉갯수) == 진입양봉갯수 ) and c > dayopen+p7 and c< dayopen+p9 and RSIV > RSIvalue5
and c > MAv5 )then
Buy("최초매수", OnClose, DEF);
}
답변 1
예스스탁 예스스탁 답변
2014-01-20 18:15:29
안녕하세요
예스스탁입니다.
input : RSVValue(60);
input : Vol(1280);
input : Vol3(1280);
input : LossPoint(0.65),진입양봉갯수(3),ProfitPoint(10);
input : LossPoint2(0.5);
input : ProfitPoint2(10);
input : LossPoint4(0.5);
input : ProfitPoint4(10);
input : p7(0.5);
input : p9(2);
var : cnt(0),count(0),rebuy(0),ReEL(0);
var : cond1(false),cond2(false);
input : RSIP(9),RSIvalue1(30),RSIvalue2(70),RSIvalue3(30),RSIvalue4(70),RSIvalue5(70),RSIvalue6(40);
var : RSIV(0);
RSIV = RSI(RSIP);
//ma1
input : maPeriod1(7);
var : MAv1(0);
MAv1 = ma(C,maPeriod1);
//ma2
input : maPeriod2(22);
var : MAv2(0);
MAv2 = ma(C,maPeriod2);
//ma3
input : maPeriod3(29);
var : MAv3(0);
MAv3 = ma(C,maPeriod3);
//ma4
input : maPeriod4(60);
var : MAv4(0);
MAv4 = ma(C,maPeriod4);
//ma5
Input : maPeriod5(30);
var : MAv5(0);
MAv5 = ma(C,maPeriod5);
//ma6
Input : maPeriod6(2);
var : MAv6(0);
MAv6 = ma(C,maPeriod6);
//ma7
Input : maPeriod7(50);
var : MAv7(0);
MAv7 = ma(C,maPeriod7);
//ma8
Input : maPeriod8(30);
var : MAv8(0);
MAv8 = ma(C,maPeriod8);
//RSI
input : rsiPeriod(3);
var : RSV(0);
RSV = RSI(rsiPeriod);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if date != date[1] Then{
Rebuy = 0;
ReEL = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{
Rebuy = 0;
ReEL = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then
Rebuy = Rebuy+1;
if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then
ReEL = ReEL+1;
cond1 = C > O or (C==O and C >= C[1]);
cond2 = C < O or (C==O and C < C[1]);
if MarketPosition == 0 and
c > dayopen
and close > open
and (V > Vol
and MAv1 > MAv2
and MAv2 > MAv3
and MAv3 > MAv4
and RSV > RSVValue
and C > MAv7 )or
((Countif(cond1 == true,진입양봉갯수) == 진입양봉갯수 and countif(cond1 == true,dayindex+1) >= 진입양봉갯수)
and c > dayopen+p7 and c< dayopen+p9 and RSIV > RSIvalue5
and c > MAv5 )then {
Buy("최초매수", OnClose, DEF);
}
즐거운 하루되세요
> 브라질리안 님이 쓴 글입니다.
> 제목 : 당일봉으로
> 다음과 같은 수식을 사용하고 있습니다 밑으로 수식이 더 있지만 필요한것만 올렸습니다
중간에 생략된것도 있구요
최초매수식에 진입양봉갯수라고 있습니다
이때 당일봉 기준으로 하고 싶습니다 예를들어 진입양봉갯수 3을 해놓으면
전일봉까지 포함되어서 매수진입이 됩니다 오늘 봉부터 계산되어지게 부탁 드립니다
그리구요 최적화를 진행하다보면 가끔식 결과값에서 이평선들이 꼬이는걸
발견합니다 해결방법을 좀 부탁 드립니다
예를 들어 ma1 7 ma2 21 ma3 28 ma4 27 이런식입니다 수식 정의에 따르면
이런결과 값이 나올수 없는게 아닌가요?
수식에는 분명 and MAv3 > MAv4 이렇게 되어 있는데요 ㅜㅜ
input : RSVValue(60);
input : Vol(1280);
input : Vol3(1280);
input : LossPoint(0.65),진입양봉갯수(3),ProfitPoint(10);
input : LossPoint2(0.5);
input : ProfitPoint2(10);
input : LossPoint4(0.5);
input : ProfitPoint4(10);
input : p7(0.5);
input : p9(2);
var : cnt(0),count(0),rebuy(0),ReEL(0);
var : cond1(false),cond2(false);
input : RSIP(9),RSIvalue1(30),RSIvalue2(70),RSIvalue3(30),RSIvalue4(70),RSIvalue5(70),RSIvalue6(40);
var : RSIV(0)
RSIV = RSI(RSIP);
//ma1
input : maPeriod1(7);
var : MAv1(0);
MAv1 = ma(C,maPeriod1);
//ma2
input : maPeriod2(22);
var : MAv2(0);
MAv2 = ma(C,maPeriod2);
//ma3
input : maPeriod3(29);
var : MAv3(0);
MAv3 = ma(C,maPeriod3);
//ma4
input : maPeriod4(60);
var : MAv4(0);
MAv4 = ma(C,maPeriod4);
//ma5
Input : maPeriod5(30);
var : MAv5(0);
MAv5 = ma(C,maPeriod5);
//ma6
Input : maPeriod6(2);
var : MAv6(0);
MAv6 = ma(C,maPeriod6);
//ma7
Input : maPeriod7(50);
var : MAv7(0);
MAv7 = ma(C,maPeriod7);
//ma8
Input : maPeriod8(30);
var : MAv8(0);
MAv8 = ma(C,maPeriod8);
//RSI
input : rsiPeriod(3);
var : RSV(0);
RSV = RSI(rsiPeriod);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if date != date[1] Then{
Rebuy = 0;
ReEL = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{
Rebuy = 0;
ReEL = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then
Rebuy = Rebuy+1;
if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then
ReEL = ReEL+1;
cond1 = C > O or (C==O and C >= C[1]);
cond2 = C < O or (C==O and C < C[1]);
if MarketPosition = 0 and
c > dayopen
and close > open
and (V > Vol
and MAv1 > MAv2
and MAv2 > MAv3
and MAv3 > MAv4
and RSV > RSVValue
and C > MAv7 )or
(( Countif(cond1 == true,진입양봉갯수) == 진입양봉갯수 ) and c > dayopen+p7 and c< dayopen+p9 and RSIV > RSIvalue5
and c > MAv5 )then
Buy("최초매수", OnClose, DEF);
}
다음글
이전글