예스스탁
예스스탁 답변
2020-09-04 15:07:25
안녕하세요
예스스탁입니다.
1
data2(closeD(0)!= closeD(1))
위식 진입조건에 추가하시면 최근 미국장종가와 그전 미국장 종가가 같으면 진입을 하지 않습니다.
다만 위 조건이 휴장을 의미하는 부분은 아닙니다.
미국장 휴장여부를 수식으로 파악하는 방법은 잘 모르겠습니다.
2
틱봉에서 분봉 지표값은 정확한 계산이 불가능합니다.
근사값으로 계산되는 내용으로 작성해 드립니다.
input : 분(30),Sto1(10),Sto2(5),Sto3(5);
var : S1(0,data1),D1(0,data1),TM(0,data1),TF(0,data1);
var : cnt(0,data1), Hv(0,data1), LV(0,data1), FK(0,data1), SK(0,data1), SD(0,data1);
var : Ep1(0,data1), EP2(0,data1), JISU(0,data1), DINDEX(0,data1), PreSK(0,data1), PreSD(0,data1);
Array : HH[50](0,data1),LL[50](0,data1);
Ep1 = 2/(sto2+1);
Ep2 = 2/(sto3+1);
if Bdate != Bdate[1] Then
{
S1 = data1(TimeToMinutes(stime));
D1 = data1(sdate);
}
if D1 > 0 then
{
if data1(sdate == D1) Then
TM = data1(TimeToMinutes(stime))-S1;
Else
TM = data1(TimeToMinutes(stime))+1440-S1;
TF = TimeToMinutes(stime)%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
HH[0] = data1(H);
LL[0] = data1(L);
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if data1(H) > HH[0] Then
HH[0] = data1(H);
if data1(L) < LL[0] Then
LL[0] = data1(L);
if HH[sto1-1] > 0 and LL[sto1-1] > 0 then
{
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
DINDEX = DINDEX+1;
PreSK = SK[1];
PreSD = SD[1];
}
Hv = HH[0];
LV = LL[0];
for cnt = 0 to sto1-1 {
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
FK = (data2(C)-LV)/(HV-LV)*100;
if DINDEX <= 1 then
{
SK = FK;
SD = SK;
}
else
{
SK = FK * EP1 + PreSK * (1-EP1);
SD = SK * EP2 + PreSD * (1-EP2);
}
if data1(Bdate != Bdate[1]) Then
{
if 국선 > 나스닥 and sk < 20 Then
Buy();
if 국선 < 나스닥 and sk > 80 Then
Sell();
}
}
}
if MarketPosition == 1 Then
{
ExitLong("Bp",AtLimit,상한선1-0.5);
ExitLong("Bl",AtStop,하한선1-0.5);
}
if MarketPosition == -1 Then
{
ExitShort("sp",AtLimit,하한선1+0.5);
ExitShort("sl",AtStop,상한선1+0.5);
}
setstopendofday();# 종가 청산
3
청산은 여러개 중에 문저 만족한 것으로 청산이 됩니다.
그러므로 값만 다르게 해서 청산식 추가하시면 됩니다.
if MarketPosition == 1 Then
{
ExitLong("Bp1",AtLimit,상한선1-0.5);
ExitLong("Bp2",AtLimit,상한선2-0.5);
ExitLong("Bl1",AtStop,하한선1-0.5);
ExitLong("Bl2",AtStop,하한선2-0.5);
}
if MarketPosition == -1 Then
{
ExitShort("sp1",AtLimit,하한선1+0.5);
ExitShort("sp2",AtLimit,하한선2+0.5);
ExitShort("sl1",AtStop,상한선1+0.5);
ExitShort("sl2",AtStop,상한선2+0.5);
}
즐거운 하루되세요
> 빠른예스 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요. 현재 시스템 수식이 다음과 같습니다.
// 진입조건 =============================================
if data1(Bdate != Bdate[1]) Then
{
if 국선 > 나스닥 Then
Buy();
if 국선 < 나스닥 Then
Sell();
}
if MarketPosition == 1 Then
{
ExitLong("Bp",AtLimit,상한선1-0.5);
ExitLong("Bl",AtStop,하한선1-0.5);
}
if MarketPosition == -1 Then
{
ExitShort("sp",AtLimit,하한선1+0.5);
ExitShort("sl",AtStop,상한선1+0.5);
}
setstopendofday();# 종가 청산
//=============================================
여기서 진입조건을 좀 수정하고 싶습니다
국선과 나스닥을 비교해서 진입하는 수식은 계속 쓰고,
그날 매매를 할지 안할지를 정하려고합니다.
* 1) data2는 나스닥종합(해외지수)를 넣어놓은 상태입니다.
data2(closeD(0) 이 data2(closeD(1)과 같으면 그날은 매매 안하려고 하는데 수식을 어떻게 변경할까요? 전날 미국장이 휴일이었으면 매매를 안하려고 합니다.
* 2) 1번과는 별도로.. 기존 국선과 나스닥 비교해서 진입하는 조건에 더해서,
연결선물인 data1의 "30분봉" 스토캐스틱 K가 80 이상일 때만 매도, 20이하일때만 매수하고 그 외에는 매매 안하려는 수식은 어떻게 하나요? 근데 이때 data1은 "틱봉차트" 입니다..
* 3) 현재 청산기준이 상한선1과 하한선1인데 이걸 하나씩 더 추가하려고 합니다.
수식에 상한선1과 상한선2중 먼저 닿는것에 따라 청산하려면 어떻게 해야할까요?
(하한선도 마찬가지로 1이나 2먼저 닿는걸로...)
항상 감사드립니다!