커뮤니티
수식 작성 부탁드립니다.
2019-10-07 23:17:48
156
글번호 132578
*매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함
*매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함
*당일 손절 20틱, 익절 40틱시 매매종료
*매매시간 : 오전6시59분~오전8시
*썸머타임 시간변경 스크립트도 추가 부탁드립니다.
답변 3
예스스탁 예스스탁 답변
2019-10-08 11:42:51
안녕하세요
예스스탁입니다.
input : starttime(080000),endtime(065900);
input : 익절틱수(10),손절틱수(10);
Input : 당일수익틱수(40),당일손실틱수(20);
var : Tcond(false);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Summer(False),Year(0),st(0),et(0);
var : V1(0),V2(0),V3(0),V4(0);
#영업일 변경
if bdate != bdate[1] Then
{
//썸머타임체크
Year = Floor(bdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
st = starttime;
et = endtime;
}
Else
{
st = starttime+10000;
et = endtime+10000;
}
}
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if (sdate != sdate[1] and stime >= et) or
(sdate == sdate[1] and stime >= et and stime[1] < et) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
if (sdate != sdate[1] and stime >= st) or
(sdate == sdate[1] and stime >= st and stime[1] < st) then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
var1 = ma(C,3);
var2 = ma(C,19);
if Xcond == false then
{
if var1 > var2 and crossup(c,var1) Then
buy();
if var1 < var2 and CrossDown(c,var1) Then
sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
즐거운 하루되세요
> wootnt 님이 쓴 글입니다.
> 제목 : 수식 작성 부탁드립니다.
> *매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함
*매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함
*당일 손절 20틱, 익절 40틱시 매매종료
*매매시간 : 오전6시59분~오전8시
*썸머타임 시간변경 스크립트도 추가 부탁드립니다.
wootnt
2019-10-08 13:11:44
수식 감사드립니다. 그런데 진입이 봉의 종가가 아닌 3일선에 붙여서는 어려울까요?
예를들어 상방 돌파 후 내려올때 3일선에서 잡는식입니다. 혹시 가능하다면 수정 부탁드리겠습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 작성 부탁드립니다.
> 안녕하세요
예스스탁입니다.
input : starttime(080000),endtime(065900);
input : 익절틱수(10),손절틱수(10);
Input : 당일수익틱수(40),당일손실틱수(20);
var : Tcond(false);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Summer(False),Year(0),st(0),et(0);
var : V1(0),V2(0),V3(0),V4(0);
#영업일 변경
if bdate != bdate[1] Then
{
//썸머타임체크
Year = Floor(bdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
st = starttime;
et = endtime;
}
Else
{
st = starttime+10000;
et = endtime+10000;
}
}
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if (sdate != sdate[1] and stime >= et) or
(sdate == sdate[1] and stime >= et and stime[1] < et) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
if (sdate != sdate[1] and stime >= st) or
(sdate == sdate[1] and stime >= st and stime[1] < st) then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
var1 = ma(C,3);
var2 = ma(C,19);
if Xcond == false then
{
if var1 > var2 and crossup(c,var1) Then
buy();
if var1 < var2 and CrossDown(c,var1) Then
sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
즐거운 하루되세요
> wootnt 님이 쓴 글입니다.
> 제목 : 수식 작성 부탁드립니다.
> *매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함
*매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함
*당일 손절 20틱, 익절 40틱시 매매종료
*매매시간 : 오전6시59분~오전8시
*썸머타임 시간변경 스크립트도 추가 부탁드립니다.
예스스탁 예스스탁 답변
2019-10-08 13:49:01
안녕하세요
예스스탁입니다.
3일선위에서 하락해서 3일선 터치시 매수
3일선 아래에서 상승해서 3일선 터치시 매도로 수정했습니다.
input : starttime(080000),endtime(065900);
input : 익절틱수(10),손절틱수(10);
Input : 당일수익틱수(40),당일손실틱수(20);
var : Tcond(false);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Summer(False),Year(0),st(0),et(0);
var : V1(0),V2(0),V3(0),V4(0);
#영업일 변경
if bdate != bdate[1] Then
{
//썸머타임체크
Year = Floor(bdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
st = starttime;
et = endtime;
}
Else
{
st = starttime+10000;
et = endtime+10000;
}
}
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if (sdate != sdate[1] and stime >= et) or
(sdate == sdate[1] and stime >= et and stime[1] < et) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
if (sdate != sdate[1] and stime >= st) or
(sdate == sdate[1] and stime >= st and stime[1] < st) then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
var1 = ma(C,3);
var2 = ma(C,19);
if Xcond == false then
{
if var1 > var2 and L > var1 Then
buy("b",atlimit,var1);
if var1 < var2 and H < var1 Then
sell("s",AtStop,var1);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
즐거운 하루되세요
> wootnt 님이 쓴 글입니다.
> 제목 : Re : Re : 수식 작성 부탁드립니다.
> 수식 감사드립니다. 그런데 진입이 봉의 종가가 아닌 3일선에 붙여서는 어려울까요?
예를들어 상방 돌파 후 내려올때 3일선에서 잡는식입니다. 혹시 가능하다면 수정 부탁드리겠습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 작성 부탁드립니다.
> 안녕하세요
예스스탁입니다.
input : starttime(080000),endtime(065900);
input : 익절틱수(10),손절틱수(10);
Input : 당일수익틱수(40),당일손실틱수(20);
var : Tcond(false);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
var : Summer(False),Year(0),st(0),et(0);
var : V1(0),V2(0),V3(0),V4(0);
#영업일 변경
if bdate != bdate[1] Then
{
//썸머타임체크
Year = Floor(bdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
st = starttime;
et = endtime;
}
Else
{
st = starttime+10000;
et = endtime+10000;
}
}
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if (sdate != sdate[1] and stime >= et) or
(sdate == sdate[1] and stime >= et and stime[1] < et) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
if (sdate != sdate[1] and stime >= st) or
(sdate == sdate[1] and stime >= st and stime[1] < st) then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
var1 = ma(C,3);
var2 = ma(C,19);
if Xcond == false then
{
if var1 > var2 and crossup(c,var1) Then
buy();
if var1 < var2 and CrossDown(c,var1) Then
sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
즐거운 하루되세요
> wootnt 님이 쓴 글입니다.
> 제목 : 수식 작성 부탁드립니다.
> *매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함
*매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함
*당일 손절 20틱, 익절 40틱시 매매종료
*매매시간 : 오전6시59분~오전8시
*썸머타임 시간변경 스크립트도 추가 부탁드립니다.
다음글
이전글