커뮤니티

예스언어로 부탁드립니다.

프로필 이미지
2017-04-03 13:38:30
264
글번호 108414
답변완료
안녕하세요. 예스언어로 부탁드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-04 13:02:08

안녕하세요 예스스탁입니다. Input:length(10),tlExtend(5),tlCheckRange(10),entryCntLimit(1), waveLineSize(1),tlSize(0),waveLineColor(GREEN),displPRC(0); Var:j(0),jj(0),lastHi(0),lastLo(0),lastVertex(""),procBit(""),entryCnt(0), TL1(0),TL2(0),TL3(0),Text1(0), //ssssssssssssssssssssssssssssssssss hiTLEndVal(0),loTLEndVal(0),pkID(0),vlID(0); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Array:PK[100,4](0),VL[100,4](0); // 1:Price,2:index,3:Date,4:Time //========================================== Condition1 = Highest(H,length) == H and lastHi <> H; Condition2 = Lowest (L,length) == L and lastLo <> L; procBit = ""; If Condition1 and Condition2 Then Begin If lastVertex == "Valley" Then Begin If VL[1,1] > L Then procBit = "Valley"; Else procBit = "Peak"; End Else If lastVertex == "Peak" Then Begin If PK[1,1] < H Then procBit = "Peak"; Else procBit = "Valley"; End; End Else If Condition1 Then procBit = "Peak"; Else If Condition2 Then procBit = "Valley"; //========================================== If procBit == "Peak" Then Begin lastHi = H; If lastVertex == "Valley" Then Begin entryCnt = 0; For j = 100 DownTo 2 Begin //ssssssssssssssssssssssssssssssssss For jj = 1 To 4 Begin PK[j,jj] = PK[j-1,jj]; End ; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee End; PK[1,1] = H; PK[1,2] = index; //ssssssssssssssssssssssssssssssssss PK[1,3] = Date; PK[1,4] = Time; TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee If displPRC == 1 Then Begin Text1 = Text_New(PK[1,3],PK[1,4],PK[1,1],NumToStr(PK[1,1],2)); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,black); End ; TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,waveLineColor); End Else If PK[1,1] < H Then Begin PK[1,1] = H; PK[1,2] = index; //ssssssssssssssssssssssssssssssssss PK[1,3] = Date; PK[1,4] = Time; TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee If displPRC == 1 Then Begin Text_SetLocation(Text1,PK[1,3],PK[1,4],PK[1,1]); Text_SetString(Text1,NumToStr(PK[1,1],2)); End; End ; #{ High Trend Line } If PK[2,2][1] <> PK[2,2] Then Begin //ssssssssssssssssssssssssssssssssss hiTLEndVal = 0; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee For j = 3 To tlCheckRange Begin If PK[2,1] < PK[j,1] Then Begin //ssssssssssssssssssssssssssssssssss hiTLEndVal = (PK[2,1] - PK[j,1])/(PK[2,2] - PK[j,2]) * (index - PK[j,2]) + PK[j,1]; TL2 = TL_New(PK[j,3],PK[j,4],PK[j,1],Date,Time,hiTLEndVal); pkID = j; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetSize(TL2,tlSize); TL_SetColor(TL2,RED); End ; End; End Else If hiTLEndVal[1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss hiTLEndVal = (PK[2,1] - PK[pkID,1])/(PK[2,2] - PK[pkID,2]) * (index - PK[pkID,2]) + PK[pkID,1]; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetEnd(TL2,Date,Time,hiTLEndVal); End ; If loTLEndVal[1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss loTLEndVal = (VL[2,1] - VL[vlID,1])/(VL[2,2] - VL[vlID,2]) * (index - VL[vlID,2]) + VL[vlID,1]; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetEnd(TL3,Date,Time,loTLEndVal); End ; lastVertex = "Peak"; If entryCnt < entryCntLimit and hiTLEndVal > 0 and hiTLEndVal < C Then Begin Buy(); End ; End ; //========================================== If procBit == "Valley" Then Begin lastLo = L; If lastVertex == "Peak" then Begin entryCnt = 0; For j = 100 DownTo 2 Begin //ssssssssssssssssssssssssssssssssss For jj = 1 To 4 Begin VL[j,jj] = VL[j-1,jj]; End; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee End; VL[1,1] = L; VL[1,2] = index; //ssssssssssssssssssssssssssssssssss VL[1,3] = Date; VL[1,4] = Time; TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee If displPRC == 1 Then Begin Text1 = Text_New(VL[1,3],VL[1,4],VL[1,1],NumToStr(VL[1,1],2)); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,black); End ; TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,waveLineColor); End Else If VL[1,1] > L then Begin VL[1,1] = L; VL[1,2] = index; //ssssssssssssssssssssssssssssssssss VL[1,3] = Date; VL[1,4] = Time; TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee If displPRC == 1 Then Begin Text_SetLocation(Text1,VL[1,3],VL[1,4],VL[1,1]); Text_SetString(Text1,NumToStr(VL[1,1],2)); End ; End ; #{ Low Trend Line } If VL[2,2][1] <> VL[2,2] Then Begin //ssssssssssssssssssssssssssssssssss loTLEndVal = 0; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee For j = 3 To tlCheckRange Begin If VL[2,1] > VL[j,1] and VL[j,1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss loTLEndVal = (VL[2,1] - VL[j,1])/(VL[2,2] - VL[j,2]) * (index - VL[j,2]) + VL[j,1]; TL3 = TL_New(VL[j,3],VL[j,4],VL[j,1],Date,Time,loTLEndVal); vlID = j; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetSize(TL3,tlSize); TL_SetColor(TL3,Blue); End ; End; End Else If loTLEndVal[1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss loTLEndVal = (VL[2,1] - VL[vlID,1])/(VL[2,2] - VL[vlID,2]) * (index - VL[vlID,2]) + VL[vlID,1]; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetEnd(TL3,Date,Time,loTLEndVal); End ; If hiTLEndVal[1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss hiTLEndVal = (PK[2,1] - PK[pkID,1])/(PK[2,2] - PK[pkID,2]) * (index - PK[pkID,2]) + PK[pkID,1]; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetEnd(TL2,Date,Time,hiTLEndVal); End ; lastVertex = "Valley"; If entryCnt < entryCntLimit and loTLEndVal > 0 and loTLEndVal > C Then Begin Sell(); End ; End ; //========================================== If procBit == "" Then Begin If index - PK[1,2] <= tlExtend Then Begin If hiTLEndVal[1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss hiTLEndVal = (PK[2,1] - PK[pkID,1])/(PK[2,2] - PK[pkID,2]) * (index - PK[pkID,2]) + PK[pkID,1]; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetEnd(TL2,Date,Time,hiTLEndVal); End ; End Else Begin hiTLEndVal = 0; End ; If index - VL[1,2] <= tlExtend Then Begin If loTLEndVal[1] > 0 Then Begin //ssssssssssssssssssssssssssssssssss loTLEndVal = (VL[2,1] - VL[vlID,1])/(VL[2,2] - VL[vlID,2]) * (index - VL[vlID,2]) + VL[vlID,1]; //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee TL_SetEnd(TL3,Date,Time,loTLEndVal); End ; End Else Begin loTLEndVal = 0; End ; If MarketPosition > 0 and TL2[1] == TL2 and hiTLEndVal > 0 and hiTLEndVal[1] <= C[1] and hiTLEndVal > C Then ExitLong(); If MarketPosition < 0 and TL3[1] == TL3 and loTLEndVal > 0 and loTLEndVal[1] >= C[1] and loTLEndVal < C Then ExitShort(); End ; If ((lastVertex == "Peak" and MarketPosition == 1) or (lastVertex == "Valley" and MarketPosition == -1)) and MarketPosition[1] <> MarketPosition Then Begin entryCnt = entryCnt + 1; End ; 즐거운 하루되세요 > 괌 님이 쓴 글입니다. > 제목 : 예스언어로 부탁드립니다. > 안녕하세요. 예스언어로 부탁드립니다.