커뮤니티

부탁드립니다

프로필 이미지
아라미스33
2013-03-17 21:29:36
223
글번호 60825
답변완료
안녕하세요 주말 잘 보내셨나요? 문의 드립니다 최초매수후 익절 손절 mav4값이 오기전까지 macd와 n,x값을 가지고 반복청산과 반복매수를 하는 식입니다 반복청산과 반복매수를 몇번정도 하면 좋을지 시물레션을 하는데 아무리해도 반복매수는 나오질 않습니다 반복청산 반복매수 횟수를 미리 정해놓고 해도 안됩니다 확인 좀 부탁 드릴께요 감사합니다 input : rsiPeriod(2), RSVValue(66),N(0),X(5); input : maPeriod1(15),maPeriod2(16),maPeriod3(23), maPeriod4(47); input : Vol(1100); input : 간격(0.3); input : LossPoint(0.55); input : ProfitPoint(3.7); input : MACDP1(4),MACDP2(39),MACDP3(18); input : ReBcount(3),ReXcount(3); 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 > MAv1 && 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;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-03-18 13:55:21

안녕하세요 예스스탁입니다. n과 x는 반복매수,반복청산을 제어하는 변수가 아닙니다. 한글로 외부변수처리했습니다. 반복매수와 반복청산도 진입이나 청산 후 이름으로 카운트되게 작성했습니다. input : rsiPeriod(2), RSVValue(66),N(0),X(5); input : maPeriod1(15),maPeriod2(16),maPeriod3(23), maPeriod4(100); input : Vol(1100); input : 간격(0.3); input : LossPoint(0.55); input : ProfitPoint(3.7); input : MACDP1(4),MACDP2(39),MACDP3(18); input : 반복매수횟수(3),반복청산횟수(3); 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 MarketPosition == 1 and IsEntryName("최초매수") == true Then{ if MarketPosition != MarketPosition[1] Then{ var1 = EntryPrice; Condition1 = true; value1 = 0; value2 = 0; } } if MarketPosition == 1 and IsEntryName("반복매수") == true Then{ if MarketPosition != MarketPosition[1] Then{ value1 = value1+1; } } if MarketPosition == 0 and IsExitName("반복청산",1) == true Then{ if MarketPosition != MarketPosition[1] Then{ value2 = value2+1; } } #최초 매수조건 if Condition1 == false && MarketPosition == 0 && V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv1 && MACDO > 0 Then { Buy("최초매수", OnClose, DEF); } # 반복매수조건 if Condition1 == true && MarketPosition == 0 && IsExitName("반복청산",1) == true && (IsEntryName("최초매수",1) == true or IsEntryName("반복매수",1) == true) && EntryDate(1) == sdate && C >= mav4+PriceScale*X && (CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) && value1 < 반복매수횟수 Then{ buy("반복매수"); } #반복매수청산조건 if Condition1 == true && MarketPosition == 1 && CrossDown(MACDO,0) && (IsEntryName("최초매수") == true or IsEntryName("반복매수") == true) && value2 < 반복청산횟수 Then{ exitlong("반복청산"); } //종가가 MAv4보다 작으면 매수청산 if Condition1 == true && C < MAv4 Then { Exitlong("MAv4청산"); Condition1 = false; value1 = 0; value2 = 0; } //손절/목표청산 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 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 안녕하세요 주말 잘 보내셨나요? 문의 드립니다 최초매수후 익절 손절 mav4값이 오기전까지 macd와 n,x값을 가지고 반복청산과 반복매수를 하는 식입니다 반복청산과 반복매수를 몇번정도 하면 좋을지 시물레션을 하는데 아무리해도 반복매수는 나오질 않습니다 반복청산 반복매수 횟수를 미리 정해놓고 해도 안됩니다 확인 좀 부탁 드릴께요 감사합니다 input : rsiPeriod(2), RSVValue(66),N(0),X(5); input : maPeriod1(15),maPeriod2(16),maPeriod3(23), maPeriod4(47); input : Vol(1100); input : 간격(0.3); input : LossPoint(0.55); input : ProfitPoint(3.7); input : MACDP1(4),MACDP2(39),MACDP3(18); input : ReBcount(3),ReXcount(3); 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 > MAv1 && 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;