커뮤니티

자꾸 문의 드려 죄송합니다

프로필 이미지
아라미스33
2013-03-12 00:33:03
207
글번호 60580
답변완료
이식에서 보면 손절과 청산이 아마도 가장 마지막에 진입한 가격에 영향을 받는거 같습니다 손절과 청산 가격을 최초매수 가격에 영향을 받도록 하고 싶습니다 감사합니다 아 그리고 이 수식은 최초매수가 된후 청산선이나 손절이나 익절이 있기전까지 반복매수와 반복매수청산을 한번만 하게 되어 있는데 이식에서 어떻게 하면 반복매수와 반복매수청산 횟수를 정할수 있나요? 반복매수와 반복매수청산 묶었을때 횟수입니다 input : rsiPeriod(2), RSVValue(67),N(5),X(3); input : maPeriod1(8),maPeriod2(16),maPeriod3(23), maPeriod4(47); input : Vol(1110); input : 간격(0.3); input : LossPoint(0.65); input : ProfitPoint(3.7); input : MACDP1(12),MACDP2(26),MACDP3(9); var : MAv1(0), MAv2(0), MAv3(0), MAv4(0); var : RSV(0); var : MACDO(0),cnt(0); MAv1 = ma(C,maPeriod1); MAv2 = ma(C,maPeriod2); MAv3 = ma(C,maPeriod3); MAv4 = ma(C,maPeriod4); RSV = RSI(rsiPeriod); MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터 if date != date[1] Then Condition1 = false; #최초 매수조건 if Condition1 == false && MarketPosition == 0 && V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv4 && MACDO > 0 Then { Buy("최초매수", OnClose, DEF); Condition1 = true; } # 반복매수조건 if Condition1 == true && MarketPosition == 0 && IsExitName("반복청산",1) == true && IsEntryName("최초매수",1) == true && EntryDate(1) == sdate && C >= mav4+PriceScale*X && (CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{ buy("반복매수"); } #반복매수청산조건 if MarketPosition == 1 && CrossDown(MACDO,0) && IsEntryName("최초매수") == true Then exitlong("반복청산"); //종가가 MAv4보다 작으면 매수청산 if C < MAv4 Then { Exitlong("MAv4청산"); Condition1 = false; } //손절/목표청산 if MarketPosition == 1 Then{ Exitlong("손절",AtStop,EntryPrice-Losspoint); Exitlong("목표",AtLimit,EntryPrice+Profitpoint); } if BarsSinceExit(1) == 1 and ( IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then Condition1 = false;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-03-12 10:04:13

안녕하세요 예스스탁입니다. 손절과 목표청산이 모두 현재 진입의 가격이 기준이 됩니다. 최초매수신호의 가격으로 변경했습니다. 반복매수와 반복청산도 각각 횟수를 지정하게 작성했습니다. input : rsiPeriod(2), RSVValue(67),N(5),X(3); input : maPeriod1(8),maPeriod2(16),maPeriod3(23), maPeriod4(47); input : Vol(1110); input : 간격(0.3); input : LossPoint(0.65); input : ProfitPoint(3.7); input : MACDP1(12),MACDP2(26),MACDP3(9); input : ReBcount(1),ReXcount(1); var : MAv1(0), MAv2(0), MAv3(0), MAv4(0); var : RSV(0); var : MACDO(0),cnt(0); MAv1 = ma(C,maPeriod1); MAv2 = ma(C,maPeriod2); MAv3 = ma(C,maPeriod3); MAv4 = ma(C,maPeriod4); RSV = RSI(rsiPeriod); MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터 if date != date[1] Then Condition1 = false; #최초 매수조건 if Condition1 == false && MarketPosition == 0 && V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv4 && MACDO > 0 Then { Buy("최초매수", OnClose, DEF); Condition1 = true; value1 = 0; value2 = 0; } if MarketPosition == 1 and IsEntryName("최초매수") == true Then var1 = EntryPrice; # 반복매수조건 if Condition1 == true && MarketPosition == 0 && IsExitName("반복청산",1) == true && (IsEntryName("최초매수") == true or IsEntryName("반복매수") == true) && EntryDate(1) == sdate && C >= mav4+PriceScale*X && (CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) && value1 < ReBcount Then{ buy("반복매수"); value1 = value1+1; } #반복매수청산조건 if Condition1 == true && MarketPosition == 1 && CrossDown(MACDO,0) && (IsEntryName("최초매수") == true or IsEntryName("반복매수") == true) && value2 < ReXcount Then{ exitlong("반복청산"); value2 = value2+1; } //종가가 MAv4보다 작으면 매수청산 if Condition1 == true && C < MAv4 Then { Exitlong("MAv4청산"); Condition1 = false; } //손절/목표청산 if MarketPosition == 1 Then{ Exitlong("손절",AtStop,var1-Losspoint); Exitlong("목표",AtLimit,var1+Profitpoint); } if BarsSinceExit(1) == 1 and ( IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then Condition1 = false; 즐거운 하루되세요 > 아라미스33 님이 쓴 글입니다. > 제목 : 자꾸 문의 드려 죄송합니다 > 이식에서 보면 손절과 청산이 아마도 가장 마지막에 진입한 가격에 영향을 받는거 같습니다 손절과 청산 가격을 최초매수 가격에 영향을 받도록 하고 싶습니다 감사합니다 아 그리고 이 수식은 최초매수가 된후 청산선이나 손절이나 익절이 있기전까지 반복매수와 반복매수청산을 한번만 하게 되어 있는데 이식에서 어떻게 하면 반복매수와 반복매수청산 횟수를 정할수 있나요? 반복매수와 반복매수청산 묶었을때 횟수입니다 input : rsiPeriod(2), RSVValue(67),N(5),X(3); input : maPeriod1(8),maPeriod2(16),maPeriod3(23), maPeriod4(47); input : Vol(1110); input : 간격(0.3); input : LossPoint(0.65); input : ProfitPoint(3.7); input : MACDP1(12),MACDP2(26),MACDP3(9); var : MAv1(0), MAv2(0), MAv3(0), MAv4(0); var : RSV(0); var : MACDO(0),cnt(0); MAv1 = ma(C,maPeriod1); MAv2 = ma(C,maPeriod2); MAv3 = ma(C,maPeriod3); MAv4 = ma(C,maPeriod4); RSV = RSI(rsiPeriod); MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터 if date != date[1] Then Condition1 = false; #최초 매수조건 if Condition1 == false && MarketPosition == 0 && V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv4 && MACDO > 0 Then { Buy("최초매수", OnClose, DEF); Condition1 = true; } # 반복매수조건 if Condition1 == true && MarketPosition == 0 && IsExitName("반복청산",1) == true && IsEntryName("최초매수",1) == true && EntryDate(1) == sdate && C >= mav4+PriceScale*X && (CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{ buy("반복매수"); } #반복매수청산조건 if MarketPosition == 1 && CrossDown(MACDO,0) && IsEntryName("최초매수") == true Then exitlong("반복청산"); //종가가 MAv4보다 작으면 매수청산 if C < MAv4 Then { Exitlong("MAv4청산"); Condition1 = false; } //손절/목표청산 if MarketPosition == 1 Then{ Exitlong("손절",AtStop,EntryPrice-Losspoint); Exitlong("목표",AtLimit,EntryPrice+Profitpoint); } if BarsSinceExit(1) == 1 and ( IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then Condition1 = false;