新手發問~
請問~各位大大~這個程式碼~他為什麼不用抓取 VALUE2的高點值呢?我是少了什麼東西嗎?拜託請指教
if date <> date thendbar = 0;
dbar= dbar +1;
if dbar >= length then begin
value2 = pivothighvs(1,high,3,2,length);
end else begin;
value2 =99999;
end;
ifmarketposition = 0 and time>=0850 and time <=1315 then begin
ifhigh > value2then
buy next bar at value2 stop;
end; 給個建議
初學時,盡量不要使用內建的函數,如pivothighvs,swingHigh..等
除非你知道內容是什麼,這很像以前老師要我們不要背公式,要自己推出來..
自己用自己的語法寫出來,進步會比較快.
當然還有一個進步超快的方式->把內建函數內容看懂.
如:
pivothighvs ->意思是:傳回最近反轉高點的價格.
內容是:
inputs:
Instance( numericsimple ),
PriceValue( numericseries ),
LeftStrength( numericsimple ),
RightStrength( numericsimple ),
Len( numericsimple ) ;
variables:
var0( 0 ),
var1( 0 ) ;
Value1 = Pivot( PriceValue, Len, LeftStrength, RightStrength, Instance, 1, var0,
var1 ) ;
PivotHighVS = var0 ;
裡面又使用了另一個函數: Pivot->計算最近反轉點的K棒位置及價格.
內容是:
重點在於VAR0 & VAR1 這兩個變數,花個時間看懂保證功力急增!
inputs:
PriceValue( numericseries ),
Len( numericsimple ),
LeftStrength( numericsimple ),
RightStrength( numericsimple ),
Instance( numericsimple ),
HiLo( numericsimple ),
oPivotPriceValue( numericref ),
oPivotBar( numericref ) ;
variables:
var0( 0 ),
var1( 0 ),
var2( 0 ),
var3( 0 ),
var4( false ),
var5( false ) ;
var3 = 0 ;
var5 = false ;
var1 = RightStrength ;
while var1 < Len and var5 = false
begin
var0 = PriceValue ;
var4 = true ;
var2 = var1 + 1 ;
while var4 = true and var2 - var1 <= LeftStrength
begin
condition1 = ( HiLo = 1 and var0 < PriceValue )
or ( HiLo = -1 and var0 > PriceValue ) ;
if condition1 then
var4 = false
else
var2 = var2 + 1 ;
end ;
var2 = var1 - 1 ;
while var4 = true and var1 - var2 <= RightStrength
begin
condition1 = ( HiLo = 1 and var0 <= PriceValue )
or ( HiLo = -1 and var0 >= PriceValue ) ;
if condition1 then
var4 = false
else
var2 = var2 - 1 ;
end ;
if var4 = true then
var3 = var3 + 1 ;
if var3 = Instance then
var5 = true
else
var1 = var1 + 1 ;
end ;
if var5 = true then
begin
oPivotPriceValue = var0 ;
oPivotBar = var1 + ExecOffset ;
Pivot = 1 ;
end
else
begin
oPivotPriceValue = -1 ;
oPivotBar = -1 ;
Pivot = -1 ;
end ; 回復 2# ilpir
大大~~謝謝你的解說超清楚的~
我的編寫工具~~好像跟您的不一樣我的是ts2000i 我沒有 PIVOT這個指令
還是很感謝~你給的指導~~謝啦 回復 2# ilpir
大大~請問您也用MultiCharts 這一套的工具嗎? TS2000 easy-language 是沒有pivot 這個函數.
直接寫在pivothighvs內.
宣告陣列:Array: Pivot(0)
再把每個高點成立時往裡面丟.
Pivot就是前一個高點值,Pivot就是前前高點值..依此累推..
把函式內容看懂就會變強了.
會寫後接下來要面臨的就是策略問題了(這個遠比"寫"程式難)
之前已轉用MC...TS2000I太麻煩了.
PivotHighVS:
Inputs: Occur(Numeric), Price(NumericSeries), LStren(NumericSimple), RStren(NumericSimple), Length(Numeric);
Variables: SHBar(0), MainLoop(0), count(0), PivotFlag(False);
Array: Pivot(0);
PivotFlag = False;
For MainLoop = Length - 1 DownTo Rstren Begin
Condition1 = True;
Condition2 = True;
SHBar = Price;
For value1 = MainLoop - RStren To MainLoop -1 Begin
IF SHBar <= Price Then
Condition1 = False;
End;
IF Condition1 Then Begin
For value1 = MainLoop + 1 To MainLoop + LStren Begin
IF SHBar < Price Then
Condition2 = False;
End;
End Else
Condition2 = False;
IF Condition1 AND Condition2 Then Begin
For count = 50 DownTo 2 Begin
Pivot = Pivot;
End;
Pivot = Price;
PivotFlag = True;
End;
End;
IF PivotFlag AND Pivot <> 0 Then
PivotHighVS = Pivot
Else
PivotHighVS = -1; 回復 5# ilpir
大大~太感謝您了~感恩~有你的指導~感激不盡
~~謝謝您~~{:4_82:} 非常感謝 ilpir 大
code 有點長需要消化一下
頁:
[1]