커뮤니티

부탁드려요

프로필 이미지
묘선낭자
2013-05-10 13:30:52
225
글번호 63046
답변완료
30256중 답변3과 관련한 내용입니다. 그 내용에 다음의 내용을 추가하려면 어떻게 고쳐야 하나요? 첫번째 매매가 손실인 경우, 2번째 매매는 반대방향으로 즉시 진입 (이 경우만 1P익절조건 추가. 이 경우만 종가청산조건) 기존의 2번째이후매매조건에는 앞번거래가 이익난 경우로 한정
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2013-05-10 15:19:58

안녕하세요 예스스탁입니다. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; If (count==0 and c>dayopen) or (count>=1 and MarketPosition == 0 and marketPosition(1)==1 and PositionProfit(1) > 0 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (count>=1 and ((PositionProfit(1) > 0 and MarketPosition == 0 and marketPosition(1)==-1) or (MarketPosition == -1 and C < EntryPrice)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ # 첫번째 진입이고 손실이면 매도로 스위칭 if count == 1 and C < EntryPrice Then sell("BS"); Else #위 경우가 아니면 청산만 수행 ExitLong(); } If (count==0 and c<dayopen) or (count>=1 and PositionProfit(1) > 0 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or ( count>=1 and ((PositionProfit(1) > 0 and MarketPosition == 0 and MarketPosition(1)==1) or (MarketPosition == 1 and C > EntryPrice)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ #첫번째 진입이고 손실이면 매도로 스위칭 if count == 1 and C > EntryPrice Then buy("SB"); Else #위 경우가 아니면 청산만 수행 ExitShort(); } if MarketPosition == 1 and IsEntryName("Sb") == true Then{ exitlong("bx",Atlimit,EntryPrice+1); SetStopEndofday(150000); } else if MarketPosition == -1 and IsEntryName("bs") == true Then{ ExitShort("sx",Atlimit,EntryPrice-1); SetStopEndofday(150000); } Else SetStopEndofday(0); 즐거운 하루되세요 > 묘선낭자 님이 쓴 글입니다. > 제목 : 부탁드려요 > 30256중 답변3과 관련한 내용입니다. 그 내용에 다음의 내용을 추가하려면 어떻게 고쳐야 하나요? 첫번째 매매가 손실인 경우, 2번째 매매는 반대방향으로 즉시 진입 (이 경우만 1P익절조건 추가. 이 경우만 종가청산조건) 기존의 2번째이후매매조건에는 앞번거래가 이익난 경우로 한정
프로필 이미지

묘선낭자

2013-05-10 18:12:52

추가로 묻습니다. 내용은 원래대로 두고(위에 물은 것은 미포함이구요) 1.첫번째 거래는 청산되지 않는 한 종가까지 가구요. 두번째이후의 신호는 10시5분이후의 신호에만 진입하는 조건은 어떻게 달면 되는지요. (9시직후 진입,이후 10시5분까지는 진입금지) 2.첫번째 신호는 흘리고 2번째신호부터 진입. 3. 1,2번신호는 흘리고 3번째신호부터 진입 4. 최적화를 위해선 어떻게 작성해야 하나요?(일반론) 5. 시스템포트폴리오 분석방법 6. 시스탬합성관리자 사용방법 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드려요 > 안녕하세요 예스스탁입니다. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; If (count==0 and c>dayopen) or (count>=1 and MarketPosition == 0 and marketPosition(1)==1 and PositionProfit(1) > 0 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (count>=1 and ((PositionProfit(1) > 0 and MarketPosition == 0 and marketPosition(1)==-1) or (MarketPosition == -1 and C < EntryPrice)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ # 첫번째 진입이고 손실이면 매도로 스위칭 if count == 1 and C < EntryPrice Then sell("BS"); Else #위 경우가 아니면 청산만 수행 ExitLong(); } If (count==0 and c<dayopen) or (count>=1 and PositionProfit(1) > 0 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or ( count>=1 and ((PositionProfit(1) > 0 and MarketPosition == 0 and MarketPosition(1)==1) or (MarketPosition == 1 and C > EntryPrice)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ #첫번째 진입이고 손실이면 매도로 스위칭 if count == 1 and C > EntryPrice Then buy("SB"); Else #위 경우가 아니면 청산만 수행 ExitShort(); } if MarketPosition == 1 and IsEntryName("Sb") == true Then{ exitlong("bx",Atlimit,EntryPrice+1); SetStopEndofday(150000); } else if MarketPosition == -1 and IsEntryName("bs") == true Then{ ExitShort("sx",Atlimit,EntryPrice-1); SetStopEndofday(150000); } Else SetStopEndofday(0); 즐거운 하루되세요 > 묘선낭자 님이 쓴 글입니다. > 제목 : 부탁드려요 > 30256중 답변3과 관련한 내용입니다. 그 내용에 다음의 내용을 추가하려면 어떻게 고쳐야 하나요? 첫번째 매매가 손실인 경우, 2번째 매매는 반대방향으로 즉시 진입 (이 경우만 1P익절조건 추가. 이 경우만 종가청산조건) 기존의 2번째이후매매조건에는 앞번거래가 이익난 경우로 한정
프로필 이미지

예스스탁 예스스탁 답변

2013-05-10 17:59:52

안녕하세요 예스스탁입니다. 1. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; If (count==0 and c>dayopen) or (count>=1 and stime >= 100500 and MarketPosition == 0 and marketPosition(1)==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (count>=1 and stime >= 100500 and ((MarketPosition == 0 and marketPosition(1)==-1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Exitlong(""); } If (count==0 and c<dayopen) or (count>=1 and stime >= 100500 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or ( count>=1 and stime >= 100500 and ((MarketPosition == 0 and MarketPosition(1)==1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Exitshort(""); } 2. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); var : RR(0),Ri(0),PreRR(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; if date != date[1] Then{ RR = 0; PReRR = 0; Condition1 = false; } if Condition1 == false then{ if rr == 0 Then{ if C > dayopen Then{ RR = 1; Ri = dayindex; } if C < dayopen Then{ RR = -1; Ri = dayindex; } } if RR == 1 and dayindex > RI Then{ If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Condition1 = true; RR = 0; PreRR = RR[1]; } } if RR == -1 and dayindex > RI Then{ If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Condition1 = true; RR = 0; PreRR = RR[1]; } } } if Condition1 == true then{ if count == 0 then{ If (MarketPosition == 0 and PreRR==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (((MarketPosition == 0 and PreRR==-1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy("b1"); } if (MarketPosition == 0 and PreRR==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or (((MarketPosition == 0 and PreRR==1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell("s1"); } } if count >= 1 then{ If (stime >= 100500 and MarketPosition == 0 and marketPosition(1)==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (stime >= 100500 and ((MarketPosition == 0 and marketPosition(1)==-1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy("b2"); } if (stime >= 100500 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or (stime >= 100500 and ((MarketPosition == 0 and MarketPosition(1)==1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell("s2"); } } } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Exitlong(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Exitshort(""); } 3. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); var : RR(0),Ri(0),PreRR(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; if date != date[1] Then{ RR = 0; PReRR = 0; Condition1 = false; Condition2 = false; } if Condition1 == false then{ if rr == 0 Then{ if C > dayopen Then{ RR = 1; Ri = dayindex; } if C < dayopen Then{ RR = -1; Ri = dayindex; } } if RR == 1 and dayindex > Ri Then{ If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Condition1 = true; RR = 0; PreRR = RR[1]; } } if RR == -1 and dayindex > Ri Then{ If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Condition1 = true; RR = 0; PreRR = RR[1]; } } } if Condition1 == true and Condition2 == false then{ if rr == 0 Then{ if (PreRR==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (((PreRR==-1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ RR = 1; Ri = dayindex; } if ( PreRR==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or (((PreRR==1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ RR = -1; Ri = dayindex; } } if RR == 1 and dayindex > Ri Then{ If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Condition2 = true; RR = 0; PreRR = RR[1]; } } if RR == -1 and dayindex > Ri Then{ If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Condition2 = true; RR = 0; PreRR = RR[1]; } } } if Condition1 == true and Condition2 == true then{ if count == 0 Then{ If (MarketPosition == 0 and PreRR==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (((MarketPosition == 0 and PreRR==-1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } if (MarketPosition == 0 and PreRR==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or (((MarketPosition == 0 and PreRR==1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } } if count >= 1 Then{ If (MarketPosition == 0 and marketPosition(1)==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (((MarketPosition == 0 and marketPosition(1)==-1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } if (MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or (((MarketPosition == 0 and MarketPosition(1)==1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } } } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Exitlong(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Exitshort(""); } 즐거운 하루되세요 > 묘선낭자 님이 쓴 글입니다. > 제목 : Re : Re : 부탁드려요 > 추가로 묻습니다. 내용은 원래대로 두고(위에 물은 것은 미포함이구요) 1.첫번째 거래는 청산되지 않는 한 종가까지 가구요. 두번째이후의 신호는 10시5분이후의 신호에만 진입하는 조건은 어떻게 달면 되는지요. (9시직후 진입,이후 10시5분까지는 진입금지) 2.첫번째 신호는 흘리고 2번째신호부터 진입. 3. 1,2번신호는 흘리고 3번째신호부터 진입 4. 최적화를 위해선 어떻게 작성해야 하나요?(일반론) > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드려요 > 안녕하세요 예스스탁입니다. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; If (count==0 and c>dayopen) or (count>=1 and MarketPosition == 0 and marketPosition(1)==1 and PositionProfit(1) > 0 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (count>=1 and ((PositionProfit(1) > 0 and MarketPosition == 0 and marketPosition(1)==-1) or (MarketPosition == -1 and C < EntryPrice)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ # 첫번째 진입이고 손실이면 매도로 스위칭 if count == 1 and C < EntryPrice Then sell("BS"); Else #위 경우가 아니면 청산만 수행 ExitLong(); } If (count==0 and c<dayopen) or (count>=1 and PositionProfit(1) > 0 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or ( count>=1 and ((PositionProfit(1) > 0 and MarketPosition == 0 and MarketPosition(1)==1) or (MarketPosition == 1 and C > EntryPrice)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ #첫번째 진입이고 손실이면 매도로 스위칭 if count == 1 and C > EntryPrice Then buy("SB"); Else #위 경우가 아니면 청산만 수행 ExitShort(); } if MarketPosition == 1 and IsEntryName("Sb") == true Then{ exitlong("bx",Atlimit,EntryPrice+1); SetStopEndofday(150000); } else if MarketPosition == -1 and IsEntryName("bs") == true Then{ ExitShort("sx",Atlimit,EntryPrice-1); SetStopEndofday(150000); } Else SetStopEndofday(0); 즐거운 하루되세요 > 묘선낭자 님이 쓴 글입니다. > 제목 : 부탁드려요 > 30256중 답변3과 관련한 내용입니다. 그 내용에 다음의 내용을 추가하려면 어떻게 고쳐야 하나요? 첫번째 매매가 손실인 경우, 2번째 매매는 반대방향으로 즉시 진입 (이 경우만 1P익절조건 추가. 이 경우만 종가청산조건) 기존의 2번째이후매매조건에는 앞번거래가 이익난 경우로 한정