![]() |
在這個頁面顯示本主題全部的 13 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請教版主大大.................[多空交易範例] (http://www.chiefox.com.tw/bbs/showthread.php?threadid=12439)
請教版主大大.................[多空交易範例]
不好意思!又要再次麻煩版主大大幫忙解疑了,因為小弟想了5天都寫不出來..................................
假設flag=1------->買1口
flag=0,-------->平倉
flag=-1--------->,空1口
flag=0,---------->平倉
假設 A>B------> flag=1(買1口)
50點停利----------->flag=0(停利平倉),直到A<B才再flag=-1(空1 口)
若未到50點跌下來,造成A<B------>flag=-1(反空1 口)
50點停利----------->flag=0(停利平倉)
若未到50點反漲上去,造成A>B------>flag=1(反買1 口)
感謝.感謝.感謝大大...........................
回覆: 請教版主大大.................
引用:
最初由 trtc516 發表
不好意思!又要再次麻煩版主大大幫忙解疑了,因為小弟想了5天都寫不出來..................................
假設flag=1------->買1口
flag=0,-------->平倉
flag=-1--------->,空1口
flag=0,---------->平倉
假設 A>B------> flag=1(買1口)
50點停利----------->flag=0(停利平倉),直到A<B才再flag=-1(空1 口)
若未到50點跌下來,造成A<B------>flag=-1(反空1 口)
50點停利----------->flag=0(停利平倉)
若未到50點反漲上去,造成A>B------>flag=1(反買1 口)
感謝.感謝.感謝大大...........................
[進出] 這變數值代表意義如下:原碼:
多進:=A>B or barpos=0;
空進:=A<B or barpos=0;
進出:C*0;
多空:=0; //1.多 -1.空 0.無
控利:=50; 進價:=0; CC:=C;
進向:=多進-空進;
盈虧:c*0 linethick;
for i= 1 to datacount do begin
if 多空=0 then begin
多空:=進向[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 多空<>進向[i] and 進向[i]<>0 then begin
進出[i]:=-多空*3; 多空:=-多空;
end else if 盈虧[i]>=控利 then begin
進出[i]:=多空*2; 多空:=0;
end;
end;
end;
感謝版主大大!!
不好意思!!看不懂程式,所以就照樣KEY入,但.電腦只會判別0,1,-1
所以小弟最後加上下列式子,但............都沒資料顯示???
FLAG:=if(進出=1,1,FLAG);
FLAG:=if(進出=2,0,FLAG);
FLAG:=if(進出=3,-1,FLAG);
FLAG:=if(進出=-1,-1,FLAG);
FLAG:=if(進出=-2,0,FLAG);
FLAG:=if(進出=-3,1,FLAG);
[進出] 這變數值代表意義如下:
1.多單進場, 2.多控利出, 3.空轉多
-1.空單進場,-2.空控利出,-3.多轉空
回覆: 感謝版主大大!!
引用:
最初由 trtc516 發表
不好意思!!看不懂程式,所以就照樣KEY入,但.電腦只會判別0,1,-1
所以小弟最後加上下列式子,但............都沒資料顯示???
FLAG:=if(進出=1,1,FLAG);
FLAG:=if(進出=2,0,FLAG);
FLAG:=if(進出=3,-1,FLAG);
FLAG:=if(進出=-1,-1,FLAG);
FLAG:=if(進出=-2,0,FLAG);
FLAG:=if(進出=-3,1,FLAG);
[進出] 這變數值代表意義如下:
1.多單進場, 2.多控利出, 3.空轉多
-1.空單進場,-2.空控利出,-3.多轉空
感謝版主大大!!
感謝版主大大!!
因為我有輸出flag 來檢視結果,但都沒圖形顯示???
MA1:=MA(C,90);
多進:=C>MA1 or barpos=0;
空進:= C<MA1 or barpos=0;
進出:=C*0;
多空:=0; //1.多 -1.空 0.無
控利:=30; 進價:=0; CC:=C;
進向:=多進-空進;
盈虧:=c*0 ;
for i= 1 to datacount do begin
if 多空=0 then begin
多空:=進向[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 多空<>進向[i] and 進向[i]<>0 then begin
進出[i]:=-多空*3; 多空:=-多空;
end else if 盈虧[i]>=控利 then begin
進出[i]:=多空*2; 多空:=0;
end;
end;
end;
Flag:=if(進出=1,1,Flag);
Flag:=if(進出=2,0,Flag);
Flag:=if(進出=3,-1,Flag);
Flag:=if(進出=-1,-1,Flag);
Flag:=if(進出=-2,0,Flag);
Flag:=if(進出=-3,1,Flag);
StickLine(Flag=1,-1,1,7,0),Colorred;
StickLine(Flag=-1,-1,1,7,0),Colorgreen;
StickLine(Flag=0,-1,1,7,0),Coloryellow;
問題在於
Flag 變數您尚未定義, 就取用它
Flag:=if(進出=1,1,Flag);
Flag:=if(進出=2,0,Flag);
Flag:=if(進出=3,-1,Flag);
Flag:=if(進出=-1,-1,Flag);
Flag:=if(進出=-2,0,Flag);
Flag:=if(進出=-3,1,Flag);
改為下面這樣即可解決問題
Flag:=C*0;
Flag:=if(進出=1,1,Flag);
Flag:=if(進出=2,0,Flag);
Flag:=if(進出=3,-1,Flag);
Flag:=if(進出=-1,-1,Flag);
Flag:=if(進出=-2,0,Flag);
Flag:=if(進出=-3,1,Flag);
原寫的有錯(漏掉一部份), 更正如下:
原碼:
多進:=A>B or barpos=0;
空進:=A<B or barpos=0;
進出:C*0;
多空:=0; //1.多 -1.空 0.無
控利:=50; 進價:=0; CC:=C;
進向:=多進-空進;
盈虧:c*0 linethick;
for i= 1 to datacount do begin
if 多空=0 then begin
多空:=進向[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 多空<>進向[i] and 進向[i]<>0 then begin
進出[i]:=-多空*3; 多空:=-多空; 進價:=CC[i];
end else if 盈虧[i]>=控利 then begin
進出[i]:=多空*2; 多空:=0;
end;
end;
end;
感謝版主大大.................
MA1:=MA(C,30);
多進:=C>MA1 or barpos=0;
空進:=C<MA1 or barpos=0;
進出:C*0;
多空:=0; //1.多 -1.空 0.無
控利:=50; 進價:=0; CC:=C;
進向:=多進-空進;
盈虧:c*0 linethick;
for i= 1 to datacount do begin
if 多空=0 then begin
多空:=進向[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 多空<>進向[i] and 進向[i]<>0 then begin
進出[i]:=-多空*3; 多空:=-多空; 進價:=CC[i];
end else if 盈虧[i]>=控利 then begin
進出[i]:=多空*2; 多空:=0;
end;
end;
end;
Flag:=c*0;
Flag:=if(進出=1,1,Flag);
Flag:=if(進出=2,0,Flag);
Flag:=if(進出=3,-1,Flag);
Flag:=if(進出=-1,-1,Flag);
Flag:=if(進出=-2,0,Flag);
Flag:=if(進出=-3,1,Flag);
StickLine(Flag=1,-2,2,7,0),Colorred;
StickLine(Flag=-1,-2,2,7,0),Colorgreen;
StickLine(Flag=0,-2,2,7,0),Coloryellow;
感謝版主大大!!
感謝版主大大!!
小弟不知問題出在哪?????????
回覆: 感謝版主大大!!
引用:
最初由 trtc516 發表
感謝版主大大!!
小弟不知問題出在哪?????????
不好意思!麻煩版主大大..................................
不好意思!麻煩版主大大..................................
原由:
假設flag=1------->買1口
flag=0,-------->平倉
flag=-1--------->,空1口
flag=0,---------->平倉
假設 C>MA1------> flag=1(買1口)
50點停利----------->flag=0(停利平倉),直到C<MA1才再flag=-1(空1 口)
若未到50點跌下來,造成C<MA1------>flag=-1(反空1 口)
50點停利----------->flag=0(停利平倉)
若未到50點反漲上去,造成C>MA1------>flag=1(反買1 口)
因為我有輸出flag 來檢視結果,但結果如上圖顯示,都不對,小弟不知錯在哪裡???
Flag:=if(進出=1,1,Flag);
Flag:=if(進出=2,0,Flag);
Flag:=if(進出=3,-1,Flag);
Flag:=if(進出=-1,-1,Flag);
Flag:=if(進出=-2,0,Flag);
Flag:=if(進出=-3,1,Flag);
StickLine(Flag=1,-1,1,7,0),Colorred;
StickLine(Flag=-1,-1,1,7,0),Colorgreen;
StickLine(Flag=0,-1,1,7,0),Coloryellow;
[進出] 這變數值代表意義如下:
1.多單進場, 2.多控利出, 3.空轉多
-1.空單進場,-2.空控利出,-3.多轉空
您設反了
Flag:=if(進出=3,-1,Flag);
Flag:=if(進出=-3,1,Flag);
要改為
Flag:=if(進出=3,1,Flag);
Flag:=if(進出=-3,-1,Flag);
Flag:進向;
//不就是您要的這六行嗎
__________________
就是發蓊梨(ㄛㄥˇ ㄌㄞˊ) 程式交易網站
[教學]指標公式及程式交易系統撰寫 [代工]
學會指標策略程式化的撰寫,將可讓你不再盲目投下辛苦賺來的血汗錢
要知道交易的策略或交易的模式長期執行下確實可獲利
交易才有意義的.否則寧可不交易
| 全部時間均為台灣時間, 現在時間為20:06 | 在這個頁面顯示本主題全部的 13 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.