커뮤니티

피라미딩 관련 문의드립니다.

프로필 이미지
파쿠3
2013-08-04 11:21:32
228
글번호 66052
답변완료
피라미딩 관련하여 문의드립니다. 아래와 같이 피라미딩 관련하여 수식을 작성하였을 경우에, 다음과 같은 상황이 오면 어떻게 반응을 하지는 궁금합니다. 1. a1 진입 2. a2 진입 3. a1 청산 4. CurrentEntries == 1 이므로 a2 진입 Q1. 이와 같은 상황이 오면 a2 진입명이 2개가 있게 되는거 같습니다만. 맞나요? Q2. 마찬가지로 value2 값도 최근 종가로 들어가는거 같습니다만. 맞나요? Q2. a2 진입명의 청산조건이 만족하면 먼저 진입한 a2 값이 먼저 반응을 하는건가요? Q3. 진입명이 겹치지 않게 a2 진입이 있다면 진입명을 a2_2 처럼 변경을 할수 있나요? inentryname이 a2 가 있다면 a2_2로 진입을 하는 수식이 가능한가요? input : P(3); If MarketPosition == 0 and countif(C > O,3) == 3 Then { Buy("a1", OnClose, DEF, 1); value1 = C; } if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If MarketPosition == 1 and CurrentEntries == 2 and countif(C > O,3) == 3 Then { Buy("a3", OnClose, DEF, 1); value3 = C; } If MarketPosition == 1 and CurrentEntries == 3 and countif(C > O,3) == 3 Then { Buy("a4", OnClose, DEF, 1); value4 = C; } If MarketPosition == 1 and CurrentEntries == 4 and countif(C > O,3) == 3 Then { Buy("a5", OnClose, DEF, 1); value5 = C; } } if MarketPosition == 1 then{ if CurrentEntries >= 1 Then{ Exitlong("a1S", Atstop, Value1 - 10, "a1"); Exitlong("a1L", AtLimit, Value1 + 10, "a1"); } if CurrentEntries >= 2 Then{ Exitlong("a2S", Atstop, Value2 - 10, "a2"); Exitlong("a2L", AtLimit, Value2 + 10, "a2"); } if CurrentEntries >= 3 Then{ Exitlong("a3S", Atstop, Value3 - 10, "a3"); Exitlong("a3L", AtLimit, Value3 + 10, "a3"); } if CurrentEntries >= 4 Then{ Exitlong("a4S", Atstop, Value4 - 10, "a4"); Exitlong("a4L", AtLimit, Value4 + 10, "a4"); } if CurrentEntries >= 5 Then{ Exitlong("a5S", Atstop, Value5 - 10, "a5"); Exitlong("a5L", AtLimit, Value5 + 10, "a5"); } }
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2013-08-05 10:27:54

안녕하세요 예스스탁입니다. 1. 예 또 진입하게 됩니다. 피라미딩을 모든신호허용으로 하시면 또 진입하고 다른진입신호만 허용으로 설정하시면 a2진입이 이미 발생해 있고 청산이 되지 않았으므로 진입하지 않습니다. 2. 예 맞습니다. 3. a2 이름을 가지는 모든 진입이 청산됩니다. 수식에서 모두 이름을 다르게 부여하지 않는한 개별적으로 작동하려면 강제청산함수 이름을 사용하는 방법외에는 없습니다. 4. 가능하지 않습니다. 상황별로 작성하셔서 이름을 각각 붙이셔야 합니다. 즐거운 하루되세요 > 파쿠3 님이 쓴 글입니다. > 제목 : 피라미딩 관련 문의드립니다. > 피라미딩 관련하여 문의드립니다. 아래와 같이 피라미딩 관련하여 수식을 작성하였을 경우에, 다음과 같은 상황이 오면 어떻게 반응을 하지는 궁금합니다. 1. a1 진입 2. a2 진입 3. a1 청산 4. CurrentEntries == 1 이므로 a2 진입 Q1. 이와 같은 상황이 오면 a2 진입명이 2개가 있게 되는거 같습니다만. 맞나요? Q2. 마찬가지로 value2 값도 최근 종가로 들어가는거 같습니다만. 맞나요? Q2. a2 진입명의 청산조건이 만족하면 먼저 진입한 a2 값이 먼저 반응을 하는건가요? Q3. 진입명이 겹치지 않게 a2 진입이 있다면 진입명을 a2_2 처럼 변경을 할수 있나요? inentryname이 a2 가 있다면 a2_2로 진입을 하는 수식이 가능한가요? input : P(3); If MarketPosition == 0 and countif(C > O,3) == 3 Then { Buy("a1", OnClose, DEF, 1); value1 = C; } if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If MarketPosition == 1 and CurrentEntries == 2 and countif(C > O,3) == 3 Then { Buy("a3", OnClose, DEF, 1); value3 = C; } If MarketPosition == 1 and CurrentEntries == 3 and countif(C > O,3) == 3 Then { Buy("a4", OnClose, DEF, 1); value4 = C; } If MarketPosition == 1 and CurrentEntries == 4 and countif(C > O,3) == 3 Then { Buy("a5", OnClose, DEF, 1); value5 = C; } } if MarketPosition == 1 then{ if CurrentEntries >= 1 Then{ Exitlong("a1S", Atstop, Value1 - 10, "a1"); Exitlong("a1L", AtLimit, Value1 + 10, "a1"); } if CurrentEntries >= 2 Then{ Exitlong("a2S", Atstop, Value2 - 10, "a2"); Exitlong("a2L", AtLimit, Value2 + 10, "a2"); } if CurrentEntries >= 3 Then{ Exitlong("a3S", Atstop, Value3 - 10, "a3"); Exitlong("a3L", AtLimit, Value3 + 10, "a3"); } if CurrentEntries >= 4 Then{ Exitlong("a4S", Atstop, Value4 - 10, "a4"); Exitlong("a4L", AtLimit, Value4 + 10, "a4"); } if CurrentEntries >= 5 Then{ Exitlong("a5S", Atstop, Value5 - 10, "a5"); Exitlong("a5L", AtLimit, Value5 + 10, "a5"); } }
프로필 이미지

파쿠3

2013-08-05 10:52:03

상황별로 진입명 설정할 경우, 다음과 같이 진행하면 되나요? if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { If IsEntryName("a2") == False Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If IsEntryName("a2") == True Then { Buy("a2_2", OnClose, DEF, 1); value3 = C; } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 피라미딩 관련 문의드립니다. > 안녕하세요 예스스탁입니다. 1. 예 또 진입하게 됩니다. 피라미딩을 모든신호허용으로 하시면 또 진입하고 다른진입신호만 허용으로 설정하시면 a2진입이 이미 발생해 있고 청산이 되지 않았으므로 진입하지 않습니다. 2. 예 맞습니다. 3. a2 이름을 가지는 모든 진입이 청산됩니다. 수식에서 모두 이름을 다르게 부여하지 않는한 개별적으로 작동하려면 강제청산함수 이름을 사용하는 방법외에는 없습니다. 4. 가능하지 않습니다. 상황별로 작성하셔서 이름을 각각 붙이셔야 합니다. 즐거운 하루되세요 > 파쿠3 님이 쓴 글입니다. > 제목 : 피라미딩 관련 문의드립니다. > 피라미딩 관련하여 문의드립니다. 아래와 같이 피라미딩 관련하여 수식을 작성하였을 경우에, 다음과 같은 상황이 오면 어떻게 반응을 하지는 궁금합니다. 1. a1 진입 2. a2 진입 3. a1 청산 4. CurrentEntries == 1 이므로 a2 진입 Q1. 이와 같은 상황이 오면 a2 진입명이 2개가 있게 되는거 같습니다만. 맞나요? Q2. 마찬가지로 value2 값도 최근 종가로 들어가는거 같습니다만. 맞나요? Q2. a2 진입명의 청산조건이 만족하면 먼저 진입한 a2 값이 먼저 반응을 하는건가요? Q3. 진입명이 겹치지 않게 a2 진입이 있다면 진입명을 a2_2 처럼 변경을 할수 있나요? inentryname이 a2 가 있다면 a2_2로 진입을 하는 수식이 가능한가요? input : P(3); If MarketPosition == 0 and countif(C > O,3) == 3 Then { Buy("a1", OnClose, DEF, 1); value1 = C; } if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If MarketPosition == 1 and CurrentEntries == 2 and countif(C > O,3) == 3 Then { Buy("a3", OnClose, DEF, 1); value3 = C; } If MarketPosition == 1 and CurrentEntries == 3 and countif(C > O,3) == 3 Then { Buy("a4", OnClose, DEF, 1); value4 = C; } If MarketPosition == 1 and CurrentEntries == 4 and countif(C > O,3) == 3 Then { Buy("a5", OnClose, DEF, 1); value5 = C; } } if MarketPosition == 1 then{ if CurrentEntries >= 1 Then{ Exitlong("a1S", Atstop, Value1 - 10, "a1"); Exitlong("a1L", AtLimit, Value1 + 10, "a1"); } if CurrentEntries >= 2 Then{ Exitlong("a2S", Atstop, Value2 - 10, "a2"); Exitlong("a2L", AtLimit, Value2 + 10, "a2"); } if CurrentEntries >= 3 Then{ Exitlong("a3S", Atstop, Value3 - 10, "a3"); Exitlong("a3L", AtLimit, Value3 + 10, "a3"); } if CurrentEntries >= 4 Then{ Exitlong("a4S", Atstop, Value4 - 10, "a4"); Exitlong("a4L", AtLimit, Value4 + 10, "a4"); } if CurrentEntries >= 5 Then{ Exitlong("a5S", Atstop, Value5 - 10, "a5"); Exitlong("a5L", AtLimit, Value5 + 10, "a5"); } }
프로필 이미지

예스스탁 예스스탁 답변

2013-08-05 11:11:19

안녕하세요 예스스탁입니다. IsEntryName과 같인 포지션 함수는 가장 첫진입만 기억하므로 진입명으로 제어할 수 없습니다. 따로 카운트 하는 내용을 추가해서 제어하셔야 합니다. input : P(5); var : a2cnt(0); if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { a2cnt = a2cnt+1; if a2cnt == 1 Then{ Buy("a2", OnClose, DEF, 1); value2 = C; } if a2cnt == 2 Then{ Buy("a2_2", OnClose, DEF, 1); value2 = C; } } } 즐거운 하루되세요 > 파쿠3 님이 쓴 글입니다. > 제목 : Re : Re : 피라미딩 관련 문의드립니다. > 상황별로 진입명 설정할 경우, 다음과 같이 진행하면 되나요? if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { If IsEntryName("a2") == False Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If IsEntryName("a2") == True Then { Buy("a2_2", OnClose, DEF, 1); value3 = C; } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 피라미딩 관련 문의드립니다. > 안녕하세요 예스스탁입니다. 1. 예 또 진입하게 됩니다. 피라미딩을 모든신호허용으로 하시면 또 진입하고 다른진입신호만 허용으로 설정하시면 a2진입이 이미 발생해 있고 청산이 되지 않았으므로 진입하지 않습니다. 2. 예 맞습니다. 3. a2 이름을 가지는 모든 진입이 청산됩니다. 수식에서 모두 이름을 다르게 부여하지 않는한 개별적으로 작동하려면 강제청산함수 이름을 사용하는 방법외에는 없습니다. 4. 가능하지 않습니다. 상황별로 작성하셔서 이름을 각각 붙이셔야 합니다. 즐거운 하루되세요 > 파쿠3 님이 쓴 글입니다. > 제목 : 피라미딩 관련 문의드립니다. > 피라미딩 관련하여 문의드립니다. 아래와 같이 피라미딩 관련하여 수식을 작성하였을 경우에, 다음과 같은 상황이 오면 어떻게 반응을 하지는 궁금합니다. 1. a1 진입 2. a2 진입 3. a1 청산 4. CurrentEntries == 1 이므로 a2 진입 Q1. 이와 같은 상황이 오면 a2 진입명이 2개가 있게 되는거 같습니다만. 맞나요? Q2. 마찬가지로 value2 값도 최근 종가로 들어가는거 같습니다만. 맞나요? Q2. a2 진입명의 청산조건이 만족하면 먼저 진입한 a2 값이 먼저 반응을 하는건가요? Q3. 진입명이 겹치지 않게 a2 진입이 있다면 진입명을 a2_2 처럼 변경을 할수 있나요? inentryname이 a2 가 있다면 a2_2로 진입을 하는 수식이 가능한가요? input : P(3); If MarketPosition == 0 and countif(C > O,3) == 3 Then { Buy("a1", OnClose, DEF, 1); value1 = C; } if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If MarketPosition == 1 and CurrentEntries == 2 and countif(C > O,3) == 3 Then { Buy("a3", OnClose, DEF, 1); value3 = C; } If MarketPosition == 1 and CurrentEntries == 3 and countif(C > O,3) == 3 Then { Buy("a4", OnClose, DEF, 1); value4 = C; } If MarketPosition == 1 and CurrentEntries == 4 and countif(C > O,3) == 3 Then { Buy("a5", OnClose, DEF, 1); value5 = C; } } if MarketPosition == 1 then{ if CurrentEntries >= 1 Then{ Exitlong("a1S", Atstop, Value1 - 10, "a1"); Exitlong("a1L", AtLimit, Value1 + 10, "a1"); } if CurrentEntries >= 2 Then{ Exitlong("a2S", Atstop, Value2 - 10, "a2"); Exitlong("a2L", AtLimit, Value2 + 10, "a2"); } if CurrentEntries >= 3 Then{ Exitlong("a3S", Atstop, Value3 - 10, "a3"); Exitlong("a3L", AtLimit, Value3 + 10, "a3"); } if CurrentEntries >= 4 Then{ Exitlong("a4S", Atstop, Value4 - 10, "a4"); Exitlong("a4L", AtLimit, Value4 + 10, "a4"); } if CurrentEntries >= 5 Then{ Exitlong("a5S", Atstop, Value5 - 10, "a5"); Exitlong("a5L", AtLimit, Value5 + 10, "a5"); } }
프로필 이미지

파쿠3

2013-08-05 12:31:33

아래와 같이 하면 a2cnt 가 계속 증가해서 피라미딩의 효과가 없는거 같습니다. 청산식에서 a2cnt-1 or a2cnt-2 등을 써서 a2cnt 를 초기화 하는것은 경우의 수가 너무 많은거 같은데, 다른 대안은 없을가요? input : P(5); var : a2cnt(0); if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { a2cnt = a2cnt+1; if a2cnt == 1 Then{ Buy("a2", OnClose, DEF, 1); value2 = C; } if a2cnt == 2 Then{ Buy("a2_2", OnClose, DEF, 1); value2 = C; } } } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 피라미딩 관련 문의드립니다. > 안녕하세요 예스스탁입니다. IsEntryName과 같인 포지션 함수는 가장 첫진입만 기억하므로 진입명으로 제어할 수 없습니다. 따로 카운트 하는 내용을 추가해서 제어하셔야 합니다. input : P(5); var : a2cnt(0); if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { a2cnt = a2cnt+1; if a2cnt == 1 Then{ Buy("a2", OnClose, DEF, 1); value2 = C; } if a2cnt == 2 Then{ Buy("a2_2", OnClose, DEF, 1); value2 = C; } } } 즐거운 하루되세요 > 파쿠3 님이 쓴 글입니다. > 제목 : Re : Re : 피라미딩 관련 문의드립니다. > 상황별로 진입명 설정할 경우, 다음과 같이 진행하면 되나요? if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { If IsEntryName("a2") == False Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If IsEntryName("a2") == True Then { Buy("a2_2", OnClose, DEF, 1); value3 = C; } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 피라미딩 관련 문의드립니다. > 안녕하세요 예스스탁입니다. 1. 예 또 진입하게 됩니다. 피라미딩을 모든신호허용으로 하시면 또 진입하고 다른진입신호만 허용으로 설정하시면 a2진입이 이미 발생해 있고 청산이 되지 않았으므로 진입하지 않습니다. 2. 예 맞습니다. 3. a2 이름을 가지는 모든 진입이 청산됩니다. 수식에서 모두 이름을 다르게 부여하지 않는한 개별적으로 작동하려면 강제청산함수 이름을 사용하는 방법외에는 없습니다. 4. 가능하지 않습니다. 상황별로 작성하셔서 이름을 각각 붙이셔야 합니다. 즐거운 하루되세요 > 파쿠3 님이 쓴 글입니다. > 제목 : 피라미딩 관련 문의드립니다. > 피라미딩 관련하여 문의드립니다. 아래와 같이 피라미딩 관련하여 수식을 작성하였을 경우에, 다음과 같은 상황이 오면 어떻게 반응을 하지는 궁금합니다. 1. a1 진입 2. a2 진입 3. a1 청산 4. CurrentEntries == 1 이므로 a2 진입 Q1. 이와 같은 상황이 오면 a2 진입명이 2개가 있게 되는거 같습니다만. 맞나요? Q2. 마찬가지로 value2 값도 최근 종가로 들어가는거 같습니다만. 맞나요? Q2. a2 진입명의 청산조건이 만족하면 먼저 진입한 a2 값이 먼저 반응을 하는건가요? Q3. 진입명이 겹치지 않게 a2 진입이 있다면 진입명을 a2_2 처럼 변경을 할수 있나요? inentryname이 a2 가 있다면 a2_2로 진입을 하는 수식이 가능한가요? input : P(3); If MarketPosition == 0 and countif(C > O,3) == 3 Then { Buy("a1", OnClose, DEF, 1); value1 = C; } if MaxEntries < P then{ If MarketPosition == 1 and CurrentEntries == 1 and countif(C > O,3) == 3 Then { Buy("a2", OnClose, DEF, 1); value2 = C; } If MarketPosition == 1 and CurrentEntries == 2 and countif(C > O,3) == 3 Then { Buy("a3", OnClose, DEF, 1); value3 = C; } If MarketPosition == 1 and CurrentEntries == 3 and countif(C > O,3) == 3 Then { Buy("a4", OnClose, DEF, 1); value4 = C; } If MarketPosition == 1 and CurrentEntries == 4 and countif(C > O,3) == 3 Then { Buy("a5", OnClose, DEF, 1); value5 = C; } } if MarketPosition == 1 then{ if CurrentEntries >= 1 Then{ Exitlong("a1S", Atstop, Value1 - 10, "a1"); Exitlong("a1L", AtLimit, Value1 + 10, "a1"); } if CurrentEntries >= 2 Then{ Exitlong("a2S", Atstop, Value2 - 10, "a2"); Exitlong("a2L", AtLimit, Value2 + 10, "a2"); } if CurrentEntries >= 3 Then{ Exitlong("a3S", Atstop, Value3 - 10, "a3"); Exitlong("a3L", AtLimit, Value3 + 10, "a3"); } if CurrentEntries >= 4 Then{ Exitlong("a4S", Atstop, Value4 - 10, "a4"); Exitlong("a4L", AtLimit, Value4 + 10, "a4"); } if CurrentEntries >= 5 Then{ Exitlong("a5S", Atstop, Value5 - 10, "a5"); Exitlong("a5L", AtLimit, Value5 + 10, "a5"); } }