예스스탁
예스스탁 답변
2020-08-20 15:08:33
안녕하세요
예스스탁입니다.
목표수익 청산을 1번진입만 해당되게 할수가 없습니다.
해당청산은 모든 진입에 적용됩니다.
추가청산내용만 조건만족시 2번과 3번으로 진입을 모두 청산하게 작성해 드립니다.
input : 일봉RSI기간(30);
input : 일봉RSI값1(50),일봉RSI값2(40),일봉RSI값3(30);
input : 손절봉수(5000);
input : 진입최대개수(1000);
input : 일차진입금액(10);
input : 이차진입금액(50);
input : 삼차진입금액(200);
input : 청산률(5);
input : MFIP(15),SIMP(15);
var : RSI2(0,Data2),MFI2(0,Data2),SIM2(0,Data2);
RSI2 = Data2(RSI(일봉RSI기간));
MFI2 = Data2(MFI(MFIP));
SIM2 = Data2(Simrido(SIMP));
if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 진입최대개수) Then
{
if data1(sTime == 100000 or sTime == 120000 or sTime == 140000) Then
{
if Data2(RSI2 > 일봉RSI값1) Then
{
Buy("불타기매매1",OnClose,DEf,Floor(일차진입금액*10000/c));
}
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 BarsSinceEntry == 손절봉수 Then
ExitLong();
if MFI2 > 85 or SIM2 > 90 Then
{
ExitLong("bx2",OnClose,DEf,"하락과도매매1");
ExitLong("bx3",OnClose,DEf,"폭락과도매매1");
}
}
SetStopProfittarget(청산률,PercentStop);
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 매수 청산 각 조건별 구분 수식 부탁드림니다.
> 국내주식
data1 : 30분봉
data2 : 일봉
매수는 하루에 3회 ( 10시 12시 2시) 매수 진입 하는 수식이구요
RSI기준 50 이상일 때 10만원어치 매수진입
RSI기준 40 이하일 때 50만원어치 매수진입
RSI기준 30 이하일 때 200만원어치 매수진입
청산은 5% 수익시 각각 청산하는 수식이 아래 식입니다.
--> 변경 요청건
각각 매수 조건별로 청산 수식을 다르게 반영하고 싶습니다.
1. RSI기준 50 이상 10만원어치 매수
--> 기존과 같음 진입건수별로 5% 수익시 매수청산
2. RSI기준 40 이하 50만원어치 매수
3. RSI기준 30 이하 200만원어치 매수
2번과 3번은 data2(일봉) MFI(15) > 85 또는 심리도(15) > 90 일때 일괄 청산
하는 수식을 추가할수 있게 부탁드림니다.
기존 적용 수식
========================================================================
input : 일봉RSI기간(30);
input : 일봉RSI값1(50),일봉RSI값2(40),일봉RSI값3(30);
input : 손절봉수(5000);
input : 진입최대개수(1000);
input : 일차진입금액(10);
input : 이차진입금액(50);
input : 삼차진입금액(200);
input : 청산률(5);
var : RSI2(0,Data2);
RSI2 = Data2(RSI(일봉RSI기간));
if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 진입최대개수) Then
{
if data1(sTime == 100000 or sTime == 120000 or sTime == 140000) Then
{
if Data2(RSI2 > 일봉RSI값1) Then
{
Buy("불타기매매1",OnClose,DEf,Floor(일차진입금액*10000/c));
}
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 and BarsSinceEntry == 손절봉수 Then
ExitLong();
SetStopProfittarget(청산률,PercentStop);