ashell
可以貼圖來看嗎@@
很想看看你的圖片是怎樣的
我剛剛試用之後,完全沒反應
下單大師那邊也是一樣@@
這部份還真需要跟你請益一下。 回復 16# frantz
frantz大:沒有圖喔,那個程式碼只有寫出
1、收盤價大於8000進場
2、左上角有顯示buystop、sellstop、bought、sold這些數值
3、識別碼是test,所以下單大師的識別碼也要是test才能收到單子
以上,您看看如果還有問題,再跟我說。 我這邊試了之後@@
amibroker沒有出現買賣訊息,下單大師那邊也沒有任何訊息接收到@@ 謝謝舞太極大的告知,
找到問題出在哪了,不過再來還要找解決的方法,
因為在一開始設定變數值有指定初使值0,
而在程式全部執行完畢後又從頭開始執行,
這時候滿足買進條件時值被設為1的bought的值又被設為0了,
所以導致原本取得的停損值又被重新設定了一次,
知道問題出在那裏,再來就是要想辦法讓變數的值的初始化只執行一次,
明天想想看要怎麼寫,如果有大大知道怎麼寫的話也請跟小弟說一聲,謝謝。
//初始化下單大師
OMComAPI = CreateStaticObject("OMSignAPI.OMCOMAPI");
OMComAPI.IniDllAndPosition("test", 0);
//設定停損的變數
Buystop=0;
Sellstop=0;
//設定手上是否有單的變數
bought =0;
sold=0;
//加入這一行可以看出值又變為零了
Plot(bought,"\nbought",colorGreen,styleownscale|stylenolabel);
//因為要馬上就可以進場,所以用收盤價大於8000為進場滿足條件
if (LastValue(C>8000) AND bought == 0 )
{
NowDateTime=Now(0);
NowPosition = 1;
NowClose=LastValue(Close);
OMComAPI.GoOrder("test","","NowDateTime",Nowposition,Nowclose);
Buystop=Nowclose-10;
Sellstop=0;
bought=1;
sold=0;
}
//收盤前平倉,或是滿足停損價則平倉
if (LastValue(TimeNum())==134000OR LastValue(Close)==Buystop OR LastValue(Close)==Sellstop)
{
NowDateTime=Now(0);
NowPosition = 0;
NowClose=LastValue(Close);
OMComAPI.GoOrder("test","","NowDateTime",NowPosition,NowClose);
Buystop=0;
Sellstop=0;
bought=0;
sold=0;
}
//把停損價和是否有倉位顯示出來,以便觀察
Plot(Sellstop,"\nsellstop",colorGreen,styleownscale|stylenolabel);
Plot(Buystop,"\nbuystop",colorYellow,styleownscale|stylenolabel);
Plot(bought,"\nbought",colorGreen,styleownscale|stylenolabel);
Plot(sold,"\nsold",colorGreen,styleownscale|stylenolabel); 看來問題是出在你沒有把變數存起來,
如果不關ab就重跑的話,請考慮用StaticVarSet跟StaticVarGet來做,
如果是關ab後重跑的話,請參考底下這篇
http://www.amibroker.org/userkb/2007/04/24/persistent-variables/ 回復 20# cjlin
收到,謝謝告知,目前才處理到沒有關ab的重跑而已,
就已經搞不定了,壓根就沒想到還有關ab重跑的問題,
本來想說只要設個變數就可以解決停損設定的問題
以為很簡單就可以解決,想不到這麼複雜,
當然和自己的不熟練也有關係,
不過在處理的過程中一直學到新的東西,
也很開心,只是對被我麻煩的幾位大大不好意思就是了。 ashell收獲不少喔@@
裡面不少高手潛水中@@
今天又看了一篇完全不了解的文章
看來又需要花時間消化掉了 對啊,寫程式寫不出來真的蠻難受的,
還好有版上的高手可以求助,
真是太感謝幫助過我的各位大大了。 好棒的文章
忍不住想真誠的站起來替你鼓掌
頁:
1
[2]