답변완료
부탁 드립니다.
도움에 감사 드립니다.
타주기 수식 부탁 드립니다.
1)분봉용
2)틱봉용
3)일봉용
미리 감사 드립니다.
input:p(120),보정(100),doji(1),sig(5);
var:t(0),종(0),시(0);
t=ma(c,p);
종=c/t*100-보정;
시=o/t*100-보정;
var1=iff(종==시,종+doji,종);
var2=ma(var1,sig);
참고수식1)
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0),MACDO(0);
var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),MACDV(0),MACDS(0),PreMACDS(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
idx = idx + 1;
참고수식2)
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0),MACDO(0);
var : ii(0),TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),MACDV(0),MACDS(0),PreMACDS(0);
Ep1 = 2/(short+1);
Ep2 = 2/(short*long배수+1);
Ep3 = 2/(sig+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
ii = 0;
}
Else
ii = ii +1;
if D1 > 0 then
{
TF = ii%nbar;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
2022-01-11
944
글번호 155355
지표
답변완료
함수요청
안녕하세요?
기작성주신 아래 글번호 75023번의 지표와 74425번의 지표를 활용하여
국내선물 3분봉으로 일중거래를 하고자 합니다.
HH, LL, HV, LV 값이 모두 생성되되 HH < HV, LL > LV 이면서
- 무포지션에서 현주가가 HH 돌파 완성시 익봉시가에 매도 진입
- 매도 진입 이후 LL 이탈 완성시 익봉시가에 매도 청산
- 무포지션에서 현주가가 LL 이탈 완성시 익봉시가에 매수 진입
- 매수 진입 현주가가 HH 돌파 완성시 익봉시가에 매수 청산
- 15시 15분 종가청산으로 오버나이트를 하지 않고자 합니다.
- 진입기준으로 최대 2회입니다.
-----------------------------------------------------------------------------------
[지표 75023]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
HH = 0;
LL = 0;
Condition1 = False;
}
if d1 > 0 Then
{
if macdo > hh Then
hh = macdo;
if macdo < ll Then
ll = macdo;
if Condition1 == False and hh >= ll+0.5 Then
{
Condition1 = true;
var1 = DayHigh;
Var2 = DayLow;
TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1);
TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2);
}
if Condition1 == true Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
[지표 74425]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HV(0),LV(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
T = 0;
if MACDO > 0 Then
{
T = 1;
HV = H;
LV = L;
}
if MACDO < 0 Then
{
T = -1;
HV = H;
LV = L;
}
}
Else
{
if ABS(T) < 2 Then
{
if H > HV Then
HV = H;
if L < LV Then
LV = L;
}
if T == 1 and CrossUp(MACDO,0) Then
{
T = 2;
var1 = HV;
Var2 = LV;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == -1 and CrossDown(MACDO,0) Then
{
T = -2;
var1 = HV;
Var2 = LV;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == 2 or T == -2 Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
2022-01-11
1269
글번호 155354
시스템
답변완료
추세선의 값
TL_Getvalue 하면 추세선 위치값이 아니라 주가를 읽어 오네요!
추세선이 지나는 위치값을 알려면 어떻게 해야 하나요?
테스트를 위해 몇줄 프로그램을 넣어 저장후
전략실행 화면에서 실행하면 실행후 시스템에서 파일명이 사라짐니다.
편집기 화일 관리자에는 존재하는데....
다시 사라진 화일명으로 다른이름으로 저장하면
전략실행 화면에는 아예 나타나질 않습니다.
사라진 이름으로는 다시는 저장도 안되고요. ㅠㅠ
//
// Test_f8
//
Input : SZ(0); // 선굵기
Input : FD(20220111); // 찾을 날짜시간
Input : FT(120000);
Input : SD1(20220111); // 시험 추세선 #1
Input : ST1(090000);
Input : SV1(388.00);
Input : ED1(20220111);
Input : ET1(145000);
Input : EV1(389.00);
Input : SD2(20220111); // 시험 추세선 #2
Input : ST2(090000);
Input : SV2(388.00);
Input : ED2(20220111);
Input : ET2(145000);
Input : EV2(389.00);
var : P1V(0);
var : TL1(0);
var : TL2(0);
var : Text1(0);
var : PM5(0);
var : PM6(0);
// #1 첫라인 점
TL1 = TL_New(SD1,ST1,SV1,SD1,ST1,SV1);
//TL_SetSize(TL1,SZ);
//TL_SetColor(TL1,Red);
/* 이동라인
TL_SetBegin(TL1,SD1,ST1,SV1);
TL_SetEnd(TL1,ED1,ET1,EV1);
TL_SetSize(TL1,SZ);
TL_SetColor(TL1,Red);
*/
//PM5 = TL_Getvalue(TL1,FD,FT);
// #2 첫라인 점
TL2 = TL_New(SD2,ST2,SV2,SD2,ST2,SV2);
//TL_SetSize(TL2,SZ);
//TL_SetColor(TL2,Black);
/* 이동라인
TL_SetBegin(TL2,SD2,ST2,SV2);
TL_SetEnd(TL2,ED2,ET2,EV2);
TL_SetSize(TL2,SZ);
TL_SetColor(TL2,Black);
*/
//PM6 = TL_Getvalue(TL2,FD,FT);
If PM5 == PM6 then {
Text1 = Text_New(,FD,FT, PM5, NumToStr(PM5,2) + "->");
}
Test 프로그램이 정상인지, 왜 사라지는지 답변부탁드립니다.
새벽 5시10분이 되니 끊키네요. 아이고~~~
2022-01-12
1005
글번호 155353
지표
답변완료
함수요청
아래 글번호 75464번 재질문입니다.
글번호 74425번에서 작성주신 지표의 고점(HV)과 저점(LV)은
아래와 같이 정의되었습니다.
따라서 HH와 LL값이 생성되었지만 HV 혹은 LV 값이 생성되지 않을 수 있습니다.
[아래]
- MACD오실레이터가 9시 3분 완성봉의 첫 히스토그램이 양의 값이면
그 값 포함부터 MACD오실레이터 값이 음으로 반전하고 다시 양의 값으로 재전환할 때까지를 포함하여 (MACD오실레이터 양의 값 포함->음->양으로 변환할 때포함) 주가의 고점(HV)과 저점(LV)을 잡습니다.
- MACD오실레이터가 9시 3분 완성봉의 첫 히스토그램이 음의 값이면
그 값 포함부터 MACD오실레이터 값이 양으로 반전하고 다시 음으로 값으로 재전환할 때까지를 포함하여 (MACD오실레이터 음의 포함->양-> 음으로 변환할 때포함) 주가의 고점(HV)과 저점(LV)을 잡습니다.
====================================================================================
기작성주신 아래 글번호 75023번의 지표와 74425번의 지표를 활용하여
국내선물 3분봉으로 일중거래를 하고자 합니다.
- HH = HV이고 LL값이 나왔으나 LV값이 나오지 않은 상태라면 LL 이탈 완성시 익봉 시가에 3계약 매도 진입
-> 매수 진입 이후 LV값이 나오고 LV값을 하향 이탈 완성하면 익봉 시가에 1계약 매도청산
-> 60ma 상향 돌파 완성 익봉 시가에 1계약 매도청산
-> 15시 15분 나머지 포지션 전량 강제청산 (미결제약정 1계약~3계약)
- LL = LV이고 HH값이 나왔으나 HV값이 나오지 않은 상태라면 HH 돌파 완성시 익봉 시가에 3계약 매수 진입
-> 매수 진입 이후 HV값이 나오고 HV값을 상향 돌파 완성하면 익봉 시가에 1계약 매수청산
-> 60ma 하향 이탈 완성 익봉 시가에 1계약 매수청산
-> 15시 15분 나머지 포지션 전량 강제청산 (미결제약정 1계약~3계약)
: 하루 3계약을 1번 진입하며 당일 모두 청산하여 오버나이트 하지 않습니다.
: 매도포지션으로 진입하고 LV값이 나오고 LV값을 하향 이탈 완성하면 익봉 시가에 1계약 매도청산하고자 하는데 LV값에서 횡보하여 이탈과 돌파를 반복하여 이탈할 때마다 포지션을 청산하는 것이 아니라 LV값 하향 이탈로는 1번만 1계약을 청산하고자 합니다.
60ma 상향 돌파시도 마찬가지 입니다. 1번만 1계약 청산하고자 합니다.
매수포지션으로 진입을 해도 같은 논리입니다.
-----------------------------------------------------------------------------------
[지표 75023]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
HH = 0;
LL = 0;
Condition1 = False;
}
if d1 > 0 Then
{
if macdo > hh Then
hh = macdo;
if macdo < ll Then
ll = macdo;
if Condition1 == False and hh >= ll+0.5 Then
{
Condition1 = true;
var1 = DayHigh;
Var2 = DayLow;
TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1);
TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2);
}
if Condition1 == true Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
[지표 74425]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HV(0),LV(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
T = 0;
if MACDO > 0 Then
{
T = 1;
HV = H;
LV = L;
}
if MACDO < 0 Then
{
T = -1;
HV = H;
LV = L;
}
}
Else
{
if ABS(T) < 2 Then
{
if H > HV Then
HV = H;
if L < LV Then
LV = L;
}
if T == 1 and CrossUp(MACDO,0) Then
{
T = 2;
var1 = HV;
Var2 = LV;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == -1 and CrossDown(MACDO,0) Then
{
T = -2;
var1 = HV;
Var2 = LV;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == 2 or T == -2 Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
2022-01-11
1062
글번호 155344
시스템