커뮤니티

수식 문의

프로필 이미지
난정욱
2013-06-18 13:40:54
252
글번호 64415
답변완료
재매수 재매도시 시가 종가가 같은 봉(십자봉이나 망치봉)은 봉갯수에 포함이 안되던데 색깔에 따라 포함이 되게 할순 없나요? 그리고 재매수 재매도는 횟수 조정이 안되는거 같구요 봉갯수 카운터를 할때는 무조건 신호 나온 다음봉부터 계산이 되어 지게 부탁 드립니다 최초매수 이후 청산선이나 정해진 익절이 되기전에 아래식에서 좀 더 추가하고 싶은게 있습니다 최초매수후 하나는 아래식에 있는 음봉연속갯수를 가지고 청산 하고 싶구요 또하나는 양봉연속갯수를 가지고 청산을 하고 싶구요 두가지 조건중에 하나만 만족하면 반복매도가 되게 할려구요 위 두가지 조건으로 반복매도가 된 이후에 반복매수 진입시 조건도 두가지 조건중 하나만 만족하면 반복매수를 하고 싶습니다 반복매도이후 봉 부터해서 하나는 양봉연속갯수로 반복매수를 하고 싶구요 또하나는 연속음봉갯수를 가지로 반복매수를 하고 싶습니다 이 모든 변수값은 외부변수로 와야 하구요 그리고 아래식으로 하면 봉갯수를 카운터 하는게 매수신호 이후부터가 아니고 부탁 드립니다 다 되면 매도식도 부탁 드립니다 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 변수에 잘못된 값이 저장되어 있었습니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),반복재매수횟수(3),반복재매도횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0); if MarketPosition == 1 Then{ ExitLong("청산2",AtStop,EntryPrice-Losspoint); ExitLong("청산3",AtLimit,EntryPrice+Profitpoint); } //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; } rebuy = 0; resell = 0; for cnt = 20 downto 0{ if sdate == EntryDate(cnt) and IsEntryName("재매수",cnt) == true Then rebuy = rebuy+1; Else rebuy = 0; if cnt > 0 Then{ if sdate == ExitDate(cnt) and IsExitName("재매도",cnt) == true Then resell = resell+1; Else resell = 0; } } if date != date[1] Then Condition1 = false; if Condition1 == false and MarketPosition == 0 && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && C > MAv1 Then { Buy("매수", OnClose, DEF); if Condition1 == false Then{ Condition1 = true; var1 = c; } } //매수청산1 if MarketPosition == 1 and C < MAv4 Then Exitlong("청산1"); if Condition1 == true Then{ if C < mav4 or L <= var1-LossPoint or H >= var1+ProfitPoint Then Condition1 = false; } if count >= 1 and condition1 == true Then{ if IsExitName("매도",1) == true and Countif(C>O,양봉갯수) == 양봉갯수 and rebuy < 반복재매수횟수 Then buy("재매수"); if Countif(C<O,음봉갯수) == 음봉갯수 and resell < 반복재매도횟수 Then ExitLong("매도"); }
시스템
답변 5
프로필 이미지

예스스탁 예스스탁 답변

2013-06-18 15:03:37

> 난정욱 님이 쓴 글입니다. > 제목 : 수식 문의 > 재매수 재매도시 시가 종가가 같은 봉(십자봉이나 망치봉)은 봉갯수에 포함이 안되던데 색깔에 따라 포함이 되게 할순 없나요? 그리고 재매수 재매도는 횟수 조정이 안되는거 같구요 봉갯수 카운터를 할때는 무조건 신호 나온 다음봉부터 계산이 되어 지게 부탁 드립니다 최초매수 이후 청산선이나 정해진 익절이 되기전에 아래식에서 좀 더 추가하고 싶은게 있습니다 최초매수후 하나는 아래식에 있는 음봉연속갯수를 가지고 청산 하고 싶구요 또하나는 양봉연속갯수를 가지고 청산을 하고 싶구요 두가지 조건중에 하나만 만족하면 반복매도가 되게 할려구요 위 두가지 조건으로 반복매도가 된 이후에 반복매수 진입시 조건도 두가지 조건중 하나만 만족하면 반복매수를 하고 싶습니다 반복매도이후 봉 부터해서 하나는 양봉연속갯수로 반복매수를 하고 싶구요 또하나는 연속음봉갯수를 가지로 반복매수를 하고 싶습니다 이 모든 변수값은 외부변수로 와야 하구요 그리고 아래식으로 하면 봉갯수를 카운터 하는게 매수신호 이후부터가 아니고 부탁 드립니다 다 되면 매도식도 부탁 드립니다 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 변수에 잘못된 값이 저장되어 있었습니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),반복재매수횟수(3),반복재매도횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0); if MarketPosition == 1 Then{ ExitLong("청산2",AtStop,EntryPrice-Losspoint); ExitLong("청산3",AtLimit,EntryPrice+Profitpoint); } //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; } rebuy = 0; resell = 0; for cnt = 20 downto 0{ if sdate == EntryDate(cnt) and IsEntryName("재매수",cnt) == true Then rebuy = rebuy+1; Else rebuy = 0; if cnt > 0 Then{ if sdate == ExitDate(cnt) and IsExitName("재매도",cnt) == true Then resell = resell+1; Else resell = 0; } } if date != date[1] Then Condition1 = false; if Condition1 == false and MarketPosition == 0 && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && C > MAv1 Then { Buy("매수", OnClose, DEF); if Condition1 == false Then{ Condition1 = true; var1 = c; } } //매수청산1 if MarketPosition == 1 and C < MAv4 Then Exitlong("청산1"); if Condition1 == true Then{ if C < mav4 or L <= var1-LossPoint or H >= var1+ProfitPoint Then Condition1 = false; } if count >= 1 and condition1 == true Then{ if IsExitName("매도",1) == true and Countif(C>O,양봉갯수) == 양봉갯수 and rebuy < 반복재매수횟수 Then buy("재매수"); if Countif(C<O,음봉갯수) == 음봉갯수 and resell < 반복재매도횟수 Then ExitLong("매도"); }
프로필 이미지

예스스탁 예스스탁 답변

2013-06-18 16:06:45

안녕하세요 예스스탁입니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3); var : 재매수횟수(3),재매수청산횟수(3),재매도횟수(3),재매도청산횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0),ReEL(0),ReES(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; ReSell = 0; ReES = 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; if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매도") == true Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("재매도") == true Then ReSell = ReSell+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매도청산4",1) == true Then ReES = ReES+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if 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"); } if 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{ Sell("최초매도"); } if MarketPosition == -1 Then{ ExitShort("매도청산2",AtStop,EntryPrice+Losspoint); ExitShort("매도청산3",AtLimit,EntryPrice-Profitpoint); } if MarketPosition == -1 and C > MAv4 Then ExitShort("매도청산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 reSell < 재매도횟수 and countif(C > mav4,BarsSinceExit(1)) < 1 Then Sell("재매도"); } if MarketPosition == -1 and BarsSinceEntry >= 3 and ReES < 재매도청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitShort("매도청산4"); } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 전화주시기 바랍니다.(02-3453-1060) > > 난정욱 님이 쓴 글입니다. > 제목 : 수식 문의 > 재매수 재매도시 시가 종가가 같은 봉(십자봉이나 망치봉)은 봉갯수에 포함이 안되던데 색깔에 따라 포함이 되게 할순 없나요? 그리고 재매수 재매도는 횟수 조정이 안되는거 같구요 봉갯수 카운터를 할때는 무조건 신호 나온 다음봉부터 계산이 되어 지게 부탁 드립니다 최초매수 이후 청산선이나 정해진 익절이 되기전에 아래식에서 좀 더 추가하고 싶은게 있습니다 최초매수후 하나는 아래식에 있는 음봉연속갯수를 가지고 청산 하고 싶구요 또하나는 양봉연속갯수를 가지고 청산을 하고 싶구요 두가지 조건중에 하나만 만족하면 반복매도가 되게 할려구요 위 두가지 조건으로 반복매도가 된 이후에 반복매수 진입시 조건도 두가지 조건중 하나만 만족하면 반복매수를 하고 싶습니다 반복매도이후 봉 부터해서 하나는 양봉연속갯수로 반복매수를 하고 싶구요 또하나는 연속음봉갯수를 가지로 반복매수를 하고 싶습니다 이 모든 변수값은 외부변수로 와야 하구요 그리고 아래식으로 하면 봉갯수를 카운터 하는게 매수신호 이후부터가 아니고 부탁 드립니다 다 되면 매도식도 부탁 드립니다 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 변수에 잘못된 값이 저장되어 있었습니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),반복재매수횟수(3),반복재매도횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0); if MarketPosition == 1 Then{ ExitLong("청산2",AtStop,EntryPrice-Losspoint); ExitLong("청산3",AtLimit,EntryPrice+Profitpoint); } //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; } rebuy = 0; resell = 0; for cnt = 20 downto 0{ if sdate == EntryDate(cnt) and IsEntryName("재매수",cnt) == true Then rebuy = rebuy+1; Else rebuy = 0; if cnt > 0 Then{ if sdate == ExitDate(cnt) and IsExitName("재매도",cnt) == true Then resell = resell+1; Else resell = 0; } } if date != date[1] Then Condition1 = false; if Condition1 == false and MarketPosition == 0 && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && C > MAv1 Then { Buy("매수", OnClose, DEF); if Condition1 == false Then{ Condition1 = true; var1 = c; } } //매수청산1 if MarketPosition == 1 and C < MAv4 Then Exitlong("청산1"); if Condition1 == true Then{ if C < mav4 or L <= var1-LossPoint or H >= var1+ProfitPoint Then Condition1 = false; } if count >= 1 and condition1 == true Then{ if IsExitName("매도",1) == true and Countif(C>O,양봉갯수) == 양봉갯수 and rebuy < 반복재매수횟수 Then buy("재매수"); if Countif(C<O,음봉갯수) == 음봉갯수 and resell < 반복재매도횟수 Then ExitLong("매도"); }
프로필 이미지

난정욱

2013-06-18 17:07:38

안녕하세요 매수식 매도식을 따로 쓰고 있어서요 96번째 여기서 부터 짜르면 되는건가요? if MarketPosition <= 0 and 아니네요 자세히 보니깐 매수식 매도식이 합쳐져 있는거 같네요 매수 매도 이평선값들이 달라서 매수수식따로 매도 수식따로 하고 싶은데 어쩌죠? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : 전화주시기 바랍니다.(02-3453-1060) > 안녕하세요 예스스탁입니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3); var : 재매수횟수(3),재매수청산횟수(3),재매도횟수(3),재매도청산횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0),ReEL(0),ReES(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; ReSell = 0; ReES = 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; if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매도") == true Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("재매도") == true Then ReSell = ReSell+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매도청산4",1) == true Then ReES = ReES+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if 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"); } if 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{ Sell("최초매도"); } if MarketPosition == -1 Then{ ExitShort("매도청산2",AtStop,EntryPrice+Losspoint); ExitShort("매도청산3",AtLimit,EntryPrice-Profitpoint); } if MarketPosition == -1 and C > MAv4 Then ExitShort("매도청산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 reSell < 재매도횟수 and countif(C > mav4,BarsSinceExit(1)) < 1 Then Sell("재매도"); } if MarketPosition == -1 and BarsSinceEntry >= 3 and ReES < 재매도청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitShort("매도청산4"); } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 전화주시기 바랍니다.(02-3453-1060) > > 난정욱 님이 쓴 글입니다. > 제목 : 수식 문의 > 재매수 재매도시 시가 종가가 같은 봉(십자봉이나 망치봉)은 봉갯수에 포함이 안되던데 색깔에 따라 포함이 되게 할순 없나요? 그리고 재매수 재매도는 횟수 조정이 안되는거 같구요 봉갯수 카운터를 할때는 무조건 신호 나온 다음봉부터 계산이 되어 지게 부탁 드립니다 최초매수 이후 청산선이나 정해진 익절이 되기전에 아래식에서 좀 더 추가하고 싶은게 있습니다 최초매수후 하나는 아래식에 있는 음봉연속갯수를 가지고 청산 하고 싶구요 또하나는 양봉연속갯수를 가지고 청산을 하고 싶구요 두가지 조건중에 하나만 만족하면 반복매도가 되게 할려구요 위 두가지 조건으로 반복매도가 된 이후에 반복매수 진입시 조건도 두가지 조건중 하나만 만족하면 반복매수를 하고 싶습니다 반복매도이후 봉 부터해서 하나는 양봉연속갯수로 반복매수를 하고 싶구요 또하나는 연속음봉갯수를 가지로 반복매수를 하고 싶습니다 이 모든 변수값은 외부변수로 와야 하구요 그리고 아래식으로 하면 봉갯수를 카운터 하는게 매수신호 이후부터가 아니고 부탁 드립니다 다 되면 매도식도 부탁 드립니다 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 변수에 잘못된 값이 저장되어 있었습니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),반복재매수횟수(3),반복재매도횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0); if MarketPosition == 1 Then{ ExitLong("청산2",AtStop,EntryPrice-Losspoint); ExitLong("청산3",AtLimit,EntryPrice+Profitpoint); } //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; } rebuy = 0; resell = 0; for cnt = 20 downto 0{ if sdate == EntryDate(cnt) and IsEntryName("재매수",cnt) == true Then rebuy = rebuy+1; Else rebuy = 0; if cnt > 0 Then{ if sdate == ExitDate(cnt) and IsExitName("재매도",cnt) == true Then resell = resell+1; Else resell = 0; } } if date != date[1] Then Condition1 = false; if Condition1 == false and MarketPosition == 0 && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && C > MAv1 Then { Buy("매수", OnClose, DEF); if Condition1 == false Then{ Condition1 = true; var1 = c; } } //매수청산1 if MarketPosition == 1 and C < MAv4 Then Exitlong("청산1"); if Condition1 == true Then{ if C < mav4 or L <= var1-LossPoint or H >= var1+ProfitPoint Then Condition1 = false; } if count >= 1 and condition1 == true Then{ if IsExitName("매도",1) == true and Countif(C>O,양봉갯수) == 양봉갯수 and rebuy < 반복재매수횟수 Then buy("재매수"); if Countif(C<O,음봉갯수) == 음봉갯수 and resell < 반복재매도횟수 Then ExitLong("매도"); }
프로필 이미지

예스스탁 예스스탁 답변

2013-06-18 17:14:56

1. 매수 input : LossPoint(0.65),양봉갯수(3),음봉갯수(3); var : 재매수횟수(3),재매수청산횟수(3),재매도횟수(3),재매도청산횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0),ReEL(0),ReES(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; ReSell = 0; ReES = 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; if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매도") == true Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("재매도") == true Then ReSell = ReSell+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매도청산4",1) == true Then ReES = ReES+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if 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"); } 2. 매도 input : LossPoint(0.65),양봉갯수(3),음봉갯수(3); var : 재매수횟수(3),재매수청산횟수(3),재매도횟수(3),재매도청산횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0),ReEL(0),ReES(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; ReSell = 0; ReES = 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; if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매도") == true Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("재매도") == true Then ReSell = ReSell+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매도청산4",1) == true Then ReES = ReES+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if 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{ Sell("최초매도"); } if MarketPosition == -1 Then{ ExitShort("매도청산2",AtStop,EntryPrice+Losspoint); ExitShort("매도청산3",AtLimit,EntryPrice-Profitpoint); } if MarketPosition == -1 and C > MAv4 Then ExitShort("매도청산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 reSell < 재매도횟수 and countif(C > mav4,BarsSinceExit(1)) < 1 Then Sell("재매도"); } if MarketPosition == -1 and BarsSinceEntry >= 3 and ReES < 재매도청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitShort("매도청산4"); } 즐거운 하루되세요 > 난정욱 님이 쓴 글입니다. > 제목 : Re : Re : Re : 전화주시기 바랍니다.(02-3453-1060) > 안녕하세요 매수식 매도식을 따로 쓰고 있어서요 96번째 여기서 부터 짜르면 되는건가요? if MarketPosition <= 0 and 아니네요 자세히 보니깐 매수식 매도식이 합쳐져 있는거 같네요 매수 매도 이평선값들이 달라서 매수수식따로 매도 수식따로 하고 싶은데 어쩌죠? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : 전화주시기 바랍니다.(02-3453-1060) > 안녕하세요 예스스탁입니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3); var : 재매수횟수(3),재매수청산횟수(3),재매도횟수(3),재매도청산횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0),ReEL(0),ReES(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; ReSell = 0; ReES = 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; if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매도") == true Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("재매도") == true Then ReSell = ReSell+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매도청산4",1) == true Then ReES = ReES+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if 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"); } if 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{ Sell("최초매도"); } if MarketPosition == -1 Then{ ExitShort("매도청산2",AtStop,EntryPrice+Losspoint); ExitShort("매도청산3",AtLimit,EntryPrice-Profitpoint); } if MarketPosition == -1 and C > MAv4 Then ExitShort("매도청산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 reSell < 재매도횟수 and countif(C > mav4,BarsSinceExit(1)) < 1 Then Sell("재매도"); } if MarketPosition == -1 and BarsSinceEntry >= 3 and ReES < 재매도청산횟수 then{ if Countif(cond1 == true,양봉갯수) == 양봉갯수 or Countif(cond2 == true,음봉갯수) == 음봉갯수 Then ExitShort("매도청산4"); } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 전화주시기 바랍니다.(02-3453-1060) > > 난정욱 님이 쓴 글입니다. > 제목 : 수식 문의 > 재매수 재매도시 시가 종가가 같은 봉(십자봉이나 망치봉)은 봉갯수에 포함이 안되던데 색깔에 따라 포함이 되게 할순 없나요? 그리고 재매수 재매도는 횟수 조정이 안되는거 같구요 봉갯수 카운터를 할때는 무조건 신호 나온 다음봉부터 계산이 되어 지게 부탁 드립니다 최초매수 이후 청산선이나 정해진 익절이 되기전에 아래식에서 좀 더 추가하고 싶은게 있습니다 최초매수후 하나는 아래식에 있는 음봉연속갯수를 가지고 청산 하고 싶구요 또하나는 양봉연속갯수를 가지고 청산을 하고 싶구요 두가지 조건중에 하나만 만족하면 반복매도가 되게 할려구요 위 두가지 조건으로 반복매도가 된 이후에 반복매수 진입시 조건도 두가지 조건중 하나만 만족하면 반복매수를 하고 싶습니다 반복매도이후 봉 부터해서 하나는 양봉연속갯수로 반복매수를 하고 싶구요 또하나는 연속음봉갯수를 가지로 반복매수를 하고 싶습니다 이 모든 변수값은 외부변수로 와야 하구요 그리고 아래식으로 하면 봉갯수를 카운터 하는게 매수신호 이후부터가 아니고 부탁 드립니다 다 되면 매도식도 부탁 드립니다 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 변수에 잘못된 값이 저장되어 있었습니다. input : LossPoint(0.65),양봉갯수(3),음봉갯수(3),반복재매수횟수(3),반복재매도횟수(3); input : ProfitPoint(3.7); var : cnt(0),count(0),rebuy(0),resell(0); if MarketPosition == 1 Then{ ExitLong("청산2",AtStop,EntryPrice-Losspoint); ExitLong("청산3",AtLimit,EntryPrice+Profitpoint); } //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; } rebuy = 0; resell = 0; for cnt = 20 downto 0{ if sdate == EntryDate(cnt) and IsEntryName("재매수",cnt) == true Then rebuy = rebuy+1; Else rebuy = 0; if cnt > 0 Then{ if sdate == ExitDate(cnt) and IsExitName("재매도",cnt) == true Then resell = resell+1; Else resell = 0; } } if date != date[1] Then Condition1 = false; if Condition1 == false and MarketPosition == 0 && MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && C > MAv1 Then { Buy("매수", OnClose, DEF); if Condition1 == false Then{ Condition1 = true; var1 = c; } } //매수청산1 if MarketPosition == 1 and C < MAv4 Then Exitlong("청산1"); if Condition1 == true Then{ if C < mav4 or L <= var1-LossPoint or H >= var1+ProfitPoint Then Condition1 = false; } if count >= 1 and condition1 == true Then{ if IsExitName("매도",1) == true and Countif(C>O,양봉갯수) == 양봉갯수 and rebuy < 반복재매수횟수 Then buy("재매수"); if Countif(C<O,음봉갯수) == 음봉갯수 and resell < 반복재매도횟수 Then ExitLong("매도"); }
프로필 이미지

난정욱

2013-06-18 18:12:24

난정욱 님에 의해 삭제된 답변입니다.