開拓者 TB實(shí)現(xiàn)以個(gè)簡單的排序功能 [開拓者 TB]
- 咨詢內(nèi)容: 想實(shí)現(xiàn)以個(gè)簡單的排序功能,把5條均線按值的大小再進(jìn)行從大道小的順序從新排序,保存在全局變量中
Params
numeric length(5);
MA1=Average(C,5);
MA2=Average(C,10);
MA3=Average(C,20);
MA4=Average(C,30);
MA5=Average(C,60);
SetGlobalVar(0,MA1);
SetGlobalVar(1,MA2);
SetGlobalVar(2,MA3);
SetGlobalVar(3,MA4);
SetGlobalVar(4,MA5);
// 排序
for i=0 to length-2
{
for j=1 to length-1
{
if (GetGlobalVar(i)<GetGlobalVar(j))
{
intermediate=GetGlobalVar(i);
SetGlobalVar(i,GetGlobalVar(j));
SetGlobalVar(j,intermediate);
}
}
}
PlotNumeric("1",GetGlobalVar(0));
PlotNumeric("2",GetGlobalVar(1));
PlotNumeric("3",GetGlobalVar(2));
PlotNumeric("4",GetGlobalVar(3));
PlotNumeric("5",GetGlobalVar(4));
但輸出的結(jié)果排序結(jié)果經(jīng)常不對,請問是我程序的問題還是什么問題嗎,謝謝 - TB技術(shù)人員: i = 0 to length-2
j = i to length-1
快速排序嘛 - TB客服:
sorakiraa 發(fā)表于 2013-3-25 15:58
i = 0 to length-2
j = i to length-1
謝謝大俠的回復(fù) 試了下 的確這次排序就對了
但不是很明白為什么呀? - 網(wǎng)友回復(fù):
woshibing 發(fā)表于 2013-3-26 08:43
謝謝大俠的回復(fù) 試了下 的確這次排序就對了
但不是很明白為什么呀?
因?yàn)槟闶且汛蟮臄?shù)換到前面來,所以只用將下標(biāo)大于i 的與其比較
比如i=0的一輪過后,最大的已經(jīng)換到0處了,就不需要再將其與后面的比較了
這是個(gè)基本算法。。。應(yīng)該不難理解 - 網(wǎng)友回復(fù):
恩 對的 明白了 謝謝啦
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容