커뮤니티

이것 저것 문의드립니다.

프로필 이미지
잡다백수
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%에 도달하는 순간 더이상 진입하지 않음. 비고 봉갯수 계산이 어려운 수식이면 그냥 외부변수로 설정해주셔도 됩니다.