답변완료
질문 올립니다.
안녕하세요. 늘 감사드립니다.
하루 두 번의 시초가(아침 개장 시간, 저녁 개장 시간)에 따른 지수 선물 매매하는 식 부탁드리고 싶습니다.
10분봉 차트.
A. 나스닥의 경우.
1.
아침 7시 개장해서, 첫 10분간을 하나의 봉으로 볼 때 그 게 음봉이면, 7시 10분에 매도로 진입.
((일단 하락을 예로서 말씀드리겠습니다. 하락 상승 두 경우 다 아우르게 코딩 부탁드립니다))
2.
청산은, ATR 승수 5로 샹들리에 청산 ((물론 이 승수도 외부 변수로 부탁드립니다))
3.
진행되다가 10분봉이 아침 7시 시가선을 위로 돌파해서 완성되면, 그 때에 매수 진입.
4. 청산은 마찬가지로 샹들리에 계속.
5. 그러다가 다시 07시 기준인 시가선을 하회하면 다시 매도로 진입...
이런 식으로 진행...
6.
저녁 미 본장 개장시간인 22:30에 일단 청산.
7. 미 본장 시간 개시가를 새로운 개시가로 보고,
첫 봉(22:30~22:40)이 음봉이면 매도로 진입.
위과 같은 논리로 진행. (샹들리에 적용, 22:30시가를 중심으로 매도 진입, 매수 진입 등 반복...)
7. 마지막으로 아침 06시에 폐장되므로, 그 폐장 직전인 05:50에 청산.
((이 부분에서, 한국시간으로 보면 시작 시간 22:30에서 날짜가 다음 날로 넘어가서 05:50까지 진행될 수 있도록 해야 하므로, 시간 처리를 어떻게 해야 할지 많이 궁금합니다. 잘 부탁드립니다))
((위 내용을 코딩해 주시면, 저 나름대로 그 것을 응용해서, 항셍 등 다른 종목에도 적용시키는 코딩을 해 보도록 하겠습니다.
위의 시간 숫자, ATR 승수 등등을 외부변수로 만들어 주시면 감사하겠습니다)).
대단히 감사합니다!
2020-05-01
1024
글번호 138537
시스템
답변완료
문의드립니다.
length_Close = input(defval = 24, title = "Close")
length_High = input(defval = 30, title = "High")
length_Low = input(defval = 25, title = "Low")
ma_High = ema(sHigh, length_High)
ma_Low = ema(sLow, length_Low)
ma_Close = ema(sClose, length_Close)
ma_CH = ma_Close - ma_High
ma_LC = ma_Low - ma_Close
//
bg_Color = ma_CH >= ma_LC ? ma_CH < 0 and ma_CH < ma_CH[1] ? yellow : green : ma_LC < 0 and ma_LC < ma_LC[1] ? yellow : red
//
plot_CH = plot(ma_CH, color = green, transp = 0, title = "MA Close - MA High")
plot_LC = plot(ma_LC, color = red, transp = 0, title = "MA Low - MA Close")
hline(0, color = white, title = "Line")
안녕하세요
plot_CH = plot1
plot_LC = plot2
bg_Color = plot3으로 변환 문의드립니다.
그리고 혹시 bg_Color가 Plot3로 변환이 안 된다면
plot_CH, plot_LC, bg_Color를 강조식으로 문의드립니다.
좋은 연휴되세요!
2020-05-01
993
글번호 138536
강조
답변완료
지표전환 부탁드립니다
아래 <1><2><3>수식을 예스 지표수식으로 <4>는 시스템 수식으로 전환부탁드립니다
<1>
수식
IF((C>avg(c,기간) && V>avg(c,기간)),V,
IF(C<avg(c,기간) && V<avg(c,기간),-V,0))
지표조건설정
기간 10
기준선 추가 0
<2>
수식1
t1=tema(c,period1);
LL=Lowest(L,period2);
HH=Highest(H,period2);
valuewhen(1,crossup(c,t1) or crossdown(c,t1),HH)
수식2
valuewhen(1,crossup(c,t1) or crossdown(c,t1),LL)
수식3
LT=Lowest(L,P1);
HT=Highest(H,P1);
newH=valuewhen(1,H>HT(1),H);
BOX1=Highest(H,P1-2)<Highest(H,P1-1);
TOP1=valuewhen(1,BarsSince(H>HT(1))==(P1-2) AND BOX1,NewH);
BTM1=valuewhen(1,BarsSince(H>HT(1))==(P1-2) AND BOX1,LT);
NewL=valuewhen(1,L<LT(1),L);
BOX2=Lowest(L,P1-2)<Lowest(L,P1-1);
TOP2=valuewhen(1,BarsSince(L<LT(1))==(P1-2) AND BOX1,HT);
BTM2=valuewhen(1,BarsSince(L<LT(1))==(P1-2) AND BOX1,NewL);
T=tema(c,청산);
t2=max(top2,btm2);
t3=min(top1,btm1);
x=valuewhen(1,crossdown(c,T),
highestsince(1,crossup(c,T),h));
y=valuewhen(1,crossdown(c,T),
lowestsince(1,crossdown(c,T),l));
if(crossdown(c,T) and c>=t2,x,if(crossup(c,T) and c<=t3,y,0))
수식4
valuewhen(1,crossup(c,t1) or crossdown(c,t1),HH)
수식5
valuewhen(1,crossup(c,t1) or crossdown(c,t1),LL)
지표조건 설정
period1 10
period2 20
p1 5
청산 10
<3>
저점
수식1
Lowest(L,기간)*(1+비율/100)
수식2
Lowest(L,기간)
고점
수식1
Highest(H,기간)
수식2
Highest(H,기간)*(1-비율/100)
지표조건설정
기간 10
비율 0.5
<4>
매수진입 (일명"짝궁뎅이"=들린 W)
전고점돌파 & 상승추세 & 전고점 돌파시 기존 처음 W자 시작할때 거래량의 1.5배이상 발생
&첫번째 눌림목 매수
매도진입 (일명"머리어깨"=어깨처진 M)
전저점이탈 & 하락추세 & 전저점 돌파시 기존 처음 M자 시작할때 거래량의 1.5배이상 발생
&첫번째 반등 매도
2020-05-03
1425
글번호 138535
지표
답변완료
분할매수 , 매수금액 최적화 시뮬레이션 오류.
안녕하세요.
매수: 매수신호 발생시 1호가 단위로 나눠서 분할매수 로직+ 투자금 1천만원
표제건관려하여, 투입금액(분할매수 최대금액)이 어느 정도 이상 올라가니,
수익률이 0%이되는 현상이 발생하네요.테스트는 30분봉으로 했고요.
상식적으로 이해가 안되는 상황이라,
제 수식에 문제 가 있거나, HTS상의 문제가 있어보입니다.
첨부 사진 보시면 알겠지만, 투자금액이 어느정도 이상되면 수익금이 0가 됩니다.
혹시 투자금액 한도 같은 게 걸려있나요?
-----인용------
Input : 금액(10000000),
#할당
//value = 매매기준(Period); //매매기준
var1 = int(금액*(1/9)/C); // 1번째 주문수량,다이아몬드형
var2 = Int(금액*(2/9)/C);
Var3 = Int(금액*(3/9)/C);
Var4 = Int(금액*(2/9)/C);
Var5 = Int(금액*(1/9)/C);
# 매수/매도청산
if CrossUP(매매기준, 매수선)//무포시 1차매수
then
buy("매수1",OnClose,def,Var1); //Buy("신호명", 신호타입, 가격조건, 수량)
if MarketPosition == 1 && BarsSinceEntry< Entry봉시간제한
Then// 1차 매수후 나머지 4분할 매수
{
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*1*buypriceunit Then //2틱하락시
buy("매수2",AtLimit,EntryPrice-PriceScale*1*buypriceunit,Var2); // 2차매수
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*2*buypriceunit Then
buy("매수3",AtLimit,EntryPrice-PriceScale*2*buypriceunit,Var3);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*3*buypriceunit Then
buy("매수4",AtLimit,EntryPrice-PriceScale*3*buypriceunit,Var4);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*4*buypriceunit Then
buy("매수5",AtLimit,EntryPrice-PriceScale*4*buypriceunit,Var5);
}
2020-04-30
1203
글번호 138534
시스템
답변완료
부탁드립니다
항상 감사드립니다
아래식을 피라미딩 적용하려합니다.
피라미딩 중 각각의 진입명이 한번이상 들어가지 않도록 부탁드립니다
Input : 손절(4),익절(5),익절하락(1);
input : P1(30), P2(200), p3(230), P4(260), P5(320);
input : StartTime(090300),EndTime(151500);
var : tx(0),X(false),Tcond(false),tt(0),vol(1);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
var4 = ma(C, P4);
var5 = ma(C, P5);
######## 진입제한
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then
{
Tcond = false;
}
## 진입
if Tcond == true and marketposition == 0
and crossup(var1,var2) Then
{
buy("B1");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then
{
sell("S1");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then
{
buy("B2");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then
{
sell("S2");
}
if Tcond == true and marketposition == 0
and crossup(var1,var4) Then
{
buy("B4");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var4) Then
{
sell("S4");
}
if Tcond == true and marketposition == 0
and crossup(var2,var5) and var3[1] < var3 Then
{
buy("B5");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var5) and var3[1] > var3 Then
{
sell("S5");
}
#### Target 청산
if MarketPosition == 1 then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if Marketposition == -1 Then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime)) Then {
if MarketPosition == 1 Then
ExitLong("BE6");
if MarketPosition == -1 Then
ExitShort("SE6");
}
2020-05-01
1044
글번호 138533
시스템
답변완료
지표수식전환 요청
다음 수식을 예스지표수식으로 전환요청드립니다.
<1>
수식1
A=eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
AS=ma(A,5);
valuewhen(1,crossup(A,AS),C)
<2>수식1
eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
수식4
A=eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
AS=ma(A,5);
수식5
A=eavg(((Log(c/((((Highest(H(5),5)+Lowest(L(5),5))/2)))))+1)*25,10);
AS=ma(A,8);
기준선 추가
50
<3>
수식1
HH=Highest(H,기간);
LL=Lowest(L,기간);
NH=valuewhen(1,H>HH(1),H);
valuewhen(1,Barssince(H>HH(1))==(기간-R),NH)
수식2
HH=HigHest(H,기간);
LL=Lowest(L,기간);
NH=valuewhen(1,H>HH(1),H);
valuewhen(1,BarsSince(H>HH(1))==(기간-R),LL)
수식3
HH=Highest(H,기간);
LL=Lowest(L,기간);
NL=valuewhen(1,L<LL(1),L);
valuewhen(1,Barssince(L<LL(1))==(기간-R),HH)
수식4
HH=Highest(H,기간);
LL=Lowest(L,기간);
NL=valuewhen(1,L<LL(1),L);
valuewhen(1,Barssince(L<LL(1))==(기간-R),NL)
지표추가설정
기간 10
R 5
2020-04-30
1043
글번호 138532
지표