커뮤니티
이것 저것 문의드립니다.
2017-10-26 11:21:38
157
글번호 113642
도움주시는 덕분에 도전하고 있습니다. 언제 우상향 그래프만드나 싶기도 하지만 파이썬 배울 때보다는 진도가 빠르네요. 매번 감사합니다.
1. 시스템
비고: 기준은 일봉으로 매매는 30분봉으로
var1 = 주첫째날부터 셋째날까지의 고가
진입
-주넷째날의 고가가 var1을 상향돌파하면
1차진입, 수량 100(변수)
-1차진입가격으로부터 3%이상 가격이 바뀌면(-3%이상 떨어지거나 +3% 이상 오르거나) 2차 진입, 수량 100(변수)
-2차진입가격으로부터 3%이상 가격이 바뀌면 3차진입, 수량 100(변수)
주마지막날 모두 청산.
2. 시스템
변수: 설정가, 금액a, 금액b, 금액c, n%
1차진입
-설정가에서 금액a만큼 즉시 진입(상향돌파, 하향돌파, =)
2차진입
1차진입가에서 n% 이상 하락했을 때 그 가격에서 금액b만큼 2차진입
1차진입가에서 n% 이상 상승했을 때 그 가격에서 금액d만큼 2차진입
3차진입
2차진입가에서 n% 이상 하락했을 때 그 가격에서 금액 c만큼 3차진입
2차진입가에서 n% 이상 상승했을 때 그 가격에서 금액 e만큼 3차진입
청산
-3차진입이후 포지션이 6%의 수익률을 기록하거나
-3차진입이후 포지션의 손실률이 3%를 기록하면 모두 청산
3. 시스템
진입
종가가 20개봉 고가 돌파
청산
-저점이 n개봉 이전 최저점(5봉 이전 봉의 20봉내 최저점)을 3%이상 하회하거나.
-10봉이내에 저점이 높아지지 않으면 청산
4. 시스템
진입
-40개봉 최고가 돌파
-10개봉 이내에 돌파시점가격에서 가격이 n% 이상 떨어지지 않았거나
-10개봉 이내에 돌파시점 가격대비 b% 이상 올랐으면 진입
청산
-진입 후 가격이 고가대비 n%이상 떨어지는 순간 청산
5. 시스템
변수: 설정자금, 투입자금(설정자금을 타임프레임 기준로 나눈 것)
30분봉 시가마다 투입자금 진입(30분봉이면 장종료까지의 봉갯수(13개로 나눔)로 설정자금을 나눈 금액이 투입자금)
청산
당일 오후 3시 15분이 되면 일괄청산
손실금액이 설정자금의 2%에 도달하는 순간 더이상 진입하지 않음.
비고
봉갯수 계산이 어려운 수식이면 그냥 외부변수로 설정해주셔도 됩니다.
답변 3
예스스탁 예스스탁 답변
2017-10-27 11:34:17
안녕하세요
예스스탁입니다.
1
휴일정보가 없어 주마지막날은 체크하지 못합니다.
금요일 15시15분에 청산되게 작성했습니다.
input : n(100);
var : WD(0),HH(0),LL(0),cnt(0),entry(false);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{
WD = 0;
entry = true;
}
if Bdate != Bdate[1] Then
WD = WD+1;
if WD == 3 then{
HH = dayhigh;
LL = daylow;
for cnt = 0 to 2{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if daylow(cnt) < LL Then
LL = dayhigh(cnt);
}
}
if WD >= 4 and entry == true Then{
if MarketPosition == 0 and crossuP(H,HH) Then
buy("b1",OnClose,def,n);
if MarketPosition == 1 and MaxEntries >= 1 and MaxEntries < 3 then{
buy("b21",AtStop,LatestEntryPrice(0)*1.03,n);
buy("b22",Atlimit,LatestEntryPrice(0)*0.97,n);
}
}
if DayOfWeek(bdate) == 5 and stime >= 151500 Then{
entry = false;
exitlong("bx");
}
2
input : 설정가(1000),금액a(1000000),금액b(1000000),금액c(1000000),금액d(1000000),금액e(1000000),n(3);
if MarketPosition == 0 and
(C == 설정가 or crossuP(c,설정가) or CrossDown(c,설정가)) Then
buy("b1",OnClose,def,Floor(금액a/C));
if MarketPosition == 1 Then{
if MaxEntries == 1 then{
buy("b21",AtStop,LatestEntryPrice(0)*(1+n/100),Floor(금액b/C));
buy("b22",Atlimit,LatestEntryPrice(0)*(1-n/100),Floor(금액d/C));
}
if MaxEntries == 2 then{
buy("b31",AtStop,LatestEntryPrice(0)*(1+n/100),Floor(금액c/C));
buy("b32",Atlimit,LatestEntryPrice(0)*(1-n/100),Floor(금액e/C));
}
if MaxEntries == 3 Then{
ExitLong("bx1",atlimit,AvgEntryPrice*1.06);
ExitLong("bx2",AtStop,AvgEntryPrice*0.97);
}
}
3
input : P(20),n(5);
var1 = highest(H,P);
var2 = lowest(L,P);
if MarketPosition == 0 and crossup(c,var1[1]) Then
buy("b");
if MarketPosition == 1 then
{
ExitLong("bx1",AtStop,var2[n]*0.97);
if countif(var2>var2[1],10) < 1 Then
ExitLong("bx2");
}
4
input : n(5),b(5);
var1 = highest(H,40);
if crossup(c,var1[1]) Then{
var2 = index;
var3 = H;
Condition1 = false;
}
if var2 > 0 and index >= var2 and index < var2+10 Then{
if L <= var3*(1-n/100) Then
Condition1 = true;
if Condition1 == false Then
buy("b",AtStop,var3*(1+b/100));
}
if MarketPosition == 1 then
{
ExitLong("bx1",AtStop,highest(H,BarsSinceEntry)*(1-n/100));
}
5
input : 설정자금(1000000000);
var : 투입자금(0);
투입자금 = 설정자금/(390/BarInterval);
if NextBarStime < 151500 then
buy("b",AtMarket,def,Floor(투입자금/NextBarOpen));
SetStopEndofday(151500);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것 저것 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 언제 우상향 그래프만드나 싶기도 하지만 파이썬 배울 때보다는 진도가 빠르네요. 매번 감사합니다.
1. 시스템
비고: 기준은 일봉으로 매매는 30분봉으로
var1 = 주첫째날부터 셋째날까지의 고가
진입
-주넷째날의 고가가 var1을 상향돌파하면
1차진입, 수량 100(변수)
-1차진입가격으로부터 3%이상 가격이 바뀌면(-3%이상 떨어지거나 +3% 이상 오르거나) 2차 진입, 수량 100(변수)
-2차진입가격으로부터 3%이상 가격이 바뀌면 3차진입, 수량 100(변수)
주마지막날 모두 청산.
2. 시스템
변수: 설정가, 금액a, 금액b, 금액c, n%
1차진입
-설정가에서 금액a만큼 즉시 진입(상향돌파, 하향돌파, =)
2차진입
1차진입가에서 n% 이상 하락했을 때 그 가격에서 금액b만큼 2차진입
1차진입가에서 n% 이상 상승했을 때 그 가격에서 금액d만큼 2차진입
3차진입
2차진입가에서 n% 이상 하락했을 때 그 가격에서 금액 c만큼 3차진입
2차진입가에서 n% 이상 상승했을 때 그 가격에서 금액 e만큼 3차진입
청산
-3차진입이후 포지션이 6%의 수익률을 기록하거나
-3차진입이후 포지션의 손실률이 3%를 기록하면 모두 청산
3. 시스템
진입
종가가 20개봉 고가 돌파
청산
-저점이 n개봉 이전 최저점(5봉 이전 봉의 20봉내 최저점)을 3%이상 하회하거나.
-10봉이내에 저점이 높아지지 않으면 청산
4. 시스템
진입
-40개봉 최고가 돌파
-10개봉 이내에 돌파시점가격에서 가격이 n% 이상 떨어지지 않았거나
-10개봉 이내에 돌파시점 가격대비 b% 이상 올랐으면 진입
청산
-진입 후 가격이 고가대비 n%이상 떨어지는 순간 청산
5. 시스템
변수: 설정자금, 투입자금(설정자금을 타임프레임 기준로 나눈 것)
30분봉 시가마다 투입자금 진입(30분봉이면 장종료까지의 봉갯수(13개로 나눔)로 설정자금을 나눈 금액이 투입자금)
청산
당일 오후 3시 15분이 되면 일괄청산
손실금액이 설정자금의 2%에 도달하는 순간 더이상 진입하지 않음.
비고
봉갯수 계산이 어려운 수식이면 그냥 외부변수로 설정해주셔도 됩니다.
잡다백수
2017-10-30 16:35:23
코딩 감사합니다.
그런데 5번에 손실금액이 설정자금의 2%가 되면 더이상 진입하지 않음이란 코딩은 없는 듯 합니다.
그냥 손절매에다가 2%해놓으면 설정자금대비 2%가 되면 청산이 되나요? 아니면 포지션대비 2%인가요? 목표청산으로 해보니 포지션대비인 듯 합니다. 목표청산을 한 뒤 시스템을 멈추려면 수동으로 꺼줘야 하나요?
그리고 봉갯수로 나누지 않고 투입자금을 외부변수로 하려면 투입자금 = 설정자금/(390/BarInterval); 이 부분을 제가 알맞게 고치면 되나요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 이것 저것 문의드립니다.
>
안녕하세요
예스스탁입니다.
1
휴일정보가 없어 주마지막날은 체크하지 못합니다.
금요일 15시15분에 청산되게 작성했습니다.
input : n(100);
var : WD(0),HH(0),LL(0),cnt(0),entry(false);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{
WD = 0;
entry = true;
}
if Bdate != Bdate[1] Then
WD = WD+1;
if WD == 3 then{
HH = dayhigh;
LL = daylow;
for cnt = 0 to 2{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if daylow(cnt) < LL Then
LL = dayhigh(cnt);
}
}
if WD >= 4 and entry == true Then{
if MarketPosition == 0 and crossuP(H,HH) Then
buy("b1",OnClose,def,n);
if MarketPosition == 1 and MaxEntries >= 1 and MaxEntries < 3 then{
buy("b21",AtStop,LatestEntryPrice(0)*1.03,n);
buy("b22",Atlimit,LatestEntryPrice(0)*0.97,n);
}
}
if DayOfWeek(bdate) == 5 and stime >= 151500 Then{
entry = false;
exitlong("bx");
}
2
input : 설정가(1000),금액a(1000000),금액b(1000000),금액c(1000000),금액d(1000000),금액e(1000000),n(3);
if MarketPosition == 0 and
(C == 설정가 or crossuP(c,설정가) or CrossDown(c,설정가)) Then
buy("b1",OnClose,def,Floor(금액a/C));
if MarketPosition == 1 Then{
if MaxEntries == 1 then{
buy("b21",AtStop,LatestEntryPrice(0)*(1+n/100),Floor(금액b/C));
buy("b22",Atlimit,LatestEntryPrice(0)*(1-n/100),Floor(금액d/C));
}
if MaxEntries == 2 then{
buy("b31",AtStop,LatestEntryPrice(0)*(1+n/100),Floor(금액c/C));
buy("b32",Atlimit,LatestEntryPrice(0)*(1-n/100),Floor(금액e/C));
}
if MaxEntries == 3 Then{
ExitLong("bx1",atlimit,AvgEntryPrice*1.06);
ExitLong("bx2",AtStop,AvgEntryPrice*0.97);
}
}
3
input : P(20),n(5);
var1 = highest(H,P);
var2 = lowest(L,P);
if MarketPosition == 0 and crossup(c,var1[1]) Then
buy("b");
if MarketPosition == 1 then
{
ExitLong("bx1",AtStop,var2[n]*0.97);
if countif(var2>var2[1],10) < 1 Then
ExitLong("bx2");
}
4
input : n(5),b(5);
var1 = highest(H,40);
if crossup(c,var1[1]) Then{
var2 = index;
var3 = H;
Condition1 = false;
}
if var2 > 0 and index >= var2 and index < var2+10 Then{
if L <= var3*(1-n/100) Then
Condition1 = true;
if Condition1 == false Then
buy("b",AtStop,var3*(1+b/100));
}
if MarketPosition == 1 then
{
ExitLong("bx1",AtStop,highest(H,BarsSinceEntry)*(1-n/100));
}
5
input : 설정자금(1000000000);
var : 투입자금(0);
투입자금 = 설정자금/(390/BarInterval);
if NextBarStime < 151500 then
buy("b",AtMarket,def,Floor(투입자금/NextBarOpen));
SetStopEndofday(151500);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것 저것 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 언제 우상향 그래프만드나 싶기도 하지만 파이썬 배울 때보다는 진도가 빠르네요. 매번 감사합니다.
1. 시스템
비고: 기준은 일봉으로 매매는 30분봉으로
var1 = 주첫째날부터 셋째날까지의 고가
진입
-주넷째날의 고가가 var1을 상향돌파하면
1차진입, 수량 100(변수)
-1차진입가격으로부터 3%이상 가격이 바뀌면(-3%이상 떨어지거나 +3% 이상 오르거나) 2차 진입, 수량 100(변수)
-2차진입가격으로부터 3%이상 가격이 바뀌면 3차진입, 수량 100(변수)
주마지막날 모두 청산.
2. 시스템
변수: 설정가, 금액a, 금액b, 금액c, n%
1차진입
-설정가에서 금액a만큼 즉시 진입(상향돌파, 하향돌파, =)
2차진입
1차진입가에서 n% 이상 하락했을 때 그 가격에서 금액b만큼 2차진입
1차진입가에서 n% 이상 상승했을 때 그 가격에서 금액d만큼 2차진입
3차진입
2차진입가에서 n% 이상 하락했을 때 그 가격에서 금액 c만큼 3차진입
2차진입가에서 n% 이상 상승했을 때 그 가격에서 금액 e만큼 3차진입
청산
-3차진입이후 포지션이 6%의 수익률을 기록하거나
-3차진입이후 포지션의 손실률이 3%를 기록하면 모두 청산
3. 시스템
진입
종가가 20개봉 고가 돌파
청산
-저점이 n개봉 이전 최저점(5봉 이전 봉의 20봉내 최저점)을 3%이상 하회하거나.
-10봉이내에 저점이 높아지지 않으면 청산
4. 시스템
진입
-40개봉 최고가 돌파
-10개봉 이내에 돌파시점가격에서 가격이 n% 이상 떨어지지 않았거나
-10개봉 이내에 돌파시점 가격대비 b% 이상 올랐으면 진입
청산
-진입 후 가격이 고가대비 n%이상 떨어지는 순간 청산
5. 시스템
변수: 설정자금, 투입자금(설정자금을 타임프레임 기준로 나눈 것)
30분봉 시가마다 투입자금 진입(30분봉이면 장종료까지의 봉갯수(13개로 나눔)로 설정자금을 나눈 금액이 투입자금)
청산
당일 오후 3시 15분이 되면 일괄청산
손실금액이 설정자금의 2%에 도달하는 순간 더이상 진입하지 않음.
비고
봉갯수 계산이 어려운 수식이면 그냥 외부변수로 설정해주셔도 됩니다.
예스스탁 예스스탁 답변
2017-10-30 17:10:15
안녕하세요
예스스탁입니다.
1 5번식에 내용 추가했습니다.
input : 설정자금(1000000000);
var : 투입자금(0);
투입자금 = 설정자금/(390/BarInterval);
if NextBarStime < 151500 and NetProfit > -(설정자금*0.02) then
buy("b",AtMarket,def,Floor(투입자금/NextBarOpen));
SetStopEndofday(151500);
2
예 알맞게 수정하시면 됩니다.
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : Re : Re : 이것 저것 문의드립니다.
> 코딩 감사합니다.
그런데 5번에 손실금액이 설정자금의 2%가 되면 더이상 진입하지 않음이란 코딩은 없는 듯 합니다.
그냥 손절매에다가 2%해놓으면 설정자금대비 2%가 되면 청산이 되나요? 아니면 포지션대비 2%인가요? 목표청산으로 해보니 포지션대비인 듯 합니다. 목표청산을 한 뒤 시스템을 멈추려면 수동으로 꺼줘야 하나요?
그리고 봉갯수로 나누지 않고 투입자금을 외부변수로 하려면 투입자금 = 설정자금/(390/BarInterval); 이 부분을 제가 알맞게 고치면 되나요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 이것 저것 문의드립니다.
>
안녕하세요
예스스탁입니다.
1
휴일정보가 없어 주마지막날은 체크하지 못합니다.
금요일 15시15분에 청산되게 작성했습니다.
input : n(100);
var : WD(0),HH(0),LL(0),cnt(0),entry(false);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{
WD = 0;
entry = true;
}
if Bdate != Bdate[1] Then
WD = WD+1;
if WD == 3 then{
HH = dayhigh;
LL = daylow;
for cnt = 0 to 2{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if daylow(cnt) < LL Then
LL = dayhigh(cnt);
}
}
if WD >= 4 and entry == true Then{
if MarketPosition == 0 and crossuP(H,HH) Then
buy("b1",OnClose,def,n);
if MarketPosition == 1 and MaxEntries >= 1 and MaxEntries < 3 then{
buy("b21",AtStop,LatestEntryPrice(0)*1.03,n);
buy("b22",Atlimit,LatestEntryPrice(0)*0.97,n);
}
}
if DayOfWeek(bdate) == 5 and stime >= 151500 Then{
entry = false;
exitlong("bx");
}
2
input : 설정가(1000),금액a(1000000),금액b(1000000),금액c(1000000),금액d(1000000),금액e(1000000),n(3);
if MarketPosition == 0 and
(C == 설정가 or crossuP(c,설정가) or CrossDown(c,설정가)) Then
buy("b1",OnClose,def,Floor(금액a/C));
if MarketPosition == 1 Then{
if MaxEntries == 1 then{
buy("b21",AtStop,LatestEntryPrice(0)*(1+n/100),Floor(금액b/C));
buy("b22",Atlimit,LatestEntryPrice(0)*(1-n/100),Floor(금액d/C));
}
if MaxEntries == 2 then{
buy("b31",AtStop,LatestEntryPrice(0)*(1+n/100),Floor(금액c/C));
buy("b32",Atlimit,LatestEntryPrice(0)*(1-n/100),Floor(금액e/C));
}
if MaxEntries == 3 Then{
ExitLong("bx1",atlimit,AvgEntryPrice*1.06);
ExitLong("bx2",AtStop,AvgEntryPrice*0.97);
}
}
3
input : P(20),n(5);
var1 = highest(H,P);
var2 = lowest(L,P);
if MarketPosition == 0 and crossup(c,var1[1]) Then
buy("b");
if MarketPosition == 1 then
{
ExitLong("bx1",AtStop,var2[n]*0.97);
if countif(var2>var2[1],10) < 1 Then
ExitLong("bx2");
}
4
input : n(5),b(5);
var1 = highest(H,40);
if crossup(c,var1[1]) Then{
var2 = index;
var3 = H;
Condition1 = false;
}
if var2 > 0 and index >= var2 and index < var2+10 Then{
if L <= var3*(1-n/100) Then
Condition1 = true;
if Condition1 == false Then
buy("b",AtStop,var3*(1+b/100));
}
if MarketPosition == 1 then
{
ExitLong("bx1",AtStop,highest(H,BarsSinceEntry)*(1-n/100));
}
5
input : 설정자금(1000000000);
var : 투입자금(0);
투입자금 = 설정자금/(390/BarInterval);
if NextBarStime < 151500 then
buy("b",AtMarket,def,Floor(투입자금/NextBarOpen));
SetStopEndofday(151500);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것 저것 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 언제 우상향 그래프만드나 싶기도 하지만 파이썬 배울 때보다는 진도가 빠르네요. 매번 감사합니다.
1. 시스템
비고: 기준은 일봉으로 매매는 30분봉으로
var1 = 주첫째날부터 셋째날까지의 고가
진입
-주넷째날의 고가가 var1을 상향돌파하면
1차진입, 수량 100(변수)
-1차진입가격으로부터 3%이상 가격이 바뀌면(-3%이상 떨어지거나 +3% 이상 오르거나) 2차 진입, 수량 100(변수)
-2차진입가격으로부터 3%이상 가격이 바뀌면 3차진입, 수량 100(변수)
주마지막날 모두 청산.
2. 시스템
변수: 설정가, 금액a, 금액b, 금액c, n%
1차진입
-설정가에서 금액a만큼 즉시 진입(상향돌파, 하향돌파, =)
2차진입
1차진입가에서 n% 이상 하락했을 때 그 가격에서 금액b만큼 2차진입
1차진입가에서 n% 이상 상승했을 때 그 가격에서 금액d만큼 2차진입
3차진입
2차진입가에서 n% 이상 하락했을 때 그 가격에서 금액 c만큼 3차진입
2차진입가에서 n% 이상 상승했을 때 그 가격에서 금액 e만큼 3차진입
청산
-3차진입이후 포지션이 6%의 수익률을 기록하거나
-3차진입이후 포지션의 손실률이 3%를 기록하면 모두 청산
3. 시스템
진입
종가가 20개봉 고가 돌파
청산
-저점이 n개봉 이전 최저점(5봉 이전 봉의 20봉내 최저점)을 3%이상 하회하거나.
-10봉이내에 저점이 높아지지 않으면 청산
4. 시스템
진입
-40개봉 최고가 돌파
-10개봉 이내에 돌파시점가격에서 가격이 n% 이상 떨어지지 않았거나
-10개봉 이내에 돌파시점 가격대비 b% 이상 올랐으면 진입
청산
-진입 후 가격이 고가대비 n%이상 떨어지는 순간 청산
5. 시스템
변수: 설정자금, 투입자금(설정자금을 타임프레임 기준로 나눈 것)
30분봉 시가마다 투입자금 진입(30분봉이면 장종료까지의 봉갯수(13개로 나눔)로 설정자금을 나눈 금액이 투입자금)
청산
당일 오후 3시 15분이 되면 일괄청산
손실금액이 설정자금의 2%에 도달하는 순간 더이상 진입하지 않음.
비고
봉갯수 계산이 어려운 수식이면 그냥 외부변수로 설정해주셔도 됩니다.