커뮤니티

문의 드립니다

프로필 이미지
난정욱
2013-06-26 13:19:46
194
글번호 64730
답변완료
혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }
시스템
답변 6
프로필 이미지

예스스탁 예스스탁 답변

2013-06-26 14:30:50

안녕하세요 예스스탁입니다. if dayopen >= DayClose(1)+Gap and stime >= StartTime and 매수조건 then buy(); 시초가가 전일종가대비 Gap이상 갭상승이고 지정한 StartTime 이후이고 조건이 만족하면 매수한다는 식이므로 지정한 갭이상 발생하면 지정한 StartTime 이후에만 신호가 나오는게 맞습니다. 단지 위 식에는 지정한 갭이상 발생하지 않으면 진입한다는 내용은 없습니다. 지정한 갭이상 발생하면 StartTime 이후에 조건만족하면 진입신호가 발생하고 지정한 갭이하로 발생하면 시간제한 없이 신호가 발생하길 원하시면 아래와 같이 작성하시면 됩니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and 매수조건 then buy(); 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }
프로필 이미지

난정욱

2013-06-26 14:34:01

이렇게 쓰는거 맞죠? 매도 식도 좀 부탁 드려요 if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. if dayopen >= DayClose(1)+Gap and stime >= StartTime and 매수조건 then buy(); 시초가가 전일종가대비 Gap이상 갭상승이고 지정한 StartTime 이후이고 조건이 만족하면 매수한다는 식이므로 지정한 갭이상 발생하면 지정한 StartTime 이후에만 신호가 나오는게 맞습니다. 단지 위 식에는 지정한 갭이상 발생하지 않으면 진입한다는 내용은 없습니다. 지정한 갭이상 발생하면 StartTime 이후에 조건만족하면 진입신호가 발생하고 지정한 갭이하로 발생하면 시간제한 없이 신호가 발생하길 원하시면 아래와 같이 작성하시면 됩니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and 매수조건 then buy(); 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }
프로필 이미지

예스스탁 예스스탁 답변

2013-06-26 14:48:30

안녕하세요 예스스탁입니다. 예 맞게 작성하셨습니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } 청산식은 진입이후에 발생하고 진입이 갭에 따라 제어가 되므로 해당 조건이 추가가 필요없습니다. 최초매수식에만 해당 조건이 있으면 됩니다. 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다 > 이렇게 쓰는거 맞죠? 매도 식도 좀 부탁 드려요 if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. if dayopen >= DayClose(1)+Gap and stime >= StartTime and 매수조건 then buy(); 시초가가 전일종가대비 Gap이상 갭상승이고 지정한 StartTime 이후이고 조건이 만족하면 매수한다는 식이므로 지정한 갭이상 발생하면 지정한 StartTime 이후에만 신호가 나오는게 맞습니다. 단지 위 식에는 지정한 갭이상 발생하지 않으면 진입한다는 내용은 없습니다. 지정한 갭이상 발생하면 StartTime 이후에 조건만족하면 진입신호가 발생하고 지정한 갭이하로 발생하면 시간제한 없이 신호가 발생하길 원하시면 아래와 같이 작성하시면 됩니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and 매수조건 then buy(); 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }
프로필 이미지

난정욱

2013-06-26 14:56:18

if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and 요거 매도식 좀 부탁 드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. 예 맞게 작성하셨습니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } 청산식은 진입이후에 발생하고 진입이 갭에 따라 제어가 되므로 해당 조건이 추가가 필요없습니다. 최초매수식에만 해당 조건이 있으면 됩니다. 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다 > 이렇게 쓰는거 맞죠? 매도 식도 좀 부탁 드려요 if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. if dayopen >= DayClose(1)+Gap and stime >= StartTime and 매수조건 then buy(); 시초가가 전일종가대비 Gap이상 갭상승이고 지정한 StartTime 이후이고 조건이 만족하면 매수한다는 식이므로 지정한 갭이상 발생하면 지정한 StartTime 이후에만 신호가 나오는게 맞습니다. 단지 위 식에는 지정한 갭이상 발생하지 않으면 진입한다는 내용은 없습니다. 지정한 갭이상 발생하면 StartTime 이후에 조건만족하면 진입신호가 발생하고 지정한 갭이하로 발생하면 시간제한 없이 신호가 발생하길 원하시면 아래와 같이 작성하시면 됩니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and 매수조건 then buy(); 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }
프로필 이미지

예스스탁 예스스탁 답변

2013-06-26 15:05:52

안녕하세요 예스스탁입니다. if ((dayopen <= DayClose(1)-Gap and stime >= StartTime) or (dayopen > DayClose(1)-Gap)) and MarketPosition <= 0 and 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : Re : Re : 문의 드립니다 > if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and 요거 매도식 좀 부탁 드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. 예 맞게 작성하셨습니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } 청산식은 진입이후에 발생하고 진입이 갭에 따라 제어가 되므로 해당 조건이 추가가 필요없습니다. 최초매수식에만 해당 조건이 있으면 됩니다. 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다 > 이렇게 쓰는거 맞죠? 매도 식도 좀 부탁 드려요 if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. if dayopen >= DayClose(1)+Gap and stime >= StartTime and 매수조건 then buy(); 시초가가 전일종가대비 Gap이상 갭상승이고 지정한 StartTime 이후이고 조건이 만족하면 매수한다는 식이므로 지정한 갭이상 발생하면 지정한 StartTime 이후에만 신호가 나오는게 맞습니다. 단지 위 식에는 지정한 갭이상 발생하지 않으면 진입한다는 내용은 없습니다. 지정한 갭이상 발생하면 StartTime 이후에 조건만족하면 진입신호가 발생하고 지정한 갭이하로 발생하면 시간제한 없이 신호가 발생하길 원하시면 아래와 같이 작성하시면 됩니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and 매수조건 then buy(); 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }
프로필 이미지

난정욱

2013-06-26 16:34:21

감사합니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : Re : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. if ((dayopen <= DayClose(1)-Gap and stime >= StartTime) or (dayopen > DayClose(1)-Gap)) and MarketPosition <= 0 and 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : Re : Re : 문의 드립니다 > if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and 요거 매도식 좀 부탁 드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. 예 맞게 작성하셨습니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } 청산식은 진입이후에 발생하고 진입이 갭에 따라 제어가 되므로 해당 조건이 추가가 필요없습니다. 최초매수식에만 해당 조건이 있으면 됩니다. 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : 문의 드립니다 > 이렇게 쓰는거 맞죠? 매도 식도 좀 부탁 드려요 if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and V > Vol && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && MAv2 - MAv4 <= 간격 && C > MAv5 then { Buy("최초매수", OnClose, DEF); } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다 > 안녕하세요 예스스탁입니다. if dayopen >= DayClose(1)+Gap and stime >= StartTime and 매수조건 then buy(); 시초가가 전일종가대비 Gap이상 갭상승이고 지정한 StartTime 이후이고 조건이 만족하면 매수한다는 식이므로 지정한 갭이상 발생하면 지정한 StartTime 이후에만 신호가 나오는게 맞습니다. 단지 위 식에는 지정한 갭이상 발생하지 않으면 진입한다는 내용은 없습니다. 지정한 갭이상 발생하면 StartTime 이후에 조건만족하면 진입신호가 발생하고 지정한 갭이하로 발생하면 시간제한 없이 신호가 발생하길 원하시면 아래와 같이 작성하시면 됩니다. if ((dayopen >= DayClose(1)+Gap and stime >= StartTime) or (dayopen < DayClose(1)+Gap)) and 매수조건 then buy(); 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 혹시 이말이 지정합 갭 이상 발생되면 지정한 시간까지 신호가 안오게하는게 맞나요? 아 좀 헷갈리네요 지정한 갭 이상 발생되면 지정한 시간까지 신호가 안나오게 해야 하거든요 안녕하세요 예스스탁입니다. 외부변수로 gap과 starttime이 추가되었습니다. 지정한 갭이상 발생하고 지정한 시간이후로 신호가 발생됩니다. ##매수식 input : Gap(1),StartTime(93000); input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),재매수횟수(3),재매수청산횟수(3),ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); //ma1 input : maPeriod1(8); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(16); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(23); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(47); var : MAv4(0); MAv4 = ma(C,maPeriod4); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if dayopen >= DayClose(1)+Gap and stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav4,BarsSinceExit(1)) >= 1)) and MAv1 > MAv2 and MAv2 > MAv3 and MAv3 > MAv4 and C > MAv1 Then{ Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv4 Then Exitlong("매수청산1"); if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond1 == true,음봉갯수) == 음봉갯수) and rebuy < 재매수횟수 and countif(C < mav4,BarsSinceExit(1)) < 1 Then buy("재매수"); } if MarketPosition == 1 and BarsSinceEntry >= 3 and ReEL < 재매수청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitLong("매수청산4"); }