引用: 751.问: 某年某月某日收市价的公式怎样写? 答(bajatje): w:=barslast(date=日期);2004/10/26写成1041026 ref(c,w); 引用: 752.问: cc:=c; barslast(c=cc[datacount]); barslast(c=cc[datacount-1]); barslast(c=cc[datacount-2]); 能给解释下面几句的含义吗? [datacount] [datacount-1] [datacount-2] 答(hx817): [datacount] 最后一天,倒数第一天 [datacount-1] 倒数第二天 [datacount-2] 倒数第三天 引用: 753.问: 历史最低点和历史次低点的连线 答(南客): 这样的定义?恐怕不符合趋势线的本意吧 fl:=low; pl:=fl; a:=SORTPOS(pl,0,1,datacount); if pl[2]>pl[1] then LINEVALUE(barpos=pl[1],fl[pl[1]],barpos=pl[2],fl[pl[2]],0,0) else LINEVALUE(barpos=pl[2],fl[pl[2]],barpos=pl[1],fl[pl[1]],0,0) 引用: 754.问: 我想从F10搜索出易方达基金管理公司旗下的8只基金,04年第三季的所有持仓品种,公式怎么设计 答(hx817): {基于鹏搏资讯,因为F10资料经常变动,所以在变动后,需要对应调整} {基金代码 184712 184713 500029 500056 110001 110002 110003 110005} jjstar:=F10FIND('十一、基金持股',1);//定位数据开始 jjend:=F10FIND('截止日期:2004-06-30',jjstar);//定位数据结束 jjcg:=F10TEXT(jjstar,jjend-jjstar);//取最新基金持股数据 s1:=STRFIND(jjcg,'184712',1);s2:=STRFIND(jjcg,'184713',1); s3:=STRFIND(jjcg,'500029',1);s4:=STRFIND(jjcg,'500056',1); s5:=STRFIND(jjcg,'110001',1);s6:=STRFIND(jjcg,'110002',1); s7:=STRFIND(jjcg,'110003',1);s8:=STRFIND(jjcg,'110005',1); tj:s1 or s2 or s3 or s4 or s5 or s6 or s7 or s8; (阿耀注:F10 资料必须及时更新) 答(莫大): 是这样子的,还有4个重复代码161101、161102、161103、161104要设进去。这样范围扩大到65个,这基本差不多了。 顺便告诉你们一下,长出来的东西,正在强势的可以短线跟做。已经弱势并且行业受宏观调控引起估值紊乱的,应该剔除,剩下来的再按选股程序选择第三季是增仓的品种(怎么设这个我还没想明白,不过样本少,靠肉眼看看也可以了)。这些品种理论上,未来半年是一定有较大的利润,并且不套人的。 易方达现在是市场最强者,其选股思路及波段策略,远远走在其他机构之前。所以,研究其持仓股指数和持仓品种,比较容易把握市场步调。不过这段时间,基金人才也在流动,湘合及广发的部分基金也延续了强悍基金的风格,可以顺便列入研究。 引用: 755.问: 主图如何显示股票的发行日期? 答(南客): n:=F10FIND('发行日期:',1)+10; str1:=F10TEXT(n,10); drawtext(islastbar,close,'发行日期:\n'+str1),align2; 引用: 756.问: HHV和LLV功能是从当前时间到一定的时间取得最高最低价,如今天是10月1日, HHV(C,60)它是从今天到前60天内取得最高价,但是如果我需要从二天前开始取 60个交易日内取得最高价,应该如何实现呢? 答(bajatje): ref(hhv(h,60),2); [Copy to clipboard]CODE: 757.问: INPUT:X(600,1,3000) VARIABLE:ARR[3000]=0; //为什么日线少于3000 就会 超出有效数据区间? HH:=H*100; LL:=L*100; for j=1 to datacount do for I=LL[i] TO HH[i] do ARR[I]:=ARR[I]+1; a:arr[X]; // 为什么算出来的数值不对? 答(hx817): 计算什么? 从表达式来看,计算出的结果全部是1个值 [/color] 问: 那是算, 价x 在历史日线上出现过多少次 比如 x=631时, 6.31元历史出见多少次 [color=Red] 答(hx817): 那么 for I=LL[i] TO HH[i] do ARR[I]:=ARR[I]+1; 这个循环做什么呢? 是否要改为 for I=LL[j] TO HH[j] do 引用: 758.问: 想请教一下你, ARR[X] 能不能不用循环 把 他所有的值每天* (1-v/ CAPITAL) ? 比如 ARR[600] 第1天的值为1 , 第二的初值为 1*(1-v/ CAPITAL) 答(hx817): 那开始时计算一个 fhs:=1*(1-v/ CAPITAL); 就可以得到每个的值了 [Copy to clipboard]CODE: 759.问: 现在可以用基本函数来模仿 cost 和 WINNER 这两个函数, 但还是有点出入,应是和我的算法不同, 还有就是我编的公式可能用的循环太多,运算起来太慢了, 你希望能再指点一下,如何简化 其实我并不是想模仿cost 和WINNER 这两个函数, 飞狐里有WINNER pWINNER LWINNER 而 没有 Pcost Lcost 想求出 x 天内获利多少 就不行了 我主要的目的是想编 x 天内获利多少 1.请帮我优化下面的公式 INPUT:X(20,1,100); VARIABLE:ARR[3000]=0; HH:=HIGH*100; LL:=LOW*100; VV:=VOL/(HH-LL); co:=0*CLOSE; a:=0*CLOSE; 总量:=0*CLOSE; 当日量:=VOL; 换手率:=VOL/CAPITAL; for j=1 to DATACOUNT do BEGIN 总量[j]:=总量[j-1]*(1-换手率[j])+当日量[j]; //累计总成交 按当天换手衰减 LLL:=LLV(LOW,j)*100; //j点时的历史最低价 HHH:=HHV(HIGH,j)*100; //j点时的历史最高价 for p=LLL[j] to HHH[j] do ARR[p]:=ARR[p] *(1-换手率[j]); //ARR数组每个变量 按当天换手衰减 for I=LL[j] TO HH[j] do ARR[I]:=ARR[I]+VV[j]; //累加 ARR每个变量 for K=lll[j] to HHH[j] do BEGIN co[j]:=co[j]+ARR[k]; a[j]:=k; IF co[j]>总量[j]*x/100 then BREAK; end; end ; 正:COST(x); 模仿 :a/100; 2.模仿 WINNER 函数 VARIABLE:ARR[3000]=0; HH:=HIGH*100; LL:=LOW*100; VV:=VOL/(HH-LL); co:=0*CLOSE; a:=0*CLOSE; 总量:=0*CLOSE; 当日量:=VOL; 换手率:=VOL/CAPITAL; 收:=c; for j=1 to DATACOUNT do BEGIN 总量[j]:=总量[j-1]*(1-换手率[j])+当日量[j]; //累计总成交 按当天换手衰减 LLL:=LLV(LOW,j)*100; //j点时的历史最低价 HHH:=HHV(HIGH,j)*100; //j点时的历史最高价 for p=LLL[j] to HHH[j] do ARR[p]:=ARR[p] *(1-换手率[j]); //ARR数组每个变量 按当天换手衰减 for I=LL[j] TO HH[j] do ARR[I]:=ARR[I]+VV[j]; //累加 ARR每个变量 for K=lll[j] to 收[j]*100 do co[j]:=co[j]+ARR[k]; a[j]:=co[j]/总量[j]*100; end ; 正:WINNER(c)*100; fan :a; 3.这个公式是根据上面的来改动一下,就可以变化为 x天内获利盘多少了 INPUT:X(40,0,100),Y(50,0,100); //X 是获利盘比例 Y 天数 A := X / 100; JL := LLV(L, Y);LL := 0;JH := HHV(H, Y);HH := 1; for i=0 to 6 do BEGIN Z := (JH * (A-LL) + JL * (HH-A))/(HH-LL); W:= lWINNER(Y,Z); JL := IF(W < A, Z, JL); LL := IF(W < A, W, LL); JH := IF(W > A, Z, JH); HH := IF(W > A, W, HH); end 模仿:z; [color=Red] 答(hx817): 这不好再优化,因为这取决于算法 引用: 760.问: 描述: 网上有专门有追涨停的指标,但那个存在一定的值后性。 我的思路是当股票在盘中涨幅超过2%-3.5%左右是即发出信号等于10--20数值, 并且利用飞狐的预警功能实现时时提醒。怎么用飞狐的预警功能实现时时提醒 答(bajatje): w:=barslast(hour<ref(hour,1));< p=""> LL:=LLv(L,w); (c/LL>1.02 and c/LL<1.035)*10; 引用: 761.问: 怎么过滤信号(笑脸) MA1:MA(CLOSE,5); MA2:MA(CLOSE,10); MA3:MA(CLOSE,20); MA4:MA(CLOSE,30); DRAWICON(ma1>ma2,ma2,1); 过滤信号(笑脸),只求第一个; 答(hx817): DRAWICON(ma1>ma2,ma2,1); 改为 DRAWICON(cross(ma1,ma2),ma2,1); 引用: 762.问: 如何自动计算30日最高价格,递减0.382元,至低于30日最低价格之间的所有位置, 答(yngs): 30日最高价格 hhv(h,30); 递减0.382元 0.382*hhv(h,30); "至低于30日最低价格之间的所有位置"不理解 引用: 763.问: 期货持仓量现在飞狐提供的是柱状的图,我很不习惯.怎么能给它变成一根线的图? 原来的公式是: OPENINT,VOLSTICK; //MA1:MA(OPENINT,N1); //MA2:MA(OPENINT,N2) 答(hx817): 是的,将 ,VOLSTICK 去掉 [Copy to clipboard]CODE: 764.问: 第一部分:实现2日平均价 fc:=close; for i=2 to datacount do ma2[i]:(fc[i-1]+fc[i])/2; 这个容易实现 第二部分:实现第2天到第5天的平均价; fc:=close; for i=i+1 to i=i+4 do ma5[i]:(fc[i+1]+fc[i+4])/4; 则不显示,错在哪里? 答(hx817): i 的循环范围不对 fc:=close; for i=5 to datacount do begin //方法一,输出 ma2 为 5日平均值 ma2[i]:(fc[i-4]+fc[i-3]+fc[i-2]+fc[i-1]+fc[i])/5; //方法二,输出 ma3 为 5日平均值 s:=0; for j=0 to 4 do s:=s+fc[i-j];//循环叠加 5 个 fc 值 ma3[i]:s/5; end; 问: 我要求的是从第二根K线到第5根K线的平均值的,而不是从一开始,否则这个问题就简单了 答(hx817): 一样的道理呀 fc:=c; //方法一 (fc[2]+fc[3]+fc[4]+fc[5])/4; //方法二 s:=0; for j=1 to 4 do s:=s+fc[j+1]; ma3:s/4; 问: 五天问题好解决, fc:=close; for i=5 to datacount do begin //方法一,输出 ma2 为 5日平均值 ma2[i]:(fc[i-4]+fc[i-3]+fc[i-2]+fc[i-1]+fc[i])/5; end; 如果我的i要取50天的,那么后面的ma2不很麻烦 fc:=close; for i=50 to datacount do begin ma2[i]:(fc[i-49]+fc[i-48]+fc[i-47]......+fc[i-1]+fc[i])/49; end; 这时又应该如何写? 答(hx817): 当然是 1 个值啦,你不是求 2-50 共 49个的平均值么? fc:=close; for i=50 to datacount do begin s:=0; for j=0 to 48 do s:=s+fc[i-j];//循环叠加 49 个 fc 值 ma3[i]:s/49; end; 问: 这样写是不是还是比较笨 fc:=close; for i1=50 to datacount do begin s1:=0; for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 fc 值 ma3[i1]:s1/49; end; for i2=25 to datacount do begin s2:=0; for j2=5 to 25 do s2:=s2+fc[i2-j2];//循环叠加80 个 fc 值 ma4[i2]:s2/19; end; 象一般ma(c,30); ma(c,40); ma(c,60); ma(c,90); 这样多方便? 答(hx817): 这只是循环的一种运用 再试试,用参数来计算任意周期的平均 也就是你上面的2次循环(i1,i2),这样只需要调整参数即可计算不同的值 问: 我知道,你的意思是说通过上面的参数1-4这里来调整i1,i2,那个很简单的,我会,但是我的本意还不是这个,我的意思是说还是要通过循环嵌套来实现,这样的话公式就很精练了,否则按上面的我觉得还是重复运算很多的。 答(hx817): 你可以用判断语句来让大的循环只运行一次,比如 fc:=close; for i1=1 to datacount do begin if i1>=50 then begin s1:=0; for j1=2 to 50 do s1:=s1+fc[i1-j1];//循环叠加 49 个 fc 值 ma3[i1]:s1/49; end; if i1>=25 then begin s2:=0; for j2=5 to 25 do s2:=s2+fc[i1-j2];//循环叠加 19 个 fc 值 ma4[i1]:s2/19; end; end; 答(南客): 你在这里的代码,就已经有问题了,不符合求平均值(ma函数)的愿意,这些基本的代码要搞清楚,基础不扎实,接下去会越搞越乱。 1、代码的缩格要清楚,这样程序代码才层次分明。否则别说是初学者,就算我来看代码,也是头大。 2、里面的 j1 循环,还有 j2 循环,起点、终点对吗? [Copy to clipboard]CODE: 765.问: {fv:=v;ma2:=0*c; x:=SETLBOUND(ma2,2); for i=datacount downto 2 do {i终点已经是2了,干吗还用SETLBOUND来控制呢?} ma2[i]:(fv[i-1]+fv[i])/2; Fc:=close;} {ll:=l;x:=ll[1]; For i=1 to datacount do if x>=ll[i] then x:ll[i];{用这种解法怎么出来是单值?把X变成序列变量怎么写?} For i=2 to datacount do LL[I]:MIN(LL[I],LL[I-1]);} 答(hx817): 1、去掉 x:=SETLBOUND(ma2,2); 看看输出是什么结果就知道了 2、因为前面你定义了 x: 为单值 [Copy to clipboard]CODE: 766.问: 好象没有 if then elseif这个函数吧,假如有,那么会更加简单的 答(hx817): 试试爬台阶 fc:=0*c; for i=1 to DATACOUNT do begin if i<25 then fc[i]:=1 else if i<50 then fc[i]:=2 else if i<100 then fc[i]:=3 else fc[i]:=4;; end; fc; 所属类别: 控制语句 参数数量: 0 IF条件语句 语法:IF cond THEN expr1 ELSE expr2 当满足 cond 条件的时候,执行语句 expr1,否则执行 expr2 语句 [Copy to clipboard]CODE: 767.问: 数组下标越界或者超过指数区间?错在哪里? fc:=(H+L)/2; for i=1 to datacount do begin s:=0; for j=2 to 25 do fc:=s+fc[i-j]; if i<25 then ma1[i]:=fc/2; else if i<50 then ma2[i]:=fc/5; else if i<80 then ma3[i]:=fc/8; else ma4[i]:=fc/10; end; ma4[i]; 答(南客): 这里,出错在 fc[i-j],想想看,i=1的时候,i-j 有可能等于什么值? 你的这段代码,已经在用 else if 这样的嵌套了,我稍加缩格排版后,就是这样了: fc:=(H+L)/2; for i=1 to datacount do begin s:=0; for j=2 to 25 do fc:=s+fc[i-j]; if i<25 then ma1[i]:=fc/2; else if i<50 then ma2[i]:=fc/5; else if i<80 then ma3[i]:=fc/8; else ma4[i]:=fc/10; end; ma4[i]; [Copy to clipboard]CODE: 768.问: 循环、判断等控制语句作个类似薛师通道 [color=Red] 答(老实和尚): fc:=c; for i1=13 to datacount do begin s1:=0; for j1=2 to 13 do s1:=s1+fc[i1-j1];//循环取得第2根K线到第13根K线的值 ma1[i1]:s1/10.8; end; for i2=25 to datacount do begin s2:=0; for j2=12 to 25 do s2:=s2+fc[i2-j2];//循环取得第12根K线到第25根K线的值 ma2[i2]:s2/15.2; end; for i3=58 to datacount do begin s3:=0; for j3=35 to 58 do s3:=s3+fc[i3-j3];//循环取得第35根K线到第58根K线的值 ma3[i3]:s3/24; end; 引用: 769.问: fm:ma(c,50),为什么起始下标不是从1开始,而是从5开始? 我想知道K线图上倒数第2根K线对应的5日均价怎么写公式代码 答(lhl311): fm:ma(c,50),第50天才有,当然第50天才开始 ; fm:ma(c,5),第5天才有;当然第5天才开始 因为MA5:=(第1天收盘假+第2天收盘假+第3天收盘假+第4天收盘假+第5天收盘假)/5; 引用: 770.问: 主图有解盘、副图有解盘,“一个不能少”,但是太多了,显示不下, 后面的因吃在屏幕下方而看不到。解盘的显示框能否分屏显示(PAGE-UP 、PAGE-DOWN)? 答(hx817): 目前不行 可拖动左右的显示宽度查看 引用: 771.问: 飞狐有个大手笔之差选股条件,就是100手以上主动买之和减100手以上主动卖之和, 我想把它变成副图指标,用柱状表示,正值在0轴之上红色,负值在0轴之下蓝色,如果可以的话, k线是阴(阳),大手笔差是正(负),柱状用白色. 答(kjyhao): 你说的公式是可以的,但重要的是要用到"分笔数据",这就要: 一;保持有足够的"分笔数据",以保证数据的准确性;(这是比较麻烦的事); 二;建立扩展数据库,以保存数据被随时调用; 以上两个条件满足了,就可做你说的公式了; 引用: 772.问: 想编一个解盘指标,具体的想法是根据每天开盘后半小时的高低点做黄金分割 比如说今天开盘后30分钟的最高价为10.5元,30分钟的最低价为10元。在解盘里面显示10--》10.5的黄金分割的点位 阻力位的计算公式为:开盘30分钟低点+[(开盘30分钟高点-开盘30分钟低点)×{0.328或0.333、0.5、0.618或0.666}] 支撑位计算公式为:开盘30分钟高点-[(开盘30分钟高点-开盘30分钟低点)×{0.328或0.333、0.5、0.618或0.666}] 答(hx817): 参考 公式取数据周期当日第一个K线值为计算,切换不同数据周期,结果不同,按照前面思路,切换为30分钟线即可} aa:=BARSLAST(DAY<>REF(DAY,1)); hh:=REF(HIGH,aa);ll:=REF(LOW,aa); 阻力1:ll+(hh-ll)*0.328;阻力2:ll+(hh-ll)*0.5;阻力3:ll+(hh-ll)*0.618; 支撑1:hh-(hh-ll)*0.328;支撑2:hh-(hh-ll)*0.5;支撑3:hh-(hh-ll)*0.618; EXPLAINEX(1,'阻力位价一:',阻力1,3,0),COLORGREEN; EXPLAINEX(1,'阻力位价二:',阻力2,3,0),COLORGREEN; EXPLAINEX(1,'阻力位价三:',阻力3,3,1),COLORGREEN; EXPLAINEX(1,'支撑位价一:',支撑1,3,0),COLORRED; EXPLAINEX(1,'支撑位价二:',支撑2,3,0),COLORRED; EXPLAINEX(1,'支撑位价三:',支撑3,3,0),COLORRED; 引用: 773.问: 能把dll的代码发给我学习一下吗 答(股市骑兵00): 这是一段其他朋友帮我写的,他说是用我公式思路改的,速度也慢的,我也看不懂给你参考了 __declspec(dllexport) int WINAPI TEST(CALCINFO* pData) { if(pData->m_pfParam1 && pData->m_nParam1Start<0 && pData->m_pfParam2==NULL && pData->m_dataType==2) { #define w3(i) pData->m_pDataEx.m_fSellPrice[2] #define w2(i) pData->m_pDataEx.m_fSellPrice[1] #define w1(i) pData->m_pDataEx.m_fSellPrice[0] #define w3v(i) pData->m_pDataEx.m_fSellVol[2] #define w2v(i) pData->m_pDataEx.m_fSellVol[1] #define w1v(i) pData->m_pDataEx.m_fSellVol[0] #define m3(i) pData->m_pDataEx.m_fBuyPrice[2] #define m2(i) pData->m_pDataEx.m_fBuyPrice[1] #define m1(i) pData->m_pDataEx.m_fBuyPrice[0] #define m3v(i) pData->m_pDataEx.m_fBuyVol[2] #define m2v(i) pData->m_pDataEx.m_fBuyVol[1] #define m1v(i) pData->m_pDataEx.m_fBuyVol[0] float hwv[pData->m_nNumData]; float hmv[pData->m_nNumData]; float zdz[pData->m_nNumData],zxz[pData->m_nNumData]; int i,j,k; int nParam1,nParam2; int nLast =pData->m_nNumData-1; nParam1 = (int)(*pData->m_pfParam1); nParam2 = (int)(*pData->m_pfParam2); if(nParam2>nLast) nParam2=nLast; for(i=0; i<=nLast; i++) { zdz=0; zxz=9999999; if(zdz<w1(i)) zdz="w1(i); " ="" if(zdz<w2(i))="" if(zdz<w3(i))="" if(zdz<m1(i))="" if(zdzw2(i) && w2(i)) zxz=w2(i); if(zxz>w3(i) && w3(i)) zxz=w3(i); if(zxz>m1(i) && m1(i)) zxz=m1(i); if(zxz>m2(i) && m2(i)) zxz=m2(i); if(zxz>m3(i) && m3(i)) zxz=m3(i); zdz+=0.004; zxz-=0.004; hwv=0; hmv=0; if(i<=nParam2) { if(nParam1==1) { for(j=i-1; j>=0; j--) { if(w1(j)>zdz) { hwv+=w1v(j); for(k=i; k>j; j--) { if(w1(j)zdz) { hwv+=w2v(j); for(k=i; k>j; j--) { if(w2(j)zdz) { hwv+=w3v(j); for(k=i; k>j; j--) { if(w3(j)=0; j--) { if(m1(j)j; j--) { if(m1(j)>zxz[k]) { hmv-=m1v(j); break;}}} if(m2(j)j; j--) { if(m2(j)>zxz[k]) { hmv-=m2v(j); break;}}} if(m3(j)j; j--) { if(m3(j)>zxz[k]) { hmv-=m3v(j); break;}}} } } } hwv+=w1v(i)+w2v(i)+w3v(i); hmv+=m1v(i)+m2v(i)+m3v(i); if(nParam1==0) *(pData->m_pResultBuf+i)=*(hmv+i); else pData->m_pResultBuf=*(hwv+i); } return 0; } return -1; } 引用: 774.问: 我看到这样一原码公式。我用了一段时间以后发现很有特点。它解盘中的百分比很有提示作用。 我想搞一个区间统计,但没有办法选出各类区间的股票。如选出区间为40%-45%的。 不知道有没有办法实现。你能帮忙看看吗 m1:=ma(c,5); p1:ln(m1+1/m1); pp:hhv(p1,0); qq:llv(p1,0); qq1:qq+(pp-qq)*n1; qq2:qq+(pp-qq)*n2; qq3:qq+(pp-qq)*n3; pp1:qq+(pp-qq)*n4; pp2:qq+(pp-qq)*n5; ba1:= p1=qq; ba2:=100*count(c>ref(c,3) and ba1,0)/count(ba1,0); explainex(ba1,'p1在这个区间三天后上涨的几率为:百分之',ba2,1,4); ba11:= p1>qq and p1<qq1;< p=""> ba21:=100*count(c>ref(c,3) and ba11,0)/count(ba11,0); explainex(ba11,'p1在这个区间三天后上涨的几率为:百分之',ba21,1,4); ba111:= p1>qq1 and p1<qq2;< p=""> ba211:=100*count(c>ref(c,3) and ba111,0)/count(ba111,0); explainex(ba111,'p1在这个区间三天后上涨的几率为:百分之',ba211,1,4); ba1111:= p1>qq2 and p1<qq3;< p=""> ba2111:=100*count(c>ref(c,3) and ba1111,0)/count(ba1111,0); explainex(ba1111,'p1在这个区间三天后上涨的几率为:百分之',ba2111,1,4); ba11111:= p1>qq3 and p1<pp1;< p=""> ba21111:=100*count(c>ref(c,3) and ba11111,0)/count(ba11111,0); explainex(ba11111,'p1在这个区间三天后上涨的几率为:百分之',ba21111,1,4); ba11112:= p1>pp1 and p1<pp2;< p=""> ba21112:=100*count(c>ref(c,3) and ba11112,0)/count(ba11112,0); explainex(ba11112,'p1在这个区间三天后上涨的几率为:百分之',ba21112,1,4); ba11113:= p1>pp2 and p1<pp;< p=""> ba21113:=100*count(c>ref(c,3) and ba11113,0)/count(ba11113,0); explainex(ba11113,'p1在这个区间三天后上涨的几率为:百分之',ba21113,1,4); ba11114:= p1=pp; ba21114:=100*count(c>ref(c,3) and ba11114,0)/count(ba11114,0); explainex(ba11114,'p1在这个区间三天后上涨的几率为:百分之',ba21114,1,4); 参数: N1:0.172 N2:0.383 N3:0.5 N4:0.618 N5:0.7 答(hx817): 根据 ba*** 来选股 引用: 775.问: macd和价格的的底背离选股公式怎么作啊 答(yngs): A:=BARSLAST(ref(cross("macd.diff","macd.dea"),1)); B:=ref(c,A+1)>c and ref("macd.diff",A+1)<"macd.diff" and cross("macd.diff","macd.dea"); MACD底背离:FILTER(B>0,5); 引用: 776.问: sin(x);cos(x);tan(x);asin(x);acos(x);atan(x); 这些函数没有示例,请给个简单的示例;学习一下 答(hx817): 数学标准函数,高中数学 如 第四章 三角函数 一、角的概念的推广 一、目的要求 1.理解任意角的概念。 2.学会建立直角坐标系讨论任意角,判断象限角,掌握终边相同角的集合的书写。 二、内容分析 1.初中阶段角的范围的研究仅局限于0度到360度的角,本节将在此基础上把角的概念扩展到任意角,有正角、负角及零角之分。这在数学认识上是一个飞跃。 实际上正与负是相对的,而零则介于它们之间。以实数轴为例,原点为零,原点向左数的数是负数,而原点向右数的数是正数。一般地,负数所表示的代数意义或几何意义与正数所表示的代数意义或几何意义恰好相反,因此在本节教学中,可以运用与上相似的对比法,讲解正角、负角以及零角的定义,并指出它们在日常生产、生活中的实际几何意义,有助于加深对正角、负角以及零角的理解。 2.象限角是本节的重要概念之一,关于象限的划分在初中已学习过,在这里有必要再强调一下。研究象限角的关键是平面直角坐标系的建立方法——角的顶点与坐标原点重合,角的始边与X轴的非负半轴重合,不能说成是与x轴的正半轴重合,不能说成是与x轴的正半轴重合,因为正半轴不包括原点,就不完全包括角的始边,角的始边是以角的顶点为其端点的射线。 3.终边相同角的集合的书写是本节的难点,也是学好三角函数这一章最主要的基本技能。为了更好地掌握它,更深刻地理解它,可以从“数”到“形”或“形”到“数”两个方面去研究。 ①从“形”到“数”的研究: 按逆时针方向角α终边转一周与角α原终边重合,此时角β=α+360度;按顺时针方向角α终边转一周与角α原终边重合,此时角β=α-360度;如此类推,有角β=α+k·360度(k∈Z)。 ②从“数”到“形”的研究: 当k=1时,角β=α+360度,表示角α的终边按逆时针方向转一周与原角α终边重合,其角的度数增大;当k=-1时,角β=α-360度,表示角α的终边按顺时针方向转一周与原角α终边重合,其角的度数减小。在角β=α+k·360度(k∈Z)中,当k>0,表示角α终边按逆时针旋转;当k<0,表示角α终边按顺时针旋转。 4.终边相同角的集合的书写,应当包括两种基本情况: ①象限角; ②非象限角,也就是终边落在x轴和y轴上的角,其详细研究写在下课时。 三、教学过程 1、提出问题 (为了更好地表现如下问题,有条件的学校可以使用多媒体辅助教学,让角β集合实际化、形象化。) ①初中所学角的范围。 ②花样游泳中,运动员旋转的周数如何用角度计算来表示? ③汽车在前进和倒车中,车轮转动的角度如何表示才比较合理? ④工人师傅在拧紧或拧松螺丝时,转动的角度如何表示比较合适? 2.组织讨论,发表己见,得出角的概念的推广等有关概念 在这里把正角与汽车前进、螺丝拧紧等相联系;负角与汽车倒车,螺丝拧松等相联系;零角与汽车静止、螺丝不动等相联系,还可让学生举出更多日常生活中的实际例子。 3.象限角的产生 (可采用多媒体辅助教学) ①复习提问直角坐标系中的象限是如何划分? ②按规定,使角的顶点与直角坐标系原点重合,角的始边与x轴的非负半轴重合,那么角的终边落在第几象限,就叫做第几象限角。 ③可问:当角的终边不落在象限内,这样的角叫做什么角? 4.终边相同角的集合的书写 遵守由特殊到一般的思维规律,让学生观察、联想,得出规律后,归纳集合书写, ①用多媒体投影(应具有动感)课本图4—3(l)中与30度终边相同的角。 Ⅰ.投影表示按逆时针方向旋转一周,得出k=1时,有390度=30度+360度。 Ⅱ.投影表示按顺时针方向旋转一周,得出k=-l时,有-330度=30度-360度。 ②用多媒体再现k=±2,k=±3…时的角的大小,得出集合,30度+k·360度,k∈Z。 ③把30度换成α,得出终边相同角的集合。 S={β|β=α+k·360度(k∈Z)} 引用: 777.问: 每月第N个交易日 答(南客): 参考如下: tj:=month<>ref(month,1); ts:barslast(tj)+1; 引用: 778.问: 不知每一周的第几天如何编写? 答(hx817): tj:=WEEKDAY<ref(weekday,1);< p=""> ts:barslast(tj)+1; 答(南客): 停牌时间久的话,的确有可能会出错 我上面的代码要准确的话,修正如下: tmp:=intpart(date/100); tj:=tmp<>ref(tmp,1); ts:barslast(tmp); “每一周的第几天如何编写?” 参考如下: tj:=weekday-ref(weekday,1)<>DATEDIFF(ref(date,1),date); ts:barslast(tj)+1; 引用: 779.问: 那我刚帮朋友写了个,真实月均线变化(不含未来数据)那也错啦! 我改到飞狐里改不好,请二位老师有空看看! 分析家我会源码: FXJ日线图任意月均线真实变化} INPUT:N(3);{均线月数调节} xx:=MONTH<>ref(MONTH,1);a:=0; yy:=sum(xx,0)-n+1;yy1:=sum(xx,0); for i=1 to BARPOS-1 do if ref(yy1,i)=yy then begin a:=i; break; end; if n-2<yy1 then="" 月均线:if(a=0,(sum(xx*ref(c,1),a)+c)/n,(sum(xx*ref(c,1),a+1)+c)/n); 飞狐改了不对源码: {日线图任意月均线真实变化} INPUT:N(3);{均线月数调节} xx:=MONTH<>ref(MONTH,1);a:=0*c; yy:=sum(xx,0)-n+1;yy1:=sum(xx,0); for j=2 to DATACOUNT do for i=j-1 downto 1 do if yy1=yy[j] then begin a[j]:j-i; break; end; //if n-2<yy1 then="" 这里不算,上面越界! //月均线:if(a=0,(sum(xx*ref(c,1),a)+c)/n,(sum(xx*ref(c,1),a+1)+c)/n); 答(南客): MONTH<>ref(MONTH,1); 这行语句,在特殊情况下会判断出错,比如某股,去年6月2日开始停牌,今年6月2日(或今年6月的某天)开始复牌 这类问题,可以不用循环,参考sumbars()函数的用法。 if yy1=yy[j] then 这行语句,你推敲一下,循环的时候,最小 i 等于多少?假如 i 最小的时候是i=1,那么yy1[1]是否可以?为什么? 前面你实际上已经考虑到了 j 应该从2开始循环,但忘了还要考虑 j 的起始循环位置。 当 J=1 时,I=>J-1=>1,这时,yy1[I]就是yy1[1],而yy1这个序列变量(数组)的有效起始位置是从第2根K线开始的。 你上面循环代码中的 a ,大概是这样的吧: a:=sumbars(xx,n-1); (阿耀用骑兵话代注:lbound()函数,前几天看您在创幻答题用过的,我没想到YY1[1]不存在的。 飞狐公式写法要求严谨功能强,分析家要求马虎功能也弱。 平时马虎贯了,到了飞狐里就出错了 ) 引用: 780.问: 我这个公式怎么不过关啊? QQ:=IF((REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))-(ASKVOL(1)+ASKVOL(2)+ASKVOL(3))>=0,(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))-(ASKVOL(1)+ASKVOL(2)+ASKVOL(3)),0); AA:=IF((REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))-(ASKVOL(1)+ASKVOL(2)+ASKVOL(3))<=0,close,0); new:SUM(QQ+AA),0); 答(hx817): new:SUM(QQ+AA,0); CODE: 781.问: 求得一个数据 我要求得一个数据, X=(REF(X,1)+C)/2; 假定某一支股票,从它上市第一天开始计算。 因为第一天没有REF(X,1),用X=(C+O)/2来替代。 假定第一天C=10,O=8,则第一天的X=(10+8)/2=9, 第二天C=12,X=(REF(X,1)+C)/2=(9+12)/2=10.5, 第三天C=14,X=(REF(X,1)+C)/2=(10.5+14)/2=12.25, 第四天C=16,X=(REF(X,1)+C)/2=(12.25+16)/2=14.125, 以后以此類推。 实际上就是用X来替代O,(因为第一天没有REF(X,1),则O=X)请教如何把数据转换过来,我对控制语句函数实在是一窍不通。 答(hx817): 表达式有了,直接用 x 替换 o 来画 K 线 x:if(BARPOS=1,(C+O)/2,(REF(X,1)+C)/2); 问: 我是想编写一个操盘线的指标,计算的方式如上所述 因为第一天的X是从(C+O)/2而来的,所以REF(X,1)就是上一天的(C+O)/2,画操盘线的规则是,第一天只能从C----O处画线,第二天从第一天的X----C处画线,第三天开始从第二天的(X+C)/2----C处画线,以后以此類推 答(hx817): fc:=CLOSE;fo:=OPEN; for i=1 to DATACOUNT do begin if i=1 then x[i]:=(fc[i]+fo[i])/2; if i>1 then x[i]:=(x[i-1]+fc[i])/2; end; x; [Copy to clipboard]CODE: 782.问: 能否把您的源码仔细地解释一下 fc:=CLOSE;fo:=OPEN; for i=1 to DATACOUNT do begin if i=1 then x[i]:=(fc[i]+fo[i])/2; if i>1 then x[i]:=(x[i-1]+fc[i])/2; end; x; 答(hx817): fc:=CLOSE;//收盘价赋值给 fc ,为数组准备 fo:=OPEN;//同上 for i=1 to DATACOUNT do begin //循环从 1 到最后一个 K 线 if i=1 then x[i]:=(fc[i]+fo[i])/2; //判断是否第一根 K 线,如果是,处理第一个数据,即 x[1]=(fc[1]+fo[1])/2=第一个收盘价+开票价除2 if i>1 then x[i]:=(x[i-1]+fc[i])/2;//除了第一根 K 线以后的算法 end; x;//所有数据计算后在 x[i] 的数组,就是 x 的序列变量 [Copy to clipboard]CODE: 783.问: 请教,[i-1]中的-1是表示什么意思?(是减去第一根K线吗?) 答(hx817): 当 i=2 时 if i>1 then x[i]:=(x[i-1]+fc[i])/2; 就是 x[2]=(x(1)+fc[2])/2 i-1 就是取前一个数据 引用: 784.问: 申明250天线不存在,怎么编写 答(股市骑兵00): 不知这样可以吗? BARPOS<250; 引用: 785.问: 能否将每天的分时均价编成曰k线的形式连接起来 答(bajatje): 分时相当于1分钟。。。 要分两步 1、建名为 fj 的公式 w:=barslast(hour<ref(hour,1));< p=""> jc:sum(amount,w)/sum(v,w)/100; jo:ref(amount,w)/ref(v,w)/100; jh:hhv(jc,w); jL:LLv(jc,w); 2、另建公式 jc:=STKINDI('','fj.jc',0,1); jo:=STKINDI('','fj.jo',0,1); jh:=STKINDI('','fj.jh',0,1); jL:=STKINDI('','fj.jL',0,1); STICKLINE(jc>jo or (jc=jo and jc>ref(jc,1),jh,jL,0.1,0),colorred; STICKLINE(jc>jo or (jc=jo and jc>ref(jc,1),jo,jc,6,0),colorred; STICKLINE(jc<jo or="" (jc="jo" and="" jc<ref(jc,1),jh,jl,0.1,0),colorcyan; STICKLINE(jc<jo or="" (jc="jo" and="" jc<ref(jc,1),jo,jc,6,0),colorcyan; 引用: 786.问: 我想将如图中的分时均价线编制成日k线形态,因为一天中的均价有开盘.最高.最低.收盘。将图中绿色均天变成分析中的曰k线。 答(bajatje): 均价K线需要有足够的1分钟数据(天数) K线.ALG 引用: 787.问: 我想对当天和昨天的量进行提取处理(只要后2位) 我编的语句电脑不认 请帮忙编一下 最好把头一天的量也能进行处理 答(kjyhao): 改了一下,通过了;但你的思路我不太清楚 a:=FRACPART(DYNAINFO(47)/100)*100; B:=FRACPART(DYNAINFO(33)/100)*100; a1:=(A-FLOOR(A))*10; A2:FLOOR(a); B1:=(B-FLOOR(B))*10; b2:FLOOR(B1); 引用: 788.问: 1.请帮忙分别写出分时图上的均价线上方和下方的成交量公式,要求能在日线显示。 2.某条均线今天处于向下(下跌)例如30均线吧。股价上涨几天使均线走平或向上,这个公式怎样写。 答(清扬): 1、 先建立一个公式,比如是TEST2,公式内容为: A:=OPENMINUTES(TIME); B:=SUM(V*C,A)/SUM(V,A); JX:=IF(B=0,C,B),COLORYELLOW; D:SUM((C>JX)*V,A); //均线上方成交量 E:SUM((C<jx)*v,a); 均线下方成交量。 //两者相加未必是全天的成交量,因为没有考虑相等的情况。 以上公式是被引用的,可在一分钟K线中观察输出。 然后建立公式: A:=STKINDI(STKLABEL,'TEST2.D',0,1); B:=STKINDI(STKLABEL,'TEST2.E',0,1); 均线上方成交量:A,LINETHICK0; 均线下方成交量:B,LINETHICK0; STICKLINE(A>0,0,A,3,0),COLORRED; STICKLINE(B>0,0,-B,3,0),COLORCYAN; //在日K线中显示。 这样一分钟K线保存了几天,就显示几天。如果想显示多天,也可以用第一个公式来建立扩展数据,每天保存,第二个公式就要作相应修改。 2、 均线走平或向上: A:=MA(C,30); A>=REF(A,1); 至于前面拐头在前几天等情况,要视具体而定。 引用: 789.问: 怎样在以下公式内加入可条件选股的内容(或改写成可以预警的指标公式)。 要求:1 当股价上穿XX时发出买入信号。 2 当股价下穿YY时发出买出信号。 {Pivot Point Channe , PPC , 基准点信道} XA:=REF(H, 1)>H and REF(H , 1)>REF(H , 2) ; XB:=REF(H , 1)>H and REF(H , 1)=REF(H , 2) and REF(H , 2)>REF(H , 3) ; XC:=REF(H , 1)=H and REF(H , 1)<ref(h ,="" 2)="" ;="" X:=XA+XB+XC ; XR:=BARSLAST(X),LINETHICK0; XS:=REF(High,1); XT:=REF(XS,XR); XX:REFX(XT,1); {峰位} YA:=REF(L , 1)<l and="" ref(l="" ,="" 1)<ref(l="" 2)="" ;="" YB:=REF(L , 1)<l and="" ref(l="" ,="" 1)="REF(L" 2)="" 2)<ref(l="" 3);="" YC:=REF(L , 1)=L and REF(L , 1)<ref(l ,="" 2)="" ;="" Y:=YA+YB+YC; YR:=BARSLAST(Y),LINETHICK0; YS:=REF(Low,1); YT:=REF(YS,YR); YY:REFX(YT,1); {谷位} GG:=" kkk20.情況A " ; HH:=" kkk20.情況B " ; X:=BarsLast( HH>=2 ) ; Y:=BarsLast( GG>=1 ) ; SG:=IF( GG>=1 , SUM( GG , X ) , 0 ) ; SH:=IF( HH>=2 , SUM( HH , Y ) , 0 ) ; DRAWICON(sg=1,l,4); DRAWICON(sh=2,h,5); 答(hx817): 别名: 交叉函数 所属类别: 逻辑函数 参数数量: 2 两条线交叉。 用法: CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0 例如: CROSS(MA(CLOSE,10),MA(CLOSE,20))表示10日均线与20日均线交金叉 1 当股价上穿XX时发出买入信号。CROSS(CLOSE,XX) 2 当股价下穿YY时发出买出信号。CROSS(YY,CLOSE) 引用: 790.问: 能涨多少公式 ? 答(pengyou): Var1:=ABS(l-REF(CLOSE,P1)); Var2:=MA(VOL,P1)/capital; Var3:=Var1/CLOSE*10; Var4:=Var3/Var2; Var5:=ABS(l-REF(CLOSE,P1+P2)); Var6:=Var5/CLOSE*10; Var7:=Var6/Var2; L1: Var7*Var4*10; L2: EMA(L1,10)*1.5; 引用: 791.问: 该公式为何不能输出股票代码(作文件名),输出的文件名为当天日期 使用版本:3。0。40208试用版 源码: var1:=c;//成交价 var2:=vol;//成交量 var3:=ISBUYORDER;//是否主动性买单 var4:=STRTONUM(STKLABEL);//ZQDMNUM; var5:=date; var6:=time; <% v1=FFL.VarData("var1") v2=FFL.VarData("var2") v3=FFL.VarData("var3") vCode=FFL.VarData("var4") v5=FFL.VarData("var5") v6=FFL.VarData("var6") dim fso,txtf filename="e:\data\" & cstr(vCode(1)) & ".txt" Set fso = CreateObject("Scripting.FileSystemObject") if fso.FileExists(FileName) then iomode=8 create=False Set txtf=fso.OpenTextFile(FileName,iomode,create) else iomode=2 create=True Set txtf=fso.OpenTextFile(FileName,iomode,create) end if for i=0 to ubound(v1) s=cstr(date) & " " & cstr(v5(i)) & " " & cstr(v1(i)) & " " & cstr(v2(i)) & " " & cstr(v3(i)) txtf.WriteLine(s) s="" next txtf.close %> var4:1 答(南客): 试试: var1:c;//成交价 var2:=vol;//成交量 var3:=ISBUYORDER;//是否主动性买单 var4:=STKLABEL;//ZQDMNUM; var5:=date; var6:=time; <% v1=FFL.VarData("var1") v2=FFL.VarData("var2") v3=FFL.VarData("var3") vCode=FFL.VarData("var4") v5=FFL.VarData("var5") v6=FFL.VarData("var6") dim fso,txtf filename="e:\data\" & vCode & ".txt" Set fso = CreateObject("Scripting.FileSystemObject") if fso.FileExists(FileName) then iomode=8 create=False Set txtf=fso.OpenTextFile(FileName,iomode,create) else iomode=2 create=True Set txtf=fso.OpenTextFile(FileName,iomode,create) end if for i=0 to ubound(v1) s=cstr(date) & " " & cstr(v5(i)) & " " & cstr(v1(i)) & " " & cstr(v2(i)) & " " & cstr(v3(i)) txtf.WriteLine(s) s="" next txtf.close %> 引用: 792.问: 我想在主图背面上下的条形色块如图,怎么搞? 答(kjyhao): 试试这个,条件可根据自己的要求定, xma1:=MA(C,5);xma2:=MA(C,10);//以均线为条件; xtj1:=CROSS(xma1,xma2) or xma1>xma2; xtj2:=CROSS(xma2,xma1) or xma1<xma2;< p=""> FILLRGN(xtj1,SYSPARAM(5),SYSPARAM(4)),ColorDB3FCA; FILLRGN(xtj2,SYSPARAM(5),SYSPARAM(4)),Color528608; ktj:=(CLOSE>OPEN or CLOSE=OPEN and CLOSE>REF(CLOSE,1)); STICKLINE(ktj,HIGH,LOW,0.1,1),colorred; STICKLINE(ktj,CLOSE,OPEN,7,1),colorred; STICKLINE(NOT(ktj),HIGH,LOW,0.1,0),colorcyan; STICKLINE(NOT(ktj),CLOSE,OPEN,7,0),colorcyan; ma5:MA(CLOSE,5); ma10:MA(CLOSE,10); ma20:MA(CLOSE,20); ma30:MA(CLOSE,30); 引用: 793.问: 请你看看以下一段文字,能不能按它的意思做一个指标 %B 布林极限 --判断原则 是由布林线所衍生出来的指标,主要的作用在于辅助布林线辨别买卖点的真伪。 %BB的计算方法和随机指标类似。但是,随机指标波动于0~100之间,而%BB指标可以大于100,也可以小于0。 (1)%BB>100时,代表股价超越布林线上限。 (2)%BB<0时,代表股价超越布林线下限。 (3)股价一顶比一顶高,而%BB一顶比一顶低时,暗示股价将反转下跌。 (4)股价一底比一底低,而%BB一底比一底高时,暗示股价将反转上涨。 答(kjyhao): 是否象下面这个制标!振荡指标的波动区间;它的原理是由布林线所衍生出来的;但不是布林线; 看看是不是这个: CY%BB优化布林极限指标 指标原理: CY%BB指标是把短线波动放大,并通过指数平滑移动平均产生买卖信号,特别适合捕捉盘整行情中高抛低吸的机会。 形态特点: 一、CY%BB指标共有5条横坐标线,中间的一条为0线,在±1倍(±100)标准差和±1.7倍(±170)标准差的位置各有一条横坐标线,±1倍线相当于KD指标的20和80,±1.7倍线相当于KD指标的0和100; 二、CY%BB指标还有两条走势线,一条是黄色线,另一条是白色线; 三、CY%BB指标值约70%的时间运行在±100之间,约95%的时间运行在±170之间,超过±170标准差的机会少于5%。 主要作用: 一、捕捉盘整行情中高抛低吸的机会; 二、突破行情中防止在庄家震仓、整理时提前下车。 使用要领: 一、在盘整行情中CY%BB指标黄线达-100以下,并上穿CY%BB指标白线形成金叉时买入; 二、CY%BB指标黄线达+100以上,并下穿CY%BB指标白线形成死叉时卖出; 三、突破行情中CY%BB指标黄线可以在较长时间内保持在+100以上运行,此时应持股,等其下穿+100线时再卖出。 代码: input:n(20,1,60); A:=MA(C,N); 布林极限:100*(c-a)/std(C,n); 布林K值:EMA(布林极限,3); 100,POINTDOT; -100,POINTDOT; 170,POINTDOT; -170,POINTDOT; 引用: 794.问: 前期高点,一般股票在上升时,总有一个突破前期高点的问题,我的想法是能不能做一个类似移动黄金线的指标,就是当我启动光标时,指向今日股价时,这样相对着的前期高点就会显出一条线,只是这个高点最少也得在今日股价的5%以上,或者就是前面的M头一类的高点,你看可以吗?或者就在股价的颈线位处表达出来, 我之所以这样想,就是看股价能不能涨,如果能加上量的变化,分辩出真突破和假突破就更好了. 答(kjyhao): 试试; V1:=sysparam(4);//启动光标,图可见区间最高点; qh:v1,colorred; 或 把它放在任何主图公式后面既可,前期高点线就只在光标出现时有!!! A:=BARSCOUNT(C); A1:=A=SYSPARAM(2); A2:=A=SYSPARAM(1); A3:=IF(c>0,A2,A1); B:=BARSLAST(A3); v1:=hhv(h,b); qh:v1,colorred; 引用: 795.问: 求教:如何求某月指定交易日的数据,不是日历日 即某月第一或第三个交易日的数据,而不是一月一日,一月三日的数据 答(hx817): 先建立一个引用的公式 OHLC fc:c; 再建立新公式 fm:=10411;//指定年月 n:=3;//指定第 N 个交易日 zqdm:='SH1A0001';//指定证券 tj:=COUNT(fm-(year-1900)*100-month=0,0)=n; ref(STKINDI(zqdm,'ohlc.fc',0,-1),BARSLAST(tj));//取证券对应年月第 N 个交易日的收盘价 引用: 796.问: 是这样一个公式,比方股价从5.00元往上打5.01元,那5.01元成交的都计算为主动性买盘, 再往上打5.02元成交的都计算为主动性买盘,再往上打5.03元成交的也都是主动性买盘,当回下 (也就是往下打5.02元的都为主动性卖盘).同理,它是以价格成交来决定主动性买盘和主动性卖盘的. 答(hx817): 通过重新定位前面比较的收盘价来做为比较价位,完成上面要求 参考: tj:=CLOSE=REF(CLOSE,1); N:=tj*(BARSLAST(CROSS(tj,0.5))+1)+1; OBV:SUM(IF(CLOSE>REF(CLOSE,N),VOL,IF(CLOSE<ref(close,n),-vol,0)),0); 引用: 797.问: 若以今天为起点,如何在今日的前5天K线上画一竖直线?又在今日的前10天处画竖直线?并在直线上标出数字? 能做出来吗? 还有不是以今天为起点,而是以任意选的一天为起点,再往前画直线可能吗? 答(bajatje): p:=BARPOS=datacount-n;//n--前移天数 VERTLINE(p); 或 p:=if(条件成立,BARPOS,0); VERTLINE(p-n>0); 问: 低版本的飞弧好象不能做这个公式, 答(bajatje): 低版本可写为: VERTLINE(CROSS(BACKSET(条件成立,N),0.5)); 引用: 798.问: 怎么写回调上攻 答(yngs): INPUT:涨幅(29,8,94); a:=(c-ref(c,1))/ref(c,1)*100; a1:=BARSLAST( a>涨幅); a2:=if(a1>0,1,0); TT:=MA((CLOSE-REF(CLOSE,14))/REF(CLOSE,14),7); HZ:=EMA(TT,14); m47:=ma(c,47); m48:=Ema(m47,3); m49:=ema(m48,3); m50:=Ema(m49,3); HZ>=-0.028 and a2=0 and m47>m48 and m47>m49 and m47>m50 and h/c<1.008 [Copy to clipboard]CODE: 799.问: 波动性----N的含意 海龟用一个理查德.丹尼斯和比尔.埃克哈特称之为N的概念来表示某个特定市场根本的波动性。N就是TR(True Range,实际范围)的20日指数移动平均,现在更普遍地称之为ATR。从概念上来看,N表示单个交易日某个特定市场所造成的价格波动的平均范围,它说明了开盘价的缺口。N同样用构成合约基础的点(points)进行度量。 每日实际范围的计算: TR(实际范围)=max(H-L,H-PDC,PDC-L) 式中: H-当日最高价 L-当日最低价 PDC-前个交易日的收盘价 用下面的公式计算N: N=(19×PDN+TR)/20 式中:PDN-前个交易日的N值 TR-当日的实际范围 因为这个公式要用到前个交易日的N值,所以,你必须从实际范围的20日简单平均开始计算初始值。 我只写出来TR表达式,N应该怎么表达的请版主指点一下: TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)) 答(kjyhao): 试试: 方法1 TR:=MAX(MAX((HIGH-LOW),ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW)); NN:=MA(TR,20); FOR I=23 TO DATACOUNT DO BEGIN N[I]:(19*NN[I-1]+TR[I])/20; NN[I]:=N[I]; END; [Copy to clipboard]CODE: 800.问: 请问如何自编公式实现WINNER函数, 用 C 语言或飞狐,分析家语言都行 我找遍internet, 也问许多人,可就是没人知道答案 CC := DYNAINFO(7); { 今日收盘 } ww := IF(L>CC, 0, IF(H<cc, 1,="" (cc-l+0.01)="" (h-l+0.01)));="" {="" 每日获利盘="" }="" Winner: DMA(ww, VOL/CAPITAL)*100; { 获利盘 } 比较起来还是和分析家,飞狐的有很大出入 答(股市骑兵00): 转个南客老师的贴: 在飞狐中,如何自行编写筹码分布公式 以一个简单的按成交量平均分配为例, variable:pv[50]=0,pc[50]=0; hh:=hhv(high,0); ll:=llv(low,0); fv:=vol; fh:=high; fl:=low; p:=sysparam(1); dd:=(hh[p]-ll[p])/49; for i=p downto 1 do begin sh:=(fh[i]-ll[p])/dd+1; sl:=(fl[i]-ll[p])/dd+1; dj:=fv[i]/(sh-sl+1); for j=sl to sh do pv[j]:=pv[j]+dj; end; s:=0; for i=1 to 50 do if s bl:=s/(sysparam(3)-sysparam(2))*2; drawsl(barpos=sysparam(3),sysparam(5),0,pv[1]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd,0,pv[2]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*02,0,pv[03]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*03,0,pv[04]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*04,0,pv[05]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*05,0,pv[06]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*06,0,pv[07]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*07,0,pv[08]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*08,0,pv[09]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*09,0,pv[10]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*10,0,pv[11]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*11,0,pv[12]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*12,0,pv[13]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*13,0,pv[14]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*14,0,pv[15]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*15,0,pv[16]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*16,0,pv[17]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*17,0,pv[18]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*18,0,pv[19]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*19,0,pv[20]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*20,0,pv[21]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*21,0,pv[22]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*22,0,pv[23]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*23,0,pv[24]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*24,0,pv[25]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*25,0,pv[26]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*26,0,pv[27]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*27,0,pv[28]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*28,0,pv[29]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*29,0,pv[30]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*30,0,pv[31]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*31,0,pv[32]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*32,0,pv[33]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*33,0,pv[34]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*34,0,pv[35]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*35,0,pv[36]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*36,0,pv[37]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*37,0,pv[38]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*38,0,pv[39]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*39,0,pv[40]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*40,0,pv[41]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*41,0,pv[42]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*42,0,pv[43]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*43,0,pv[44]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*44,0,pv[45]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*45,0,pv[46]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*46,0,pv[47]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*47,0,pv[48]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*48,0,pv[49]/bl+1,1),COLORGRAY; drawsl(barpos=sysparam(3),sysparam(5)+dd*49,0,pv[50]/bl+1,1),COLORGRAY; |
|