커뮤니티
수정부탁드립니다.
2015-06-17 06:22:06
115
글번호 87287
어제 도움주신 index활용법을 추가해서 지표식 10개정도의 방에 넣으려고 하다가 막혔습니다. --;
메시지로그에 보면 NP[0],OpenPP[0]일때는 시스템식 봉갯수10과 결과값이 같는데, 1일때는 봉갯수11과 다릅니다. 혹시 2차원배열이 필요한가요?
수정부탁드립니다. 매번 감사합니다.
======================================================================
Input: 수량(1),시작변수(10),종료변수(20);
Var: cnt(0),n(0),j(0),Idx(-1);
Array: Hst[501](0),Lst[501](0),
MP[501](0),BuySellEntryPrice[501](0),OpenPP[501](0),NP[501](0);
input : Q(0);
var : cn(0);
For j = 0 To 종료변수-시작변수 {
Hst[j] = Highest(H,j+시작변수)[0];
Lst[j] = Lowest(L,j+시작변수)[0];
}
/*For j = 0 To 종료변수-시작변수 {
Hst[j] = H[cn+Q];
Lst[j] = L[cn+Q];
for cn = 0 to j+시작변수-1{
if H[cn+Q] > Hst[j] Then
Hst[j] = H[cn+Q];
if L[cn+Q] < Lst[j] Then
Lst[j] = L[cn+Q];
}
}*/
For n = 0 to 종료변수-시작변수 {
If MP[n] == 1 Then {
OpenPP[n] = (C-BuySellEntryPrice[n]);
}
If MP[n] == -1 Then {
OpenPP[n] = (BuySellEntryPrice[n]-C);
}
If MP[n] == 0 Then {
OpenPP[n] = 0;
}
If MP[n] <= 0 and Hst[n][1] < H and Index > Idx Then {
Idx = Index;
if MP[n] == -1 Then {
NP[n] = NP[n]+OpenPP[n];
}
BuySellEntryPrice[n] = C;
MP[n] = 1;
}
If MP[n] >= 0 and Lst[n][1] > L and Index > Idx Then {
Idx = Index;
if MP[n] == 1 Then{
NP[n] = NP[n]+OpenPP[n];
}
BuySellEntryPrice[n] = C;
MP[n] = -1;
}
}
cnt = cnt + 1;
MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f,cnt,%.0f",open,close,MP[0],NP[0],OpenPP[0],cnt);
==================================================================================
Input: 봉갯수(10);
If MarketPosition == 0 Then{
If Highest(H,봉갯수)[1] < H Then
{
Buy();
}
If Lowest(L,봉갯수)[1] > L Then
{
Sell();
}
}
If MarketPosition > 0 Then{
If Lowest(L,봉갯수)[1] > L Then Sell();
}
If MarketPosition < 0 Then
{
If Highest(H,봉갯수)[1] < H Then Buy();
}
답변 1
예스스탁 예스스탁 답변
2015-06-17 13:28:35
안녕하세요
예스스탁입니다.
하나의 식에서 최고가와 최저가의 기간을 변경해서
한번에 여러기간의 손익을 구해보실 의도이시면 가능한 내용이 아닙니다.
수작업으로 기간값 변경하셔서 값 체크해 보셔야 합니다.
즐거운 하루되세요
> 9단 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다.
> 어제 도움주신 index활용법을 추가해서 지표식 10개정도의 방에 넣으려고 하다가 막혔습니다. --;
메시지로그에 보면 NP[0],OpenPP[0]일때는 시스템식 봉갯수10과 결과값이 같는데, 1일때는 봉갯수11과 다릅니다. 혹시 2차원배열이 필요한가요?
수정부탁드립니다. 매번 감사합니다.
======================================================================
Input: 수량(1),시작변수(10),종료변수(20);
Var: cnt(0),n(0),j(0),Idx(-1);
Array: Hst[501](0),Lst[501](0),
MP[501](0),BuySellEntryPrice[501](0),OpenPP[501](0),NP[501](0);
input : Q(0);
var : cn(0);
For j = 0 To 종료변수-시작변수 {
Hst[j] = Highest(H,j+시작변수)[0];
Lst[j] = Lowest(L,j+시작변수)[0];
}
/*For j = 0 To 종료변수-시작변수 {
Hst[j] = H[cn+Q];
Lst[j] = L[cn+Q];
for cn = 0 to j+시작변수-1{
if H[cn+Q] > Hst[j] Then
Hst[j] = H[cn+Q];
if L[cn+Q] < Lst[j] Then
Lst[j] = L[cn+Q];
}
}*/
For n = 0 to 종료변수-시작변수 {
If MP[n] == 1 Then {
OpenPP[n] = (C-BuySellEntryPrice[n]);
}
If MP[n] == -1 Then {
OpenPP[n] = (BuySellEntryPrice[n]-C);
}
If MP[n] == 0 Then {
OpenPP[n] = 0;
}
If MP[n] <= 0 and Hst[n][1] < H and Index > Idx Then {
Idx = Index;
if MP[n] == -1 Then {
NP[n] = NP[n]+OpenPP[n];
}
BuySellEntryPrice[n] = C;
MP[n] = 1;
}
If MP[n] >= 0 and Lst[n][1] > L and Index > Idx Then {
Idx = Index;
if MP[n] == 1 Then{
NP[n] = NP[n]+OpenPP[n];
}
BuySellEntryPrice[n] = C;
MP[n] = -1;
}
}
cnt = cnt + 1;
MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f,cnt,%.0f",open,close,MP[0],NP[0],OpenPP[0],cnt);
==================================================================================
Input: 봉갯수(10);
If MarketPosition == 0 Then{
If Highest(H,봉갯수)[1] < H Then
{
Buy();
}
If Lowest(L,봉갯수)[1] > L Then
{
Sell();
}
}
If MarketPosition > 0 Then{
If Lowest(L,봉갯수)[1] > L Then Sell();
}
If MarketPosition < 0 Then
{
If Highest(H,봉갯수)[1] < H Then Buy();
}