커뮤니티
분할진입식 재질문
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;
}
}
}
================
미리감사드립니다.
이전글