커뮤니티

현재 있는 수식에서 분할매도 기능 추가 부탁드려요~~

프로필 이미지
이형지
2020-11-14 07:36:11
527
글번호 143884
답변완료
제가 사용하고 있는 수식인데요.... 매도 되는 수식이 두개가 있는데 1) 전체 진입 매수 평균가에 10% 수익시 일괄 청산 2) 기타 보조지수 를 충족시 분할 청산 거기에서 2번의 경우는 분할매도로 청산되는데 1번의 조건을 만족시에도 분할 매도 되게 수식 부탁드림니다.~~ input : 시작일(19000101); input : 일봉RSI기간(30); input : 일봉RSI값1(52),일봉RSI값2(36),일봉RSI값3(30); input : 최대투자금액(1500); input : 진입금액1(5); input : 진입금액2(15); input : 진입금액3(20); input : 진입금액4(25); input : 진입금액5(30); input : 진입금액6(35); input : 진입금액7(40); input : 진입금액8(50); input : 진입금액9(60); input : 진입금액10(70); input : 이차진입금액(100); input : 삼차진입금액(200); input : MFI기간(15),MFI값(90); input : 심리도기간(15),심리도값(80); # 보조지수 충족시 input : 분할매도횟수(25); input : 분할매도퍼센트(10); input: 청산수익률(1.09); var : mav(0,data2),MM(0,Data3),SS(0,Data3); var : MMM(0,Data2),SSS(0,Data2),Xcnt(0,Data2),Xvol(0,data1); MM = Data3(mfi(MFI기간)); SS = Data3(Simrido(심리도기간)); MMM = Data2(mfi(MFI기간)); SSS = Data2(Simrido(심리도기간)); var : vol(0); var : RSI2(0,Data2); RSI2 = Data2(RSI(일봉RSI기간)); if Data1(sDate) >= 시작일 Then { if MarketPosition == 0 or (MarketPosition == 1 and AvgEntryPrice*CurrentContracts < 최대투자금액*10000 ) Then { if data1(sTime == 93000 or sTime == 120000 ) Then # or sTime == 123000 { if Data2(RSI2 > 일봉RSI값1) Then { if MarketPosition == 0 or (MarketPosition == 1 and C >= AvgEntryPrice*0.98) Then vol = Floor(진입금액1*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.98 and C >= AvgEntryPrice*0.96 Then vol = Floor(진입금액2*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.96 and C >= AvgEntryPrice*0.94 Then vol = Floor(진입금액3*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.94 and C >= AvgEntryPrice*0.92 Then vol = Floor(진입금액4*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.92 and C >= AvgEntryPrice*0.90 Then vol = Floor(진입금액5*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.90 and C >= AvgEntryPrice*0.88 Then vol = Floor(진입금액6*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.88 and C >= AvgEntryPrice*0.86 Then vol = Floor(진입금액7*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.86 and C >= AvgEntryPrice*0.84 Then vol = Floor(진입금액8*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.84 and C >= AvgEntryPrice*0.82 Then vol = Floor(진입금액9*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.82 and C >= AvgEntryPrice*0.80 Then vol = Floor(진입금액10*10000/c); Buy("불타기매매1",OnClose,DEf,vol); } if Data2(RSI2 < 일봉RSI값2 and RSI2 > 일봉RSI값3 ) Then { Buy("하락과도매매1",OnClose,DEf,Floor(이차진입금액*10000/c)); } if Data2(RSI2 < 일봉RSI값3) Then { Buy("폭락과도매매1",OnClose,DEf,Floor(삼차진입금액*10000/c)); } } } } if MarketPosition == 1 Then { ExitLong("bx",AtLimit,AvgEntryPrice*청산수익률); } if MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 Then { xcnt = xcnt+1; if Xcnt <= (분할매도횟수-1) Then Xvol = Floor(MaxContracts*분할매도퍼센트/100); else Xvol = CurrentContracts; if Xcnt <= 분할매도횟수 Then exitlong("청산",atlimit,C,"",Xvol,2); } Else xcnt = 0;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-11-16 14:30:18

안녕하세요 예스스탁입니다. 1번 10%수익청산을 어떤 방법으로 분할 청산하고자 하시는지 알수 없습니다. 기존 2번에 수익률 달성조건을 추가해 드립니다. input : 시작일(19000101); input : 일봉RSI기간(30); input : 일봉RSI값1(52),일봉RSI값2(36),일봉RSI값3(30); input : 최대투자금액(1500); input : 진입금액1(5); input : 진입금액2(15); input : 진입금액3(20); input : 진입금액4(25); input : 진입금액5(30); input : 진입금액6(35); input : 진입금액7(40); input : 진입금액8(50); input : 진입금액9(60); input : 진입금액10(70); input : 이차진입금액(100); input : 삼차진입금액(200); input : MFI기간(15),MFI값(90); input : 심리도기간(15),심리도값(80); # 보조지수 충족시 input : 분할매도횟수(25); input : 분할매도퍼센트(10); input: 청산수익률(1.09); var : mav(0,data2),MM(0,Data3),SS(0,Data3); var : MMM(0,Data2),SSS(0,Data2),Xcnt(0,Data2),Xvol(0,data1); MM = Data3(mfi(MFI기간)); SS = Data3(Simrido(심리도기간)); MMM = Data2(mfi(MFI기간)); SSS = Data2(Simrido(심리도기간)); var : vol(0); var : RSI2(0,Data2); RSI2 = Data2(RSI(일봉RSI기간)); if Data1(sDate) >= 시작일 Then { if MarketPosition == 0 or (MarketPosition == 1 and AvgEntryPrice*CurrentContracts < 최대투자금액*10000 ) Then { if data1(sTime == 93000 or sTime == 120000 ) Then # or sTime == 123000 { if Data2(RSI2 > 일봉RSI값1) Then { if MarketPosition == 0 or (MarketPosition == 1 and C >= AvgEntryPrice*0.98) Then vol = Floor(진입금액1*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.98 and C >= AvgEntryPrice*0.96 Then vol = Floor(진입금액2*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.96 and C >= AvgEntryPrice*0.94 Then vol = Floor(진입금액3*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.94 and C >= AvgEntryPrice*0.92 Then vol = Floor(진입금액4*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.92 and C >= AvgEntryPrice*0.90 Then vol = Floor(진입금액5*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.90 and C >= AvgEntryPrice*0.88 Then vol = Floor(진입금액6*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.88 and C >= AvgEntryPrice*0.86 Then vol = Floor(진입금액7*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.86 and C >= AvgEntryPrice*0.84 Then vol = Floor(진입금액8*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.84 and C >= AvgEntryPrice*0.82 Then vol = Floor(진입금액9*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.82 and C >= AvgEntryPrice*0.80 Then vol = Floor(진입금액10*10000/c); Buy("불타기매매1",OnClose,DEf,vol); } if Data2(RSI2 < 일봉RSI값2 and RSI2 > 일봉RSI값3 ) Then { Buy("하락과도매매1",OnClose,DEf,Floor(이차진입금액*10000/c)); } if Data2(RSI2 < 일봉RSI값3) Then { Buy("폭락과도매매1",OnClose,DEf,Floor(삼차진입금액*10000/c)); } } } } if MarketPosition == 1 Then { if MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 or h >= AvgEntryPrice*청산수익률 Then { xcnt = xcnt+1; if Xcnt <= (분할매도횟수-1) Then Xvol = Floor(MaxContracts*분할매도퍼센트/100); else Xvol = CurrentContracts; if Xcnt <= 분할매도횟수 Then exitlong("청산",atlimit,C,"",Xvol,2); } } Else xcnt = 0; 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : 현재 있는 수식에서 분할매도 기능 추가 부탁드려요~~ > 제가 사용하고 있는 수식인데요.... 매도 되는 수식이 두개가 있는데 1) 전체 진입 매수 평균가에 10% 수익시 일괄 청산 2) 기타 보조지수 를 충족시 분할 청산 거기에서 2번의 경우는 분할매도로 청산되는데 1번의 조건을 만족시에도 분할 매도 되게 수식 부탁드림니다.~~ input : 시작일(19000101); input : 일봉RSI기간(30); input : 일봉RSI값1(52),일봉RSI값2(36),일봉RSI값3(30); input : 최대투자금액(1500); input : 진입금액1(5); input : 진입금액2(15); input : 진입금액3(20); input : 진입금액4(25); input : 진입금액5(30); input : 진입금액6(35); input : 진입금액7(40); input : 진입금액8(50); input : 진입금액9(60); input : 진입금액10(70); input : 이차진입금액(100); input : 삼차진입금액(200); input : MFI기간(15),MFI값(90); input : 심리도기간(15),심리도값(80); # 보조지수 충족시 input : 분할매도횟수(25); input : 분할매도퍼센트(10); input: 청산수익률(1.09); var : mav(0,data2),MM(0,Data3),SS(0,Data3); var : MMM(0,Data2),SSS(0,Data2),Xcnt(0,Data2),Xvol(0,data1); MM = Data3(mfi(MFI기간)); SS = Data3(Simrido(심리도기간)); MMM = Data2(mfi(MFI기간)); SSS = Data2(Simrido(심리도기간)); var : vol(0); var : RSI2(0,Data2); RSI2 = Data2(RSI(일봉RSI기간)); if Data1(sDate) >= 시작일 Then { if MarketPosition == 0 or (MarketPosition == 1 and AvgEntryPrice*CurrentContracts < 최대투자금액*10000 ) Then { if data1(sTime == 93000 or sTime == 120000 ) Then # or sTime == 123000 { if Data2(RSI2 > 일봉RSI값1) Then { if MarketPosition == 0 or (MarketPosition == 1 and C >= AvgEntryPrice*0.98) Then vol = Floor(진입금액1*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.98 and C >= AvgEntryPrice*0.96 Then vol = Floor(진입금액2*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.96 and C >= AvgEntryPrice*0.94 Then vol = Floor(진입금액3*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.94 and C >= AvgEntryPrice*0.92 Then vol = Floor(진입금액4*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.92 and C >= AvgEntryPrice*0.90 Then vol = Floor(진입금액5*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.90 and C >= AvgEntryPrice*0.88 Then vol = Floor(진입금액6*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.88 and C >= AvgEntryPrice*0.86 Then vol = Floor(진입금액7*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.86 and C >= AvgEntryPrice*0.84 Then vol = Floor(진입금액8*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.84 and C >= AvgEntryPrice*0.82 Then vol = Floor(진입금액9*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.82 and C >= AvgEntryPrice*0.80 Then vol = Floor(진입금액10*10000/c); Buy("불타기매매1",OnClose,DEf,vol); } if Data2(RSI2 < 일봉RSI값2 and RSI2 > 일봉RSI값3 ) Then { Buy("하락과도매매1",OnClose,DEf,Floor(이차진입금액*10000/c)); } if Data2(RSI2 < 일봉RSI값3) Then { Buy("폭락과도매매1",OnClose,DEf,Floor(삼차진입금액*10000/c)); } } } } if MarketPosition == 1 Then { ExitLong("bx",AtLimit,AvgEntryPrice*청산수익률); } if MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 Then { xcnt = xcnt+1; if Xcnt <= (분할매도횟수-1) Then Xvol = Floor(MaxContracts*분할매도퍼센트/100); else Xvol = CurrentContracts; if Xcnt <= 분할매도횟수 Then exitlong("청산",atlimit,C,"",Xvol,2); } Else xcnt = 0;