커뮤니티
문의드립니다.
2018-01-04 07:46:32
162
글번호 115417
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
아래 수식을 시간에 따라 다르게 적용하고 싶습니다.
장초반에는 Tsvalue값을 100%로 가져가고 시간이 흘러갈수록 점증적으로 줄어들 게 코딩할 수 있나요?
시간이 너무 많이 걸리거나 너무 어려운 코딩이면 11시까지는 100%(1%로 설정해놨으면 1%), 그이후에는 80% 이렇게만 나눠서 부탁드립니다.
input : TsValue(1);
var : posHigh(0), posLow(0);
If MarketPosition() == 1 Then {
PosHigh = highest(H,BarsSinceEntry+1);
ExitLong("trailStop_EL%", AtStop, PosHigh - PosHigh*TsValue/100);
}
If MarketPosition() == -1 Then {
PosLow = lowest(L,BarsSinceEntry+1);
ExitShort("trailStop_ES%", AtStop, PosLow + PosLow*TSvalue/100);
}
2. 기타
아래 코딩 부탁드립니다.
진입한 뒤
장 시작후 n개봉 이내에
둘째봉까지의 저가를 하향돌파했을 때(매수진입시)
매수청산
'' 고가를 상향돌파했을 때(매도진입시)
매도청산
3. 이렇게 하면 날이 바뀔 때 값들 초기화하는 게 맞나요? 별 차이가 없어서 질문드립니다.
Inputs: Length(10);
Variables: value(0),CompuTrac(0);
if bdate[0] != bdate[1] then
value = 0;
CompuTrac = 0;
value = ma((High-Low)/Close, Length);
CompuTrac = (value/value[Length]-1)*100;
plot1(Computrac);
4. 3번 지표값을 장시작후 증감치로 바꿔서 작성 부탁드립니다 .
답변 1
예스스탁 예스스탁 답변
2018-01-04 14:03:04
안녕하세요
예스스탁입니다.
1
진입이후 청산까지 얼마나 소모될지 알수 없는 상황에서
차츰 감소하는 내용을 자동계산하기 어렵습니다.
시간지정으로 작성해 드립니다.
input : TsValue(1);
var : posHigh(0), posLow(0),per(0);
If MarketPosition() == 1 Then {
PosHigh = highest(H,BarsSinceEntry+1);
if stime < 110000 Then
per = TsValue*1.00;
Else
per = TsValue*0.80;
ExitLong("trailStop_EL%", AtStop, PosHigh - PosHigh*per/100);
}
If MarketPosition() == -1 Then {
PosLow = lowest(L,BarsSinceEntry+1);
if stime < 110000 Then
per = TsValue*1.00;
Else
per = TsValue*0.80;
ExitShort("trailStop_ES%", AtStop, PosLow + PosLow*per/100);
}
2
input : n(10);
var : idx(0);
if bdate != bdate[1] Then
idx = 0;
idx = idx+1;
if idx == 2 then
{
var1 =dayhigh;
var2 = daylow;
}
if idx > 2 and idx < n then{
if crossup(C,var1) Then
sell();
if CrossDown(c,var2) Then
buy();
}
3
if bdate[0] != bdate[1] then
위 조건이 날짜가 변경되면 이라는 내용은 맞습니다.
[0]은 생략가능하므로 if bdate != bdate[1] then 으로 작성하셔도 됩니다.
하지만 올리신 내용에서
if bdate[0] != bdate[1] then
value = 0;
CompuTrac = 0;
은 의미가 없습니다.
value와 CompuTrac에 저장되는 값이
여전히 단순이평값과 N봉전 대비 증감율입니다.
단순히 날짜가 변경되는 봉에서는
기존가 같은 방식으로 계산값을 저장하기 전에
0을 한번 더 저장하는 것일 뿐입니다.
4
value값은 기존과 같이 n개봉 평균으로 하고
첫봉대비 증감으로 CompuTrac값을 보고자 하시면 아래식 이용하시면 됩니다.
Input: Length(10);
Var : value(0),CompuTrac(0);
value = ma((High-Low)/Close, Length);
#첫봉값 저장
if bdate[0] != bdate[1] then
var1 = value;
#첫봉대비 증감
CompuTrac = (value/var1-1)*100;
plot1(Computrac);
value도 당일봉만으로 계산한다면 아래와 같습니다.
Input: Length(10);
Var : idx(0),sum(0),value(0),CompuTrac(0);
if bdate[0] != bdate[1] then{
sum = 0;
idx = 0;
var1 = (High-Low)/Close;
}
sum = sum+(High-Low)/Close;
idx = idx+1;
if idx < Length Then
value = sum/idx;
Else
value = ma((High-Low)/Close, Length);
CompuTrac = (value/var1-1)*100;
plot1(Computrac);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
아래 수식을 시간에 따라 다르게 적용하고 싶습니다.
장초반에는 Tsvalue값을 100%로 가져가고 시간이 흘러갈수록 점증적으로 줄어들 게 코딩할 수 있나요?
시간이 너무 많이 걸리거나 너무 어려운 코딩이면 11시까지는 100%(1%로 설정해놨으면 1%), 그이후에는 80% 이렇게만 나눠서 부탁드립니다.
input : TsValue(1);
var : posHigh(0), posLow(0);
If MarketPosition() == 1 Then {
PosHigh = highest(H,BarsSinceEntry+1);
ExitLong("trailStop_EL%", AtStop, PosHigh - PosHigh*TsValue/100);
}
If MarketPosition() == -1 Then {
PosLow = lowest(L,BarsSinceEntry+1);
ExitShort("trailStop_ES%", AtStop, PosLow + PosLow*TSvalue/100);
}
2. 기타
아래 코딩 부탁드립니다.
진입한 뒤
장 시작후 n개봉 이내에
둘째봉까지의 저가를 하향돌파했을 때(매수진입시)
매수청산
'' 고가를 상향돌파했을 때(매도진입시)
매도청산
3. 이렇게 하면 날이 바뀔 때 값들 초기화하는 게 맞나요? 별 차이가 없어서 질문드립니다.
Inputs: Length(10);
Variables: value(0),CompuTrac(0);
if bdate[0] != bdate[1] then
value = 0;
CompuTrac = 0;
value = ma((High-Low)/Close, Length);
CompuTrac = (value/value[Length]-1)*100;
plot1(Computrac);
4. 3번 지표값을 장시작후 증감치로 바꿔서 작성 부탁드립니다 .
다음글
이전글