커뮤니티

분할진입식 재질문

프로필 이미지
송아지
2008-08-14 17:02:09
793
글번호 16682
답변완료
답변감사드립니다. 보내주신것으로 만들어보니 잘 작동이 안되서요.아래 비콘드2-5는 제가 추가한 것입니다. ============ var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0); if date != date[1] Then{ count = 0; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } ##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트 if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{ count = count+1; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } #1.진입 if Count < 2 and Bcond1 < 3 Then{ //당일 2회까지 진입, a2-> a2-1 --> a2-2 순서로 3번 분할진입 If bcond1 == 0 and stime == 090000 Then { If MarketPosition() == 0 and crossup(ma(c,5),ma(c,20)) and (var10>0 and var20>0) and c>=ma(c,5) then { Buy("a",Atmarket,def,var2*0.4); Bcond1 = 1; } } If bcond1==1 and stime >= 090000 Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a-1",Atmarket,def,var2*0.3); Bcond1 = 2; } } If bcond1==2 and stime >= 090000 Then { If c > entryprice*1.13 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a-2",Atmarket,def,var2*0.3); Bcond1 = 3; } } } if Count < 2 and Bcond3 < 3 Then{ //당일 2회까지 진입, a2-> a2-1 --> a2-2 순서로 3번 분할진입 If bcond3 == 0 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If MarketPosition() == 0 and crossup(ma(c,5),ma(c,60)) and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2",Atmarket,def,var2*0.4); Bcond3 = 1; } } If bcond3==1 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-1",Atmarket,def,var2*0.3); Bcond3 = 2; } } If bcond3==2 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If c > entryprice*1.15 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-2",Atmarket,def,var2*0.3); Bcond3 = 3; } } } ================ 미리감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2008-08-14 17:43:12

안녕하세요 예스스탁입니다. 문의하신 부분만으로는 정확히 어떤 부분이 문제가 되는지 알수 없습니다. Bcond5까지 있는 식이므로 총 5개의 셋트를 수식으로 만들었습니다. condition1~15까지 각각의 조건을 입력해 주시면 됩니다. 또한 currentdate는 컴퓨터의 날짜입니다. 사용상 유의하시기 바랍니다. var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0); if date != date[1] Then{ count = 0; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } ##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트 if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{ count = count+1; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } if Count < 2 Then{ If bcond1 == 0 and MarketPosition() == 0 and Condition1 then { Buy(); Bcond1 = 1; } If bcond1 == 1 and MarketPosition() == 1 and Condition2 then { Buy(); Bcond1 = 2; } If bcond1 == 2 and MarketPosition() == 1 and Condition3 then { Buy(); Bcond1 = 3; } } if Count < 2 Then{ If bcond2 == 0 and MarketPosition() == 0 and Condition4 then { Buy(); Bcond2 = 1; } If bcond2 == 1 and MarketPosition() == 1 and Condition5 then { Buy(); Bcond2 = 2; } If bcond2 == 2 and MarketPosition() == 1 and Condition6 then { Buy(); Bcond2 = 3; } } if Count < 2 Then{ If bcond3 == 0 and MarketPosition() == 0 and Condition7 then { Buy(); Bcond3 = 1; } If bcond3 == 1 and MarketPosition() == 1 and Condition8 then { Buy(); Bcond3 = 2; } If bcond3 == 2 and MarketPosition() == 1 and Condition9 then { Buy(); Bcond3 = 3; } } if Count < 2 Then{ If bcond4 == 0 and MarketPosition() == 0 and Condition10 then { Buy(); Bcond4 = 1; } If bcond4 == 1 and MarketPosition() == 1 and Condition11 then { Buy(); Bcond4 = 2; } If bcond4 == 2 and MarketPosition() == 1 and Condition12 then { Buy(); Bcond4 = 3; } } if Count < 2 Then{ If bcond5 == 0 and MarketPosition() == 0 and Condition13 then { Buy(); Bcond5 = 1; } If bcond5 == 1 and MarketPosition() == 1 and Condition14 then { Buy(); Bcond5 = 2; } If bcond5 == 2 and MarketPosition() == 1 and Condition15 then { Buy(); Bcond5 = 3; } } SetStopEndofday(1500); 즐거운 하루되세요 > 송아지 님이 쓴 글입니다. > 제목 : 분할진입식 재질문 > 답변감사드립니다. 보내주신것으로 만들어보니 잘 작동이 안되서요.아래 비콘드2-5는 제가 추가한 것입니다. ============ var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0); if date != date[1] Then{ count = 0; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } ##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트 if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{ count = count+1; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } #1.진입 if Count < 2 and Bcond1 < 3 Then{ //당일 2회까지 진입, a2-> a2-1 --> a2-2 순서로 3번 분할진입 If bcond1 == 0 and stime == 090000 Then { If MarketPosition() == 0 and crossup(ma(c,5),ma(c,20)) and (var10>0 and var20>0) and c>=ma(c,5) then { Buy("a",Atmarket,def,var2*0.4); Bcond1 = 1; } } If bcond1==1 and stime >= 090000 Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a-1",Atmarket,def,var2*0.3); Bcond1 = 2; } } If bcond1==2 and stime >= 090000 Then { If c > entryprice*1.13 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a-2",Atmarket,def,var2*0.3); Bcond1 = 3; } } } if Count < 2 and Bcond3 < 3 Then{ //당일 2회까지 진입, a2-> a2-1 --> a2-2 순서로 3번 분할진입 If bcond3 == 0 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If MarketPosition() == 0 and crossup(ma(c,5),ma(c,60)) and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2",Atmarket,def,var2*0.4); Bcond3 = 1; } } If bcond3==1 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-1",Atmarket,def,var2*0.3); Bcond3 = 2; } } If bcond3==2 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If c > entryprice*1.15 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-2",Atmarket,def,var2*0.3); Bcond3 = 3; } } } ================ 미리감사드립니다.