커뮤니티

프리장에서의 캔들의 크기와 관련 추가사항입니다.

프로필 이미지
하날랑
2024-10-01 09:23:57
668
글번호 183885
답변완료
항상 빠르고 친절한 답변에 감사를 드립니다. 작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다. 처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다. 알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요? 참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다. 다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다. input : THL_Bcan(109), THL_Scan(72); input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623); var : Tcond(False); var : HH(0), LL(0), 프리캔들(0) ; buySignal = 프리캔들 >= THL_Bcan and buySignal = 프리캔들 >= THL_Scan and //프리장캔들 if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { Tcond = true; HH = H; LL = L; } if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then { Tcond = False; } if Tcond == true Then { if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then LL = L; } 프리캔들 = (HH - LL); //본장진입시간 IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if Bdate != Bdate[1] Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { if buySignal == true Then Buy("Buy"); if buyExit == true Then ExitLong("BExit"); if sellSignal == true Then Sell("Sell"); if sellExit == true Then ExitShort("SExit"); }
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2024-10-02 10:09:45

안녕하세요 예스스탁입니다. 작성하신 수식에 보시면 프리장과 본장임을 체크하는 변수가 Tcond로 동일하므로 구분이 되지 않습니다. 수식을 합칠 경우 변수가 중복되는지 확인하셔야 합니다. 프리장은 preTrcond로 별도로 지정해 드립니다. input : THL_Bcan(109), THL_Scan(72); input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623); var : Tcond(False),PreTcond(False); var : HH(0), LL(0), 프리캔들(0) ; buySignal = 프리캔들 >= THL_Bcan and buySignal = 프리캔들 >= THL_Scan and //프리장캔들 if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { PreTcond = true; HH = H; LL = L; } if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then { PreTcond = False; } if PreTcond == true Then { if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then LL = L; } 프리캔들 = (HH - LL); //본장진입시간 IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if Bdate != Bdate[1] Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { if buySignal == true Then Buy("Buy"); if buyExit == true Then ExitLong("BExit"); if sellSignal == true Then Sell("Sell"); if sellExit == true Then ExitShort("SExit"); } 즐거운 하루되세요 > 하날랑 님이 쓴 글입니다. > 제목 : 프리장에서의 캔들의 크기와 관련 추가사항입니다. > 항상 빠르고 친절한 답변에 감사를 드립니다. 작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다. 처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다. 알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요? 참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다. 다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다. input : THL_Bcan(109), THL_Scan(72); input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623); var : Tcond(False); var : HH(0), LL(0), 프리캔들(0) ; buySignal = 프리캔들 >= THL_Bcan and buySignal = 프리캔들 >= THL_Scan and //프리장캔들 if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { Tcond = true; HH = H; LL = L; } if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then { Tcond = False; } if Tcond == true Then { if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then LL = L; } 프리캔들 = (HH - LL); //본장진입시간 IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if Bdate != Bdate[1] Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { if buySignal == true Then Buy("Buy"); if buyExit == true Then ExitLong("BExit"); if sellSignal == true Then Sell("Sell"); if sellExit == true Then ExitShort("SExit"); }
프로필 이미지

하날랑

2024-10-02 11:23:01

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : 프리장에서의 캔들의 크기와 관련 추가사항입니다. > 안녕하세요 예스스탁입니다. 작성하신 수식에 보시면 프리장과 본장임을 체크하는 변수가 Tcond로 동일하므로 구분이 되지 않습니다. 수식을 합칠 경우 변수가 중복되는지 확인하셔야 합니다. 프리장은 preTrcond로 별도로 지정해 드립니다. input : THL_Bcan(109), THL_Scan(72); input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623); var : Tcond(False),PreTcond(False); var : HH(0), LL(0), 프리캔들(0) ; buySignal = 프리캔들 >= THL_Bcan and buySignal = 프리캔들 >= THL_Scan and //프리장캔들 if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { PreTcond = true; HH = H; LL = L; } if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then { PreTcond = False; } if PreTcond == true Then { if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then LL = L; } 프리캔들 = (HH - LL); //본장진입시간 IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if Bdate != Bdate[1] Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { if buySignal == true Then Buy("Buy"); if buyExit == true Then ExitLong("BExit"); if sellSignal == true Then Sell("Sell"); if sellExit == true Then ExitShort("SExit"); } 즐거운 하루되세요 > 하날랑 님이 쓴 글입니다. > 제목 : 프리장에서의 캔들의 크기와 관련 추가사항입니다. > 항상 빠르고 친절한 답변에 감사를 드립니다. 작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다. 처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다. 알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요? 참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다. 다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다. input : THL_Bcan(109), THL_Scan(72); input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623); var : Tcond(False); var : HH(0), LL(0), 프리캔들(0) ; buySignal = 프리캔들 >= THL_Bcan and buySignal = 프리캔들 >= THL_Scan and //프리장캔들 if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { Tcond = true; HH = H; LL = L; } if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then { Tcond = False; } if Tcond == true Then { if HH > 0 and H > HH Then HH = H; if LL > 0 and L < LL Then LL = L; } 프리캔들 = (HH - LL); //본장진입시간 IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if Bdate != Bdate[1] Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Tcond == true Then { if buySignal == true Then Buy("Buy"); if buyExit == true Then ExitLong("BExit"); if sellSignal == true Then Sell("Sell"); if sellExit == true Then ExitShort("SExit"); }