커뮤니티

문의합니다.

프로필 이미지
심리도박사
2014-09-27 23:54:25
161
글번호 78878
답변완료
아래는 전에 질의했던 문의내용 원문입니다.현물거래합니다. ------------------------------------------------------------------------------ <매수> 1. 일봉상 이평이격도가 20일선대비 1일선이 80%이하이며, 양봉시 1차매수 100만원 2. 2차매수 1차매수후 -10%시 추가매수 100만원 3. 3차매수 2차매수후 평단가가 -10%시 추가매수 200만원 4. 4차매수 3차매수후 평단가가 -10%시 추가매수 400만원 <매도> 1. 3차매수후 종가시 평단가가 -10%이하시 전량손절 2. 평단가가 +3%시 50% 수익매도 3. 평단가가 +5%시 25% 수익매도 4. 평단가가 +10%시 25% 수익매도 5. 3%수익매도시 나머지 물량 종가 전량매도 요는 1차매수가됐는 2차매수가됐는 4차매수가됐는 평단가 대비 +3%가 된다면 수익실현을 총물량의 50%를 하게되는데 그후 +5%,+10%를 만족하지 못하더라도 종가에 전량매도 하는것입니다. 제 생각에는 +3%수익실현을 하게되면 그다음 주문은 조건부 지정가로 +5%,+10%로 주문을 내게되면 될것같은데요 ^^ ------------------------------------------------------------------------------ 밑에는 답변받은 내용입니다. 매도식이 제가 원했던 내용과 일치하는지 문의드립니다. ------------------------------------------------------------------------------ 안녕하세요 예스스탁입니다. 청산이 타입이 잘못되어 있어 수정했습니다. 해당식 평단가 대비 3%,5%,10% 수익청산은 진입횟수와 관계가 없이 발생합니다. input : Per(10),매수1(1000000),매수2(1000000),매수3(2000000),매수4(4000000); var : Vol1(0),vol2(0),vol3(0),vol4(0); var : X(0),xVol1(0),xvol2(0),xvol3(0); var1 = ma(c,1); var2 = ma(C,20); if CodeCategoryEx == 11 and BasePrice < 50000 Then{ vol1 = int(int((매수1)/C)/10)*10; vol2 = int(int((매수2)/C)/10)*10; vol3 = int(int((매수3)/C)/10)*10; vol4 = int(int((매수4)/C)/10)*10; } Else{ vol1 = int((매수1)/C); vol2 = int((매수2)/C); vol3 = int((매수3)/C); vol4 = int((매수4)/C); } if MarketPosition == 0 and C > O and var1 <= var2*0.8 Then buy("b1",OnClose,def,vol1); if MarketPosition == 1 Then{ if MaxEntries == 1 Then buy("b2",atlimit,AvgEntryPrice*(1-Per/100),vol2); if MaxEntries == 1 Then buy("b3",atlimit,AvgEntryPrice*(1-Per/100),vol3); if MaxEntries == 1 Then buy("b4",atlimit,AvgEntryPrice*(1-Per/100),vol4); } if MarketPosition == 1 Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then{ xvol1 = int(int(MaxContracts*0.5)/10)*10; xvol2 = int(int(MaxContracts*0.5)/10)*10; xvol3 = int(int(MaxContracts*0.5)/10)*10; } Else{ xvol1 = int(MaxContracts*0.5); xvol2 = int(MaxContracts*0.5); xvol3 = int(MaxContracts*0.5); } if CurrentContracts < CurrentContracts[1] Then x = x+1; if X == 0 Then ExitLong("bx1",AtLimit,AvgEntryPrice*1.03,"",Xvol1,1); if X == 1 Then ExitLong("bx2",AtLimit,AvgEntryPrice*1.05,"",Xvol2,1); if X == 2 Then ExitLong("bx3",AtLimit,AvgEntryPrice*1.10,"",Xvol3,1); if MaxEntries == 4 Then ExitLong("bx",AtStop,AvgEntryPrice*0.9); } Else X = 0; 즐거운 하루되세요 ------------------------------------------------------------------------------
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-09-29 11:23:03

안녕하세요 예스스탁입니다. 청산식은 진입횟수와 관계없이 발동을 합니다. 3% 수익이면 50%물량 청산으로 되어 있는데 +5%,+10%도 모두 50%로 되어 있어 25%씩으로 변경했습니다. 당일청산은 시스템 트레이딩 설정창의 강제청산탭에서 설정하시면 됩니다. 시스템은 정규장안에서만 주문이 가능하므로 정규장 안의 시간으로 시간을 지정하셔야 합니다. input : Per(10),매수1(1000000),매수2(1000000),매수3(2000000),매수4(4000000); var : Vol1(0),vol2(0),vol3(0),vol4(0); var : X(0),xVol1(0),xvol2(0),xvol3(0); var1 = ma(c,1); var2 = ma(C,20); if CodeCategoryEx == 11 and BasePrice < 50000 Then{ vol1 = int(int((매수1)/C)/10)*10; vol2 = int(int((매수2)/C)/10)*10; vol3 = int(int((매수3)/C)/10)*10; vol4 = int(int((매수4)/C)/10)*10; } Else{ vol1 = int((매수1)/C); vol2 = int((매수2)/C); vol3 = int((매수3)/C); vol4 = int((매수4)/C); } if MarketPosition == 0 and C > O and var1 <= var2*0.8 Then buy("b1",OnClose,def,vol1); if MarketPosition == 1 Then{ if MaxEntries == 1 Then buy("b2",atlimit,AvgEntryPrice*(1-Per/100),vol2); if MaxEntries == 2 Then buy("b3",atlimit,AvgEntryPrice*(1-Per/100),vol3); if MaxEntries == 3 Then buy("b4",atlimit,AvgEntryPrice*(1-Per/100),vol4); } if MarketPosition == 1 Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then{ xvol1 = int(int(MaxContracts*0.5)/10)*10; xvol2 = int(int(MaxContracts*0.25)/10)*10; xvol3 = xvol1-xvol2; } Else{ xvol1 = int(MaxContracts*0.5); xvol2 = int(MaxContracts*0.5); xvol3 = xvol1-xvol2; } if CurrentContracts < CurrentContracts[1] Then x = x+1; if X == 0 Then ExitLong("bx1",AtLimit,AvgEntryPrice*1.03,"",Xvol1,1); if X == 1 Then ExitLong("bx2",AtLimit,AvgEntryPrice*1.05,"",Xvol2,1); if X == 2 Then ExitLong("bx3",AtLimit,AvgEntryPrice*1.10,"",Xvol3,1); if MaxEntries == 4 Then ExitLong("bx",AtStop,AvgEntryPrice*0.9); } Else X = 0; 즐거운 하루되세요 > 심리도박사 님이 쓴 글입니다. > 제목 : 문의합니다. > 아래는 전에 질의했던 문의내용 원문입니다.현물거래합니다. ------------------------------------------------------------------------------ <매수> 1. 일봉상 이평이격도가 20일선대비 1일선이 80%이하이며, 양봉시 1차매수 100만원 2. 2차매수 1차매수후 -10%시 추가매수 100만원 3. 3차매수 2차매수후 평단가가 -10%시 추가매수 200만원 4. 4차매수 3차매수후 평단가가 -10%시 추가매수 400만원 <매도> 1. 3차매수후 종가시 평단가가 -10%이하시 전량손절 2. 평단가가 +3%시 50% 수익매도 3. 평단가가 +5%시 25% 수익매도 4. 평단가가 +10%시 25% 수익매도 5. 3%수익매도시 나머지 물량 종가 전량매도 요는 1차매수가됐는 2차매수가됐는 4차매수가됐는 평단가 대비 +3%가 된다면 수익실현을 총물량의 50%를 하게되는데 그후 +5%,+10%를 만족하지 못하더라도 종가에 전량매도 하는것입니다. 제 생각에는 +3%수익실현을 하게되면 그다음 주문은 조건부 지정가로 +5%,+10%로 주문을 내게되면 될것같은데요 ^^ ------------------------------------------------------------------------------ 밑에는 답변받은 내용입니다. 매도식이 제가 원했던 내용과 일치하는지 문의드립니다. ------------------------------------------------------------------------------ 안녕하세요 예스스탁입니다. 청산이 타입이 잘못되어 있어 수정했습니다. 해당식 평단가 대비 3%,5%,10% 수익청산은 진입횟수와 관계가 없이 발생합니다. input : Per(10),매수1(1000000),매수2(1000000),매수3(2000000),매수4(4000000); var : Vol1(0),vol2(0),vol3(0),vol4(0); var : X(0),xVol1(0),xvol2(0),xvol3(0); var1 = ma(c,1); var2 = ma(C,20); if CodeCategoryEx == 11 and BasePrice < 50000 Then{ vol1 = int(int((매수1)/C)/10)*10; vol2 = int(int((매수2)/C)/10)*10; vol3 = int(int((매수3)/C)/10)*10; vol4 = int(int((매수4)/C)/10)*10; } Else{ vol1 = int((매수1)/C); vol2 = int((매수2)/C); vol3 = int((매수3)/C); vol4 = int((매수4)/C); } if MarketPosition == 0 and C > O and var1 <= var2*0.8 Then buy("b1",OnClose,def,vol1); if MarketPosition == 1 Then{ if MaxEntries == 1 Then buy("b2",atlimit,AvgEntryPrice*(1-Per/100),vol2); if MaxEntries == 1 Then buy("b3",atlimit,AvgEntryPrice*(1-Per/100),vol3); if MaxEntries == 1 Then buy("b4",atlimit,AvgEntryPrice*(1-Per/100),vol4); } if MarketPosition == 1 Then{ if CodeCategoryEx == 11 and BasePrice < 50000 Then{ xvol1 = int(int(MaxContracts*0.5)/10)*10; xvol2 = int(int(MaxContracts*0.5)/10)*10; xvol3 = int(int(MaxContracts*0.5)/10)*10; } Else{ xvol1 = int(MaxContracts*0.5); xvol2 = int(MaxContracts*0.5); xvol3 = int(MaxContracts*0.5); } if CurrentContracts < CurrentContracts[1] Then x = x+1; if X == 0 Then ExitLong("bx1",AtLimit,AvgEntryPrice*1.03,"",Xvol1,1); if X == 1 Then ExitLong("bx2",AtLimit,AvgEntryPrice*1.05,"",Xvol2,1); if X == 2 Then ExitLong("bx3",AtLimit,AvgEntryPrice*1.10,"",Xvol3,1); if MaxEntries == 4 Then ExitLong("bx",AtStop,AvgEntryPrice*0.9); } Else X = 0; 즐거운 하루되세요 ------------------------------------------------------------------------------