e^(j3t)是否为信号周期信号的频谱,若是,基本周期信号的频谱为多少?

下载费用:10 库币 &
信号系统(第3版)习题解答.doc
《信号与系统》 (第 3 版) 习题解析 高等教育出版社 1 目 录 第 1 章习题解析 ........................................................................................................... 2 第 2 章习题解析 ........................................................................................................... 6 第 3 章习题 解析 ......................................................................................................... 16 第 4 章习题解析 ......................................................................................................... 23 第 5 章习题解析 ......................................................................................................... 31 第 6 章习题解析 ......................................................................................................... 41 第 7 章习题解析 ......................................................................................................... 49 第 8 章习题解析 ......................................................................................................... 55 2 第 1 章 习题解 析 1-1 题 1-1 图示信号中,哪些是连续信号?哪些是离散信号?哪些是周期信号?哪些是非周期信号?哪些是有始信号? (c) (d) 题 1-1 图 解 (a)、 (c)、 (d)为连续信号; (b)为离散信号; (d)为周期信号;其余为非周期信号; (a)、(b)、 (c)为有始(因果)信号。 1-2 给定题 1-2 图示信号 f( t ),试画出下列信号的波形。 [提示: f( 2t )表示将 f( t )波形压缩, f(2t)表示将 f( t )波形展宽。 ] (a) 2 f( t ? 2 ) (b) f( 2t ) (c) f( 2t) (d) f( ?t +1 ) 题 1-2 图 解 以上各函数的波形如图 p1-2 所示。 3 图 p1-2 1-3 如图 1-3 图示, R、 L、 C 元件可以看成以电流为输入,电压为响应的简单线性系统SR、 SL、 SC,试写出各系统响应电压与激励电流函数关系的表达式。 题 1-3 图 解 各系统响应与输入的关系可分别表示为 )()( tiRtu RR ?? t tiLtu LL d )(d)( ?? ??? t CC iCtu ?? d)(1)( 1-4 如 题 1-4 图示系统由加法器、积分器和放大 量 为 ?a 的放大器三个子系统组成,系统属于何种联接形式? 试 写出该系统的微分方程。 SR SL SC 4 题 1-4 图 解 系统为反馈联接形式。 设 加法器的输出为 x( t ),由于 )()()()( tyatftx ??? 且 )()(,d)()( tytxttxty ??? ? 故有 )()()( taytfty ??? 即 )()()( tftayty ??? 1-5 已知某系统的输入 f( t )与输出 y( t )的关系为 y( t ) = | f( t )|, 试 判定该系统是否为线性时不变系统? 解 设 T 为系统的运算子,则可以表示为 )()]([)( tftfTty ?? 不失一般性,设 f( t ) = f1( t ) + f2( t ),则 )()()]([ 111 tytftfT ?? )()()]([ 222 tytftfT ?? 故有 )()()()]([ 21 tytftftfT ??? 显然 )()()()( 2121 tftftftf ??? 即不满足可加性,故为非线性时不变系统。 1-6 判断下列方程所表示的系统的性质。 (1) ??? t ft tfty 0 d)(d )(d)( ??(2) )()(3)()( tftytyty ??????? 5 (3) )(3)()(2 tftytyt ??? (4) )()()]([ 2 tftyty ??? 解 (1)线性; (2)线性时不变; (3)线性时变; (4)非线性时不变。 1-7 试证明方程 )()()( tftayty ??? 所描述的系统为线性系统。 式中 a 为常量。 证明 不失一般性,设输入有两个分量,且 )()()()( 2211 tytftytf ?? , 则 有 )()()( 111 tftayty ??? )()()( 222 tftayty ??? 相加 得 )()()()()()( 212211 tftftaytytayty ??????? 即 ? ? ? ? )()()()()()(dd 212121 tftftytyatytyt ????? 可见 )()()()( 2121 tytytftf ??? 即满足可加性,齐次性是显然的。故系统为线性的。 1-8 若有线性时不变系统的方程为 )()()( tftayty ??? 若 在非 零 f( t )作用下其响应 tty ??? e1)( ,试求方程 )()(2)()( tftftayty ????? 的响应。 解 因为 f( t ) ? tty ??? e1)( ,由线性关系,则 )e1(2)(2)(2 ttytf ???? 由线性系统的微分特性,有 ttytf ????? e)()( 故响应 ttttytftf ??? ???????? e2e)e1(2)()()(2 6 第 2 章 习题解 析 2-1 如图 2-1 所示系统,试以 uC( t )为输出列出其微分方程 。 题 2-1 图 解 由 图示 ,有 tuCRui dd CCL ??又 ? ?? t tuuLi 0 CSL d)(1 故 CCCS )(1 uCRuuuL ?????? 从而得 )(1)(1)(1)( SCCC tuLCtuLCtuRCtu ?????? 2-2 设有二阶系统方程 0)(4)(4)( ?????? tytyty 在某起始状态下的 0+起始值为 2)0(,1)0( ??? ?? yy 试求零输入响应。 解 由特征方程 ?2 + 4? + 4 =0 得 ?1 = ?2 = ?2 则零输入响应形式为 tetAAty 221zi )()( ??? 7 由于 yzi( 0+ ) = A1 = 1 ?2A1 + A2 = 2 所以 A2 = 4 故有 0,)41()( 2zi ??? ? tetty t 2-3 设有如下函数 f( t ),试分别画出它们的波形 。 (a) f( t ) = 2?( t ?1 ) ? 2?( t ?2 ) (b) f( t ) = sin?t[?( t ) ? ?( t ?6 )] 解 (a)和 (b)的波形如图 p2-3 所示。 图 p2-3 2-4 试用阶跃函数的组合表示题 2-4 图所示信号 。 题 2-4 图 8 解 (a) f( t ) = ?( t ) ? 2?( t ?1 ) + ?( t ?2 ) (b) f( t ) = ?( t ) + ?( t ?T ) + ?( t ?2T ) 2-5 试计算下列结果 。 (1) t?( t ? 1 ) (2) ???? ? ttt d)1(?(3) ? ???0 d)()3πc o s ( ttt ?? (4) ??? ??00 3 d)(e ttt? 解 (1) t?( t ? 1 ) = ?( t ? 1 ) (2) 1d)1(d)1( ???? ?? ?????? ttttt ??(3) 21d)()3πc os (d)()3πc os ( 00 ???? ?? ?? ?? ttttt ???(4) 1d)(d)(ed)(e
???? ??????????? tttttt tt ??? 2-6 设有题 2-6 图示信号 f( t ),对 (a)写出 f? ( t )的表达式,对 (b)写出 f? ( t )的表达式,并分别画出它们的波形。 题 2-6 图 解 (a) 20,21 ?? t f? ( t ) = ?( t ? 2 ), t = 2 ?2?( t ? 4 ), t = 4 (b) f? ( t ) = 2?( t ) ? 2?( t ? 1 ) ? 2?( t ? 3 ) + 2?( t ? 4 ) 9 图 p2-6 2-7 如 题 2-7 图一阶系统,对 (a)求冲激响应 i 和 uL, 对 (b)求冲激响应 uC 和 iC,并画出它们的波形。 题 2-7 图 解 由 图 (a)有 RitutiL ?? )(dd S 即 )(1dd S tuLiLRti ?? 当 uS( t ) = ?( t ),则冲激响应 )(e1)()( tLtith tLR ???? ? 则电压冲激响应 )(e)(dd)()( L tLRttiLtuth tLR ?? ????? ? 对于 图 (b)RC 电路,有方程 RuituC CSCdd ?? 10 即 SCC 11 iCuRCu ???当 iS = ?( t )时,则 )(e1)()( C tCtuth RCt ???? ? 同时,电流 )(e1)(dd CC tRCttuCi RCt ?? ???? ? 2-8 设有一阶系统方程 )()()(3)( tftftyty ????? 试 求其冲激响应 h( t )和阶跃响应 s( t )。 解 因方程的特征根 ? = ?3, 故有 )(e)( 31 ttx t ??? ? 当 h( t ) = ?( t )时,则冲激响应 )(e2)()]()([)()( 31 tttttxth t ???? ??????? ? 阶跃响应 )()e21(31d)()( 30 thts tt ??? ???? ? 2-9 试求下列卷积 。 (a) ?( t ) * 2 (b) ?( t + 3 ) * ?( t ? 5 ) (c) te?t??( t ) * ?? ( t ) 解 (a) 由 ?( t )的特点,故 ?( t ) * 2 = 2 (b) 按定义 ?( t + 3 ) * ?( t ? 5 ) = ? ??? ??? ????? d)5()3( t考虑到 ? t ?5 时, ?( t ?? ? 5 ) = 0,故 ?( t + 3 ) * ?( t ? 5 ) = 2,2d53 ?????? ttt ? 也可以利用迟延性质计算该卷积。因为 11 ?( t ) * ?( t ) = t?( t ) f1( t ? t1 ) * f2( t ? t2 ) = f( t ?t1 ?t2 ) 故对本题,有 ?( t + 3 ) * ?( t ? 5 ) = ( t + 3 ? 5 )?( t + 3 ? 5 ) = ( t ? 2 )?( t ? 2 ) 两种方法结果一致。 (c) te?t??( t ) * ?? ( t ) = [te?t?( t )]? = ( e?t ? te?t )?( t ) 2-10 对图示信号,求 f1( t ) * f2( t )。 题 2-10 图 解 (a)先借用阶跃 信号表示 f1( t )和 f2( t ),即 f1( t ) = 2?( t ) ? 2?( t ? 1 ) f2( t ) = ?( t ) ? ?( t ? 2 ) 故 f1( t ) * f2( t ) = [2?( t ) ? 2?( t ? 1 )] * [?( t ) ? ?( t ? 2 )] 因为 ?( t ) * ?( t ) = ?t0 d1 ?= t?( t ) 故有 f1( t ) * f2( t ) = 2t?( t ) ? 2( t ? 1 )?( t ? 1 ) ?2( t ? 2 )?( t ? 2 ) + 2( t ? 3 )?( t ? 3 ) 读者也可以用图形扫描法计算之。结果见图 p2-10(a)所示。 12 (b)根据 ? ( t )的特点,则 f1( t ) * f2( t ) = f1( t ) *[? ( t ) + ? ( t ? 2 ) + ? ( t + 2 )] = f1( t ) + f1( t ? 2 ) + f1( t + 2 ) 结果见图 p2-10(b)所示。 图 p2-10 2-11 试求下列卷积。 (a) )()()()e1( 2 tttt ??? ???? ? (b) )](e[dd)(e 3 ttt tt ?? ?? ?解 (a)因为 )()()()( tttt ???? ????? ,故 )()e1()()()e1()()()()e1( 222 tttttt ttt ?????? ??? ????????? (b)因为 )()(e ttt ?? ?? ,故 tttttttttt333e3)()()(e)](e[dd)(e??????????????? 2-12 设有二阶系统方程 )(4)(2)(3)( ttytyty ? ??????? 试求零状态响应 解 因系统 的特征方程为 ?2 + 3? + 2 =0 解得特征根 ?1 = ?1, ?2 = ?2 故特征函数 )()ee(ee)( 22 21 ttx tttt ??? ?? ???? 13 零状态响应 )()ee()(4)()(4)( 22 tttxtty tt ??? ?? ??????? = )()4ee8( 2 ttt ??? ? 2-13 如图系统,已知 )()(),1()( 21 tthtth ?? ??? 试求系统的冲激响应 h( t )。 题 2-13 图 解 由 图关系,有 )1()()1()()()()()()( 1 ?????????? tttttthtftftx ????? 所以冲激响应 )1()()()]1()([)()()()( 2 ?????????? tttttthtxtyth ????? 即该系统输出一个方波。 2-14 如图系统 ,已知 R1 = R2 =1?, L = 1H, C = 1F。试求 冲激响应 uC( t )。 题 2-14 图 解 由 KCL 和 KVL,可得电路方程为 )()(1)1()1(121C12C21CtLR RtRuLR RLuL CRRuC ?? ?????????? 14 代入数据 得 )()(22 CCC ttuuu ?? ???????? 特征根 ?1,2 = ?1 ? j1 故冲激响应 uC( t )为 )]()([*)ee()( 11C tttu tλtλ ?? ???? )(s i ne)()s i n( c o se ttttt tt ?? ????? ?? V)(co se ttt ??? ? 2-15 一线性时不变系统,在某起始状态下,已知当输入 f( t ) = ?( t )时,全响应 y1( t ) = 3e?3t??( t );当输入 f( t ) = ??( t )时,全响应 y2( t ) = e?3t??( t ),试求该系统的冲激响应 h( t )。 解 因为零状态响应 ?( t ) ? s( t ), ??( t ) ? ?s( t ) 故有 y1( t ) = yzi( t ) + s( t ) = 3e?3t??( t ) y2( t ) = yzi( t ) ? s( t ) = e?3t??( t ) 从而有 y1( t ) ? y2( t ) = 2s( t ) = 2e?3t??( t ) 即 s( t ) = e?3t??( t ) 故冲激响应 h( t ) = s? ( t ) = ?( t ) ? 3e?3t??( t ) 2-16 若系统的零状态响应 y( t ) = f( t ) * h( t ) 试证明: (1) ??????t ht tfthtf ?? d)(d )(d)()( (2) 利用 (1)的结果,证明阶跃响应 ? ??? t hts ?? d)()( 证 ( 1) 因为 y( t ) = f( t ) ? h( t ) 15 由微分性质,有 y? ( t ) = f? ( t ) ? h( t ) 再由积分性质,有 ? ????? t htfty ?? d)()()( ( 2)因为 s( t ) = ?( t ) ? h( t ) 由( 1)的结果,得 ? ????? t htts ??? d)()()( ?????t ht ??? d)()( ? ??? t h ?? d)( 16 第 3 章 习题解 析 3-1 求题 3-1 图所 示 周期信号的三角形式的傅里叶级数表示式 。 题 3-1 图 解 对于周期锯齿波信号,在周期 ( 0, T )内可表示为 tTAtf ?)( 系数 2d1d)(1 000 AtTAtTttfTa TT ??? ???? ??? TT ttntT AttntfTa 0 120 1n dc o s2dc o s)(2 ?? 0s i n20112 ?????????? TntntTA?? ?? ??? TT ttntT AttntfT Ab 0 120 1n ds i n2ds i n)(2 ?? πc os20112 nAntntTA T ????????????? 所以三角级数为 ????? 1 1s inπ2)( n tnnAAtf ? 3-2 求周期冲激序列信号 ????? ?? n nTtt )()(T ?? 的指数形式的傅里叶级数表示式,它是否具有收敛性? 解 冲激串信号的复系数为 17 TttTFTT tn1de)(1 22jn 1 ?? ??? ?? 所以 ?????? n tnTt 1jT e1)( ?? 因 Fn 为常数,故无收敛性。 3-3 设有周期方波信号 f( t ),其脉冲宽度 ? = 1ms,问该信号的频带宽度(带宽)为多少?若 ?压缩为 0.2ms,其带宽又为多少? 解 对方波信号,其带宽为?1??fHz, 当 ?1 = 1ms 时,则 Hz1 0 0 00 0 1.0 1111???? ?f 当 ?2 = 0.2ms 时,则 Hz 1122???? ?f 3-4 求题 3-4 图示 信号的傅里叶变换 。 题 3-4 图 解 (a)因为 ?? ?tt , ??t,0 为奇函数,故 f( t ) = 18 tttF ds in2j)( 0 ??? ???? ]c os[ s in2j 2 ???????? ??? )](Sa[ c o s2j ????? ?? 或用微分定理求解亦可。 (b) f( t )为奇函数, 故 ttF ds in)1(2j)( 0 ?? ?? ??? )2(s i n4j]1[ c o sj2 2 ?????? ???若用微分 -积分定理求解,可先求出 f? ( t ),即 f? ( t ) = ?( t + ? ) + ?( t ? ? ) ? 2?( t ) 所以 2c o s22ee)j()( jj1 ??????? ? ??? ????Ftf 又因为 F1( 0 ) = 0,故 )1( c o sj 2)(j 1)( 1 ??? ?????? FF 3-5 试求 下列信号的频谱函数 。 (1) ttf 2e)( ?? (2) )(s ine)(0 tttf at ?? ?? ?解 (1) ??? ? ???? ???? ? ??? 0 j20 j2j deedeede)()( ttttfF ttttt ???? 244j2 1j2 1 ??? ?????? (2) ?? ???????? ????0jjjj d)ee(e2j1ede)()( 00 tttfF tttatt ?????? ? ????? ???? 0 )j(j)j(j ]deee[e2j1 00 ttattat ???? ?????? ??????00 j)j(1j)j(12j1?????? )j()j(j22j1???????????????3-6 对于如题 3-6 图所示的三角波信号,试证明其频谱函数为 )2(Sa)( 2 ???? AF ? 19 题 3-6 图 证 因为 ( ?? ?? ttA ),1( 0, | t | > ? 则 ? ?? ? ??? 0 dc os)1(2)( tttAF )c o s1(22 ???? ??A )2(sin4 22 ???? A? )2(Sa 2 ???A? 3-7 试求信号 f( t ) = 1 + 2cost + 3cos3t 的傅里叶变换 。 解 因为 1 ? 2??(?) 2cost ? 2?[?(? ? 1) + ?(? + 1) ] 3cos3t ? 3?[?(? ? 3) + ?(? + 3) ] 故有 F(? ) = 2?[?(?) + ?(? ? 1) + ?(? + 1) ] + 3?[?(? ? 3) + ?(? + 3) ] 3-8 试利用傅里叶变换的性质,求题 3-8 图所示信号 f2( t )的频谱函数。 f( t ) = 20 题 3-8 图 解 由于 f1( t )的 A = 2, ? = 2,故其变换 )(Sa4)2(Sa)( 221 ????? ?? AF 根据尺度特性,有 )2(Sa8)2(2)2( 211 ?? ?? Ftf 再由调制定理 得 )(πc o s)2()( 212 ?Fttftf ?? )]π22(Sa8)π22(Sa8[21)( 222 ???? ???F )π22(Sa4)π22(Sa4 22 ???? ?? 2222)π()2(s in)π()2(s in???? ???? 3-9 试利用卷积定理求下列信号的频谱函数。 (1) f( t ) = Acos(?0t) ? ?( t ) (2) f( t ) = Asin(?0t)?( t ) 解 ( 1)因为 )]()([π)c o s ( 000 ??????? ???? AtA ???? j1)(π)( ??t所以由时域卷积定理 ]j 1)(π[)]()([π)( 00 ?????????? ?????? AF 21 )]()([j π 00 ??????? ???? A ( 2)因为 )]()([πj)s in ( 000 ??????? ???? AtA ???? j1)(π)( ??t由 频 域卷积定理 ?????? ?????? ]j1)(π[)]()([πjπ21)(00 ?????????? AF202 000 )]()([2πj???????????????AA 3-10 设有信号 f1( t ) = cos4?t ??t,1 ??t,0 试求 f1( t ) f2( t )的频谱函数。 解 设 f1( t ) ? F1(?),由调制定理 )()]π4()π4([21π4c o s)( 111 ??? FFFttf ????? 而 )(Sa2)2(Sa)(1 ????? ??F 故 )π4(Sa)π4(Sa)( ???? ???F 3-11 设有 如 下信号 f( t ),分别求其频谱函数 。 (1) )(e)( )4j3( ttf t ??? ?? (2) )2()()( ??? tttf ?? 解 (1) 因 ??? j1e ??? t故 )4j(3 1j)4j3( 1e )4j3( ?? ???????? tf2( t ) = 22 (2) 因 2),1()()2()(τ ????? ???? ttGtt故 ?? ????? jj e)(Sa2e)2(Sa)( ?? ??F 3-12 设 信号 40,2 ?? t 其他,0 试求 f2( t ) = f1( t )cos50t 的频谱函数,并大致画出其幅度频谱。 解 因 ?? ????? j2j2 e)2(Sa8e)2(Sa2)( ?? ??F 故 )]50()50([21)( 112 ???? ??? FFF )50j 2()50j 2( e)]50(S a [ 24e)]50(S a [ 24 ???? ???? ?? ?? 幅度频谱见图 p3-12。 图 p3-12 f1( t ) = 50 50 | F2(?) | 23 第 4 章 习题解 析 4-1 如 题 4-1 图 示 RC 系统,输入为方波 u1( t ),试用卷积定理求响应 u2( t )。 题 4-1 图 解 因为 RC 电路的频率响应为 1j 1)j( ?? ??H而响应 u2( t ) = u1( t ) * h( t ) 故由卷积定理,得 U2(? ) = U1(? ) * H( j? ) 而已知 )e1(j1)( j1 ??? ???U,故 )e1(j 11j 1)( j2 ???? ?????U 反变换得 )1(]e1[)()e1()( )1(2 ????? ??? tttu tt ?? 4-2 一滤波器的频率特性如题图 4-2 所示 , 当 输入为 所示的 f( t )信号时 , 求相应的输出y( t )。 题 4-2 图 24 解 因为 输入 f( t )为周期冲激信号,故 π2π2,11 1n ???? TTF ? 所以 f( t )的频谱 ?? ???????? ???? nn nnFF )π2(π2)(π2)( 1n ?????? 当 n = 0, ?1, ?2 时,对应 H( j? )才有输出,故 Y(? ) = F(? ) H( j? ) = 2?[2?(?) + ?(? ? 2?) + ?(? + 2?)] 反变换得 y( t ) = 2( 1 + cos2?t ) 4-3 设系统的频率特性为 2j 2)j( ?? ??H试用频域法求系统的冲激响应和阶跃响应。 解 冲激响应,故 )(e2)]j([)( 21 tHth t ?? ??? ??F 而阶跃响应频域函数应为 2j 2]j 1)(π[)j()]([)( ?????? ??????? HtS F2j 2j1)(π ???? ????2j 1j1)(π ???? ????所以 阶跃响应 )()e1()( 2 tts t ???? ? 4-4 如题图 4-4 所示 是一个实际的信号加工系统 , 试写出系统的频率特性 H( j? )。 题 4-4 图 25 解 由图可知输出 ? ??? t tttftfty 0 0 d)]()([)( 取上式的傅氏变换,得 )e1(j )()( 0j tFY ???? ??? 故频率特性 )e1(j 1)( )()j( 0j tFYH ????? ???? 4-5 设信号 f( t )为包含 0 ~ ?m 分量的频带有限信号,试确定 f( 3t )的奈奎斯特采样频率。 解 由尺度特性,有 )3(31)3( ?Ftf ? 即 f( 3t )的带宽比 f( t )增加了 3 倍,即 ?? = 3?m。从而最低的抽样频率 ?s = 6?m 。故采样周期和采样频率分别为 mS 61fT ? mS 6 ff ?4-6 若电视信号占有的频带为 0 ~ 6MHz,电视台每秒发送 25 幅图像, 每幅图像又分为625 条水平扫描线,问每条水平线至少要有多少个采样点? 解 设采样点数为 x,则最低采样频率应为 xf ??? 625252 m 所以 7 6 86 2 525
2 6m ?? ????? fx 4-7 设 f( t )为调制信号,其频谱 F( ? )如题图 4-7 所示 , cos?0t 为高频载波,则广播发射的调幅信号 x( t )可表示为 x( t ) = A[ 1 + m f( t )] cos?0t 式中, m 为调制系数。 试求 x( t )的频谱,并大致画出其图形。 26 题 4-7 图 解 因为调幅信号 x( t ) = Acos?0t + mA f( t )cos?0t 故其变换 )]()([2)]()([π)( 0000 ??????????? ???????? FFmAAX 式中, F(? )为 f( t )的频谱。 x( t )的频谱图如图 p4-7 所示。 图 p4-7 4-8 题 4-8 图 所示 (a)和 (b)分别为单边带通信中幅度调制与解调系统。已知输入 f(t)的频谱和频率特性 H1( j? )、 H2( j? )如图所示,试画出 x(t)和 y(t)的频谱图 。 题 4-8 图 X(?) F(?) F(?) 27 题 4-8 图 解 由 调制定理知 )]()([21)(c os)()( CC1C1 ?????? ?????? FFFttftf 而 x(t)的频谱 )()()( 11 ??? jHFX ?? 又因为 )]()([21)(c o s)()( CC2C2 ?????? ?????? XXFttxtf 所以 )()()( 22 ??? jHFY ?? 它们的频谱变化分别如图 p4-8 所示,设 ?C > ?2。 图 p4-8 4-9 如题 4-9 图所示系统,设输入信号 f(t)的频谱 F(? )和 系统 特性 H1( j? )、 H2( j? )均F1(?) F2(?) X(?) Y(?) 28 给定 ,试画出 y(t)的频谱。 题 4-9 图 解 设 ttftf 50cos)()(1 ? ,故 由调制定理 ,得 )]50()50([21)(1 ???? ??? FFF 从而 )()()()( 1122 ??? FHFtf ??? 它仅在 | ? | = ( 30 ~ 50 )内有值。再设 ttftf 30co s)()( 23 ? 则有 )]30()30([21)( 223 ???? ??? FFF 即 F3(? )是 F2(? )的再频移。进而得响应的频谱为 )()()( 23 ??? jHFY ?? 其结果仅截取 ?20 a0a3 故系统稳定。 6-10 如题 6-10 图示反馈系统,为使其稳定,试确定 K 值。 题 6-10 图 48 解 该系统的 H( s )为 KsssKssssKssssKssH???????????????)1()(23从必要条件考虑,应当 K > 0,再由 a1a2 > a0a3 考虑,应满足 K < 9,故当 0 < K < 9 时 系统稳定。 也可以从劳斯阵列判定。因为阵列: 0039331KKK? 为使第一列元素不变号,即应 0,039 ??? KK 即 0 < K < 9 时系统稳定。 49 第 7 章 习题解 析 7-1 试画出下列离散信号的图形 。 (a) )()21()(1 nnf n ??(b) )2()(2 nnf ?? ? (c) )2()(3 nnf ??? ?(d) )()5.01(2)(4 nnf n ??? 解 各信号的图形分别如图 p7-1 所示。 图 p7-1 7-2 试画出下列序列的图形。 (a) )6()2()(1 ???? nnnf ?? (b) )()2()(2 nnnf ???? ?? (c) )]5()([)()(3 ???? nnnnnf ???(d) )4()3(2)2(2)1()()(4 ????????? nnnnnnf ????? 解 各序列的图形分别如图 p7-2 所示。 50 图 p7-2 7-3 设有差分方程 )()2(2)1(3)( nfnynyny ????? 起始状态45)2(,21)1( ????? yy。试求系统的零输入响应。 解 系统的特征方程为 ?2 + 3? + 2 = 0 其特征根为 ?1 = ?1, ?2 = ?2 则零输入响应的形式为 nn KKny 2211zi )( ?? ?? nn KK )2()1( 21 ???? 由起始状态 y(?1)和 y(?2)导出起始值 y(0)和 y(1) n = 0 时, y(0) = ?3y(?1) ? 2y(?2) = 1.5 ? 2.5 = ?1 n = 1 时, y(1) = ?3y(0) ? 2y(?1) = 3 + 1 = 4 从而有 1)0( 21zi ???? KKy 42)1( 21zi ???? KKy 51 解得 K1 = 2, K2 = ?3 故 0,)2(3)1(2)(zi ????? nny nn 7-4 设有离散系统的差分方程为 )1()(4)2(3)1(4)( ??????? nfnfnynyny 试画出其时域模拟图。 解 原方程可以写为 )1()(4)2(3)1(4)( ???????? nfnfnynyny 从而可得时域模拟图 p7-4,图中 D 为单位延时(位移)器。 图 p7-4 7-5 如图所示为工程上常用的数字处理系统,是列出其差分方程。 题 7-5 图 D D D D D D 52 解 由图可得差分方程 )3()2()1()()( 3210 ??????? nfbnfbnfbnfbny 7-6 设有序列 f1( n
文档加载中……请稍候!
下载文档到电脑,查找使用更方便
10 库币 &&0人已下载
还剩页未读,继续阅读
<a href="UserManage/CopyrightAppeal.aspx?bid=58771" title="版权申诉" class="fLeft works-manage-item works-manage-report" target="_blank"
关&键&词: keywords} 电大 真题 试题 测试卷
& 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:信号系统(第3版)习题解答.doc 链接地址:
当前资源信息
编号: 35516
类型: 共享资源
格式: DOC
大小: 4.92MB
上传时间:
&& 广告或垃圾信息
&& 色情、淫秽、低俗信息
&& 反政府、反人类、反社会等反动信息
&& 散布赌博、暴力、凶杀、恐怖或者教唆犯罪等信息
&& 侮辱、诽谤等人身攻击信息
&& 散布谣言、扰乱社会秩序,破坏社会稳定等信息&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
粉丝量:314
所有文档均可在线免费浏览,需要的朋友请看好是否是自己需要的文档。所有资料来源于网络,仅供大家参考学习,版权归原作者。若有侵权,敬请及时告知,本人会及时删除侵权文档,竭诚全力为您服务!!!
&#xe602; 下载此文档
信号与系统习题答案 第三章
下载积分:1508
内容提示:信号与系统习题答案 第三章
文档格式:DOC|
浏览次数:336|
上传日期: 06:44:57|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 1508 积分
&#xe602;下载此文档
该用户还上传了这些文档
信号与系统习题答案 第三章
关注微信公众号第1章 习题解答_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第1章 习题解答
&&信号与系统,陈后金 答案!
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 2578|回复: 0
飞狐、大交易师选股公式编写
飞狐、大交易师选股公式编写" h1 _3 W! ~. C- F# Z& p! `: u2 [
* ]/ p# c- Z$ b7 A' ~/ Y& D
一、选股公式:
  显然选股公式,就是用于选出符合条件的股票,由若干中间语句组成,并且其中不含绘图函数。只有一行输出语句,位于最后一条语句,且必须是条件表达式。
  例1:设计一个公式,选出N周期内涨幅大于或等于5%的股票。
  求解:公式代码如下,其中N为参数:
/ i( u- O: [2 w2 w0 @9 C
--------------------------------------------------------------------------------6 Q&&}3 [" {& X! d7 s8 r9 s
收盘价:=2 e&&o( {&&M( q* ]% C' j) m- ^4 E+ q
N日前收盘:=ref(close,N);
选股条件:收盘价/N日前收盘&=1.05;--------------------------------------------------------------------------------
- }9 l. L3 S$ ^: y" R9 R8 U( f% D
  代码解释:公式由我们所熟悉的代码组成,共3行,前2行是中间语句,最后一行是选股的条件,其中最后一行“选股条件:”,也可以不写。
  操作简介:在飞狐中,按F7,弹出如图界面。图中①可以调整参数。②可以选择在什么分析周期下选股。③可以改变选股范围,默认为A股市场。④可以让选出的股票输出到指定的板块,并将该板块设为自动板块。⑤可以指定时段进行选股,默认是对最后一天进行选股。⑥对某些公式,还可以进行成功率测试。
& F2 }1 Z% k& s& E0 V" @
  在选股的操作过程中,大家可以发现,利用技术指标也可以进行选股。! K3 \) A8 e3 v7 p- }
  练习1:编制一个选股公式,选出RSI突破80的股票。
  思考1:建立如下选股公式,该公式的意义是什么?实际操作一下,看看有什么问题?为什么?
--------------------------------------------------------------------------------
zsp:=ref(c,1);
spj/zsp&0.95;--------------------------------------------------------------------------------
( G8 I: \1 e% y% Z: P
  思考2:选股操作时,当选择输出到板块时,有个自动板块的选择,起什么作用?
  思考与操作1:利用例1的选股公式,想选出最近10天,所有2天内涨幅超过5的A股板块股票。
  解疑1:某股友选股时,发现500001符合选股条件,但却选不出来,你能帮他分析一下原因吗?
  二、交易系统:
  交易系统公式(简称交易公式),用于指示满足特定条件时的买入信号和卖出信号。公式的由若干中间语句,加上指定的最后4行条件表达式代码组成,最后4行分别由“ENTERLONG: ”“EXITLONG: ”、“ENTERSHORT:”、“EXITSHORT:”开始,表示多头买入、多头卖出及空头买入、空头卖出的条件。这4行也可以删去若干行,但至少保留其中的一行,表示只指示其中一种信号。
  例2:我们来看看飞狐交易系统中的“RSI 相对强弱指标交易系统”公式,其中LL、LH是参数:
* B" V3 p3 L/ \1 s, K+ h&&b
--------------------------------------------------------------------------------: _" y3 S4 m+ Q& Z
LC:=REF(CLOSE,1);{LC为中间变量}
RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;{RSI为中间变量}( X$ a1 y& X2 w* d
ENTERLONG:CROSS(RSI,LL);{多头买入条件表达式,RSI上穿LL时发出买入信号}
EXITLONG:CROSS(LH,RSI);{多头卖出条件表达,RSI下穿LH时发出卖出信号}--------------------------------------------------------------------------------( b/ k: y% P9 Q% m
  在新建或编辑修改交易公式时,可以设定介入点的位置,如次周期中价等。设置止损条件,如目标利润止盈、最大损失止损等。
  交易公式的使用:①在K线图中,按Ctrl+F6,可以选择交易公式指示买卖信号。②在选股操作时,也可以选择交易公式进行选股。③在菜单“工具”中,还可以对交易进行“交易系统评价”、“探索最佳参数”操作。在菜单“查看”中,可以“优选交易系统”。. ]4 O2 ]& e( ]" ^5 V6 p3 G' O( a
  此外,按Shift+W,调出公式树,可以通过鼠标把交易公式拖到K线窗口的方法,使用交易公式。试试把选股公式也拖到K线窗口,看看有何变化?说明了什么?, b- j4 L, M/ V) ^$ Q9 n
  当想删除在K线图上显示的各种买卖信号时,可以按Ctrl+Del或工具栏上的相应按钮实现。
9 ]! P" a# W- m9 u
  练习2:设计一个均线交易公式,当收盘价上穿5日均线时,发出多头买入信号,收盘价下穿5日均线时发出多头卖出信号。并观察设置不同的介入点介入时,指示的信号有什么变化。
  练习3:观察飞狐系统内置的各个交易公式,领会各交易公式的意义。
& M5 z4 y2 e4 b&&P5 ~
  三、五彩K线:
  用于表示各种K线模式。比如早晨之星、黄昏之星等。五彩K线,阳线用实心表示,阴线用空心表示。默认的五彩K线均为绿色。当出现指定的K线模式时,默认用红色表示,除非使用了颜色描述符。表达五彩K线由若干中间语句和最多六条独立的条件语句,跟选股公式不同的是,选股公式只能有一个条件表达式语句。3 U1 K2 _0 \0 [, h* \
  例1、用五彩K线描述涨幅超过9%的K线,代码如下:1 a/ k4 K( S) U
--------------------------------------------------------------------------------
c/ref(c,1)&1.09;--------------------------------------------------------------------------------
+ a9 x0 _* o9 T&&B! y& G6 M
  例2、用五彩K线描述分维形态的K线,代码如下(借用注册用户社区中,清扬兄的研究成果):+ w+ \! C4 ^9 m. u1 q2 l
--------------------------------------------------------------------------------9 H' C6 u1 W) e. R0 e5 L6 x6 O2 k
N:=2;6 R&&L. ~& D1 M8 T2 ]0 M8 l
AA:=REF(H,N)=HHV(H,2*N+1);
AAA:=FILTER(AA,N);
BB:=BACKSET(AAA,N+1);" f: m9 h9 G( Z3 {9 c
CC:FILTER(BB,N),COLORBLUE;' B# w/ Z5 o0 _
8 X" p! h& `% c$ ^5 _4 x% ]
AA2:=REF(L,N)=LLV(L,2*N+1);1 w! Z# U6 V6 |) f7 W
AAA2:=FILTER(AA2,N);&&u7 w5 i* {) n/ P# u0 b
BB2:=BACKSET(AAA2,N+1);. o$ ~1 F( V; x5 q
CC2:FILTER(BB2,N),COLORMAGENTA;--------------------------------------------------------------------------------
一、STKINDI示例代码& d& m, j) q4 m( k5 u0 L
函数注释如下:, \- K$ P6 n3 ^
引用任意证券任意周期的任意指标输出
用法 :( K9 U, H4 t$ J% _- A- K
STKINDI(STKLABEL,INDINAME,INDITYPE,PERIOD)
INDITYPE为指标类型,有效值范围为(0-2),依次表示技术指标、条件选股、交易系统公式;
PERIOD为周期类型,有效值范围为(-1-11),依次表示:8 L( m# {0 t( y4 j& u
当前周期、分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、多分钟
例如:STKINDI('1A0001','MA.MA1',0,DATAPERIOD);4 b1 |) e$ K1 M# f4 G& l
例1:引用大盘的涨跌家数。0 J- G1 N& W9 ~. g0 ]. m7 i
①被引用公式,设被引用的公式名称为“涨跌家数”,其公式代码如下:' Y) b4 y- R. E, D
A:ADVANCE;1 ^' a* R% [/ S2 }' Y; p$ \4 C
D:DECLINE;
% r( M! I/ |. \3 |
②引用大盘的涨跌家数,示例代码如下:8 w# @# X" ?1 P) g&&c
fStkName:=if(STRCMP(STKMARKET, 'SH'),'399301','1A0001');
fAdvance:=STKINDI(fStkName,'涨跌家数.A',0,6);
fDecline:=STKINDI(fStkName,'涨跌家数.D',0,6);&&[1 l' w# @) W* V5 b
说明:大盘函数advance、decline只能被大盘所使用,不能在个股中直接使用,这段代码,示范了如何利用STKINDI函数达到在个股中引用的目的。& r: V/ \1 e: [( l- Z7 A- ]7 c
例2:在日k线中引用本股票5分钟的obv该怎么写?
求解:代码如下
StkIndi(StkLabel,'OBV',0,2);{注意,公式的名称应使用大写字母}
二、横向统计相关函数的用法简介:8 P7 m+ |$ y9 {' a" ]
7 E8 l$ l6 N3 M# l) D7 y&&_* e" E% `8 z
1、横向统计数据函数 ESTDATA(N),取得横向统计日线数据(1-N),仅在日线分析周期有效;
2、用法举例:
例:设计一个公式,统计当日A股板块涨停板的股票数。( c' O- k2 U0 M- P
3、方法如下:&&l3 Q2 e6 ~- ^2 D7 [: P
①设计一个公式,判断个股是否涨停,代码如下,设公式名称是“涨停判断”:4 q- `8 @5 i7 s3 C, _+ t
* ]. p/ q' Z5 Q&&T: O9 F% s
bl:=if(STKINBLOCK('ST板块'),1.05,1.1);{如果为ST涨停为5%,否则为10%}
ztb:abs(c-intpart(ref(c,1)*bl*100+0.5)/100)&0.0001;{如果涨停返回1,否则返回0}
{注:对新股的涨停未做判断,另外个股因历史的原因,是否被ST或PT处理无法判断,因此对历史数据的判断并不准确}
②建立横向统计数据项:鼠标点菜单“管理/横向统计管理”,在“横向统计管理”对话框中,点“新增”,找到刚才设计的公式“涨停判断”。
⑴数据名称改为“涨停板”
⑵选择技术指标“涨停判断”,计算周期“日线”、指标线“ztb”为默认,不作修改。* p6 C1 I0 j# \! r&&r
⑶横向统计方法选“全部累加”。4 n* M! F2 f2 |- @5 p
⑷“计算时选择除权后的数据”不选即前面不打勾。
⑸点“设置范围”按钮,选择统计范围。
⑹置好范围后,点确定。9 A&&e* K/ v# \8 ~& A
至此,我们就设计了一个横向统计数据项“涨停板”,在图中序号是1,则引用时是estdata(1)。
③设计一个引用“涨停板”的公式,公式代码如下,设公式的名称是zttj:&&@6 p1 \! D$ X& B3 n" F7 e
涨停板统计:estdata(1);6 m9 d& U5 i, O
& v6 X* d9 H: c* `& Y4 B&&i* ^
在K线图中,调用公式zttj,就可以看到我们所需要的结果了。+ @; b% H, f" q
练习:如果对横向统计有兴趣的话,可以仿此,做一个跌停板统计公式。当然可以把涨停、跌停做成二合一公式。, B* J2 M- \9 S&&V+ `, g0 c
5 J) _( x) {, i$ D6 }& I% P
三、如何计算当日交易分钟数:
T定义为1分钟周期图上,开盘后的交易分钟数,
1、代码之一: ~% b/ g2 j- @
$ I$ J. W" q, R/ u
* i5 }2 Y& k/ i# m/ y5 f
--------------------------------------------------------------------------------( O, E1 M" v/ E4 Y
T:=IF(BETWEEN(HOUR,9,11),(HOUR-9.5)*60+MINUTE,$ j1 C- |* k( R% C" R0 z$ o- x3 N* M
IF(BETWEEN(HOUR,13,15),(HOUR-9.5-1.5)*60+MINUTE,240));4 ~8 y, P$ B8 k" G6 n* x
--------------------------------------------------------------------------------0 q+ a3 k$ a, j' M" j) x
% q: z4 W9 u8 y5 `
/ f: a' G+ a: @&&Y! \; D&&T# Z* K
稍加优化:
. A$ [9 x6 z4 T# R7 a3 Q6 ?
--------------------------------------------------------------------------------$ T, D: u! V& [! ]3 |, c7 h
T:=IF(BETWEEN(HOUR,9,11),(HOUR-9.5)*60+MINUTE,
IF(BETWEEN(HOUR,13,15),(HOUR-11)*60+MINUTE,240));
--------------------------------------------------------------------------------
代码解释:" R+ E/ ]9 R. `+ t
如果小时数介于9和11间,返回值(HOUR-9.5)*60+MINUTE, J: r" s* G' b
    如果小时数介于13和15之间,返回值(HOUR-9.5-1.5)*60+MINUTE+ E3 _+ _9 g+ r0 }
      否则返回值240
2、观察所有的股票一天的1分钟周期图,可以发现,都是起始于9:31,结束于15:00,并且中午休市不显示,因此代码一可以简化为如下公式代码二,请自行解释代码。
公式代码二:
+ W9 `. ^! U3 E0 _3 x2 A, s- i
8 F2 @% q6 Q: o4 D
--------------------------------------------------------------------------------
T:=IF(HOUR&=11,(HOUR-9.5)*60+MINUTE,
IF(HOUR&=11,(HOUR-11)*60+MINUTE,240));* P- t8 `& e&&W0 S9 a
0 z* a9 U1 I( l
--------------------------------------------------------------------------------
3、公式代码二,在1分钟周期中,其实返回240的情况可以合并如下(为什么?)
公式代码三:6 {# D' |! d1 d1 v5 O" Q
T:=IF(HOUR&=11,(HOUR-9.5)*60+MINUTE,(HOUR-11)*60+MINUTE);3 p5 O6 \7 y4 k8 g- C( r
整理后得到,公式代码四:
T:=IF(HOUR&12,HOUR*60+MINUTE-570,HOUR*60+MINUTE-660);
4、公式代码四,可以改写如下的公式代码五:
T1:=IF(HOUR&12,570,660);* e% \" C- B4 |: G/ m# P5 K
T:=HOUR*60+MINUTE-T1;* [0 v. Q% k' w9 U$ r
  呵呵,570就是9.5小时对应的分钟数,660是11小时对应的分钟数。其实一开始我们就可以写出这个公式了。我在飞狐公式入门五的答贴中,提示了“用时间类的函数,例如现在是10:30的话,怎么算交易时间呢?如果‘现在’是14:00,又怎么算交易时间?”2 q# X5 y# B% {- B3 D! W: u" P- s2 L4 ^
" }7 _( X% J: d" l9 U' F
公式代码五,是南客喜欢的表达方式,比公式代码四要多写一行,但更灵活、易于变化。
* O) Q; a1 v5 V3 M$ A4 u. |6 L" ~&&F
  好了,问题解决了,也该给喜欢思考的弟兄一点问题。7 `2 T0 d% O7 k2 `
  问题1:在5--60分钟周期图上,设计一个计算当日交易分钟数的公式,进一步设计出量比公式。
  问题2:国内A、B股等的交易分2个时段,即上午和下午各交易2小时,在中午休市1.5小时,如果设想一个股市,一天之中,交易3个或更多个时段,当日交易分钟数的公式,又该怎么写?为了方便写公式,假设为3个时段:上午为9:30--11:30,下午为13:00--15:00,晚上为19:00--21:00。$ ]# d0 v8 f" M&&^! Q
6 Y5 y4 m' `8 o9 @; T5 _
  提示:公式改写为适用于5--60分钟周期,还需考虑当日是否停牌。为了减少难度,先不考虑停牌的情况,等公式调试成功后,再考虑如何加入判断是否停牌的条件。
四、相关系数函数CORR简单介绍及示例代码:
相关系数函数CORR,可以比较两只个股或个股与大盘的指标或价格在N周期内走势的相似程度,函数返回的数值越大,相似程序越高。( N! e. ]5 s8 u- w5 D
; Z$ p5 ?7 e9 B8 O; |* w&&W
下面是最后N周期内,个股与大盘收盘价走势相似程度的示例代码:/ V( H5 N# X% y3 a&&k/ T7 l3 M* i
ts0:=barssince(c);! T8 ~" Y- X. X% r
ts1:=barslast(barssince(backset(islastbar,N+1))=0);0 Q4 B) V6 V! x* j
ts:=if(ts0&n,ts0,ts1);{上市时间短于参数N,调整叠加的基准日}% |- c, @# F&&D+ ?3 m, d
bl:=ref(IndexC/C,Ts);{确定基准日压缩比率}
fIndexC:IndexC/{按比率压缩大盘指数,以便跟个股收盘比较}2 t% e$ b" F8 B
相似程度:CORR(fc,fIndexC,N),linethick0;1 \& }- c9 v2 @8 o! c6 \
9 J$ R+ ]&&S- M/ P! b4 {& j&&D
简单的应用方法:' C" h$ E1 x7 R! R
1、指标作为副图指标,可通过对“相似程度”排序,找出近期走势跟大盘相似程度较高的个股。
2、也可以把代码中的IndexC换成其它作为样本的个股,找出同类走势的个股。
* ?, V, d! x) o. @8 q4 p
* @+ Z: C6 V6 L* `' V* H
转贴《教育统计学》中,对相关系数的描述:, {&&g, M* e. P; J( J% }
3 _- q% v" V' F
在教育研究中,常涉及到两个事物(变量)的相互关系问题,例如,学习成绩与非智力因素的关系,数学成绩与物理成绩的关系,男女生学习成绩的关系,等等。其关系表现为以下三种变化;第一,正相关:一个变量增加或减少时,另一个变量也相应增加或减少;第二,负相关:一个变量增加或减少时,另一个变量却减少或增加;第三,无相关:说明两个变量是独立的,即由一个变量值,无法预测另一个变量值。统计学中,就用“相关系数&来从数量上描述两个变量之间的相关程度,用符号“r&来表示。
相关系数取值范围限于:-1≤r≤+1
相关系数表示的意义
相关系数(r) 0.00 0.00-±0.3 ±0.30-±0.50 ±0.50-±0.80 ±0.80-±1.007 e: F' K5 X% H1 n7 c! U
相关程度 无相关 微正负相关 实正负相关 显著正负相关 高度正负相关) \" l: m2 t# d, R+ M0 r% \. `( t
五、不同股票(证券)引用不同大盘指数的参考代码:- ], T& E4 B( G" Q7 N4 ?- N; F
对于indexc替换成如下的index_c:
--------------------------------------------------------------------------------
index_sh_c:=
if(STKTYPE=1,&1A0002$close&," }4 x7 G' ]$ \( X$ ?& J$ |
if(STKTYPE=2,&1A0003$close&,0 _$ o&&S( @9 F2 F9 j& h& X9 P9 w8 E; w
if(STKTYPE=3,&1B0008$close&,indexc)));{对A股、B股及基金引用不同指数}
. e0 M; [+ e" X$ D
index_sz_c:=
if(STKTYPE=1,&399002$close&,: p0 T* [8 K) D) R8 u9 t- z
if(STKTYPE=2,&399003$close&,% D* E- J/ }9 h
if(STKTYPE=3,&399305$close&,indexc)));
index_c:if(STRCMP(STKMARKET, 'SH')=0,index_sh_c,index_sz_c);
) d! Y& |' ?$ i$ @
--------------------------------------------------------------------------------4 L: Q' R9 q( r6 a&&d! A
: I* o) a- E' f- d* {% D, A1 m0 e
/ K4 F- {# Z: ]: n. b8 u2 h
以上代码仅考虑了A股、B股、基金,其它未作区分,可根据自己的需要进行修改。+ m* I; H9 f&&v+ c
对于indexo替换成如下的index_o:! @3 ]& {( v. `: [
--------------------------------------------------------------------------------index_sh_o:=% e/ T* Y+ l4 T: c5 ~" Z
if(STKTYPE=1,&1A0002$open&,0 E' s7 k( U+ e
if(STKTYPE=2,&1A0003$open&,$ p* ~$ h7 A&&Z
if(STKTYPE=3,&1B0008$open&,indexo)));+ Y7 O0 _4 v/ x, Q/ W2 }- S+ n7 L
4 S0 u0 n/ j, T5 P; Y8 D7 i
index_sz_o:=
if(STKTYPE=1,&399002$open&,3 X5 ~, s7 f&&Y) E5 F1 T5 ?
if(STKTYPE=2,&399003$open&,; Z& V, f0 m/ f3 f% b" J# ]&&Z
if(STKTYPE=3,&399305$open&,indexo)));
index_o:if(STRCMP(STKMARKET, 'SH')=0,index_sh_o,index_sz_o);--------------------------------------------------------------------------------&&b& r* e6 _" t( @( b' ^4 w, Q
对于indexh替换成如下的index_h:( H" L' |# o1 h. u! |
8 [7 w% @6 {&&C, r
--------------------------------------------------------------------------------) _9 ^& w0 D&&v* C
index_sh_h:=
if(STKTYPE=1,&1A0002$high&,
if(STKTYPE=2,&1A0003$high&,; ~# q& a' }8 U1 s$ N4 X& K
if(STKTYPE=3,&1B0008$high&,indexh)));
index_sz_h:=
if(STKTYPE=1,&399002$high&,
if(STKTYPE=2,&399003$high&,
if(STKTYPE=3,&399305$high&,indexh)));&&^. J&&h. F&&q" V6 L1 \+ S! E
9 J) I# O2 x. B: m7 T: M7 ^7 a
index_h:if(STRCMP(STKMARKET, 'SH')=0,index_sh_h,index_sz_h);
5 V" B# U& q5 G; L. C( G# t" k
--------------------------------------------------------------------------------" H$ Y5 k2 n& E7 \6 T
! L6 _% O; r) P6 s0 ~4 x6 V
对于indexl替换成如下的index_l:
, v&&[; E3 h+ h. M% F' K* i
" O& p5 O: i9 b0 I&&F& F, k
--------------------------------------------------------------------------------2 D, X5 S! A" ]) M: [6 I
index_sh_l:=* s, |+ I7 d7 \
if(STKTYPE=1,&1A0002$low&,; ~- o# h( }7 R* B
if(STKTYPE=2,&1A0003$low&,
if(STKTYPE=3,&1B0008$low&,indexl)));
: H/ M1 k8 ]8 c2 I: A( P: U) w* i
index_sz_l:=$ S* J% V' F* P# l2 Q, D4 ?
if(STKTYPE=1,&399002$low&,* o# d& c2 I2 ?: E
if(STKTYPE=2,&399003$low&,
if(STKTYPE=3,&399305$low&,indexl)));$ D) D$ {8 r7 Z2 {
index_l:if(STRCMP(STKMARKET, 'SH')=0,index_sh_l,index_sz_l);
0 C. x/ H9 K8 |6 C
--------------------------------------------------------------------------------' Z* Y' U# M: @; N" `0 F
对于indexa替换成如下的index_A:
8 t" T9 m2 O+ H; ?
) }7 S1 n7 F% H0 B
8 s- u$ I$ w# N- B
--------------------------------------------------------------------------------
index_sh_A:=2 ~7 |( p4 A2 Q
if(STKTYPE=1,&1A0002$Amount&,2 y( [8 T5 o3 r3 ^
if(STKTYPE=2,&1A0003$Amount&,/ K$ U8 g2 [) C. w
if(STKTYPE=3,&1B0008$Amount&,indexA)));8 x, N7 c6 z2 W* K3 @" C3 D1 v
index_sz_A:=3 Z8 F8 [7 u, q. X7 O$ T- A# N
if(STKTYPE=1,&399002$Amount&,+ V- r' U: _7 ^+ D& Z4 j8 ~
if(STKTYPE=2,&399003$Amount&,
if(STKTYPE=3,&399305$Amount&,indexA)));
index_A:if(STRCMP(STKMARKET, 'SH')=0,index_sh_A,index_sz_A);
. d% h) Z2 m5 d6 r
--------------------------------------------------------------------------------
% v! w- ^4 G& S# |: r% J
对于indexv替换成如下的index_V:* h- o/ s- o! W2 V
6 E&&@&&U$ P( b# i7 ^; u3 G: Y
--------------------------------------------------------------------------------
index_sh_V:=
if(STKTYPE=1,&1A0002$Vol&,
if(STKTYPE=2,&1A0003$Vol&,0 {8 \! V, `8 f7 d& }1 v
if(STKTYPE=3,&1B0008$Vol&,indexV)));, {. F. k/ ]1 p" j, z1 W: ?, j% X
index_sz_V:=
if(STKTYPE=1,&399002$Vol&,
if(STKTYPE=2,&399003$Vol&,& A&&n* M" o" }: z1 J
if(STKTYPE=3,&399305$Vol&,indexV)));
index_V:if(STRCMP(STKMARKET, 'SH')=0,index_sh_V,index_sz_V);
--------------------------------------------------------------------------------9 z8 N" J( c5 v, k( F
六、控制语句if...then...else示例; |4 T0 N0 z( S+ g( d
通过参数N,控制调整均线数,代码参考如下:
input.:p1(5,0,300),p2(10,0,300),p3(20,0,300),p4(30,0,300),n(4,1,4);{参数定义}( h4 g# |# x) S& g. @6 H
IF n&0 then MA1:MA(CLOSE,P1);{如果n&=1则输出ma1指标线}7 v( |; W8 q# K9 C4 i. v( E9 f
IF n&1 then MA2:MA(CLOSE,P2);{如果n&=2则输出ma1指标线}9 v" c) V7 b/ o, D
IF n&2 then MA3:MA(CLOSE,P3);{如果n&=3则输出ma1指标线}
IF n&3 then MA4:MA(CLOSE,P4);{如果n&=4则输出ma1指标线}
* @8 [8 {: `% ~6 _9 x
由于目前IF cond THEN expr1 ELSE expr2 中条件cond暂时只能用常数,因此,可配合主要是参数、常数函数9 Y: S( p. b* P9 T
例2:修改成交量公式VOL,当流通盘不为零且当前周期为日以上周期时,显示换手率,代码参考如下(仿此,大家绕过指标模组,可以自行设计,“绑定”到周期、券种等的公式)/ `9 e1 [% ?3 w* M$ M6 o9 h
VOL,VOLSTICK;% ~# ]9 S&&f9 ~9 @# H6 V( ^
MA1:MA(VOL,M1);
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);
if capital&0 and DATAPERIOD&=6 then 换手率:vol/
当切换到60分钟及以下周期,或者切换到大盘(此时流通盘=0),会发现“换手率”指标线、名称及数值都不显示。
; d. [5 t* W5 A9 J
稍加改进,使用复合语句,可适用于任意周期:- A; l' d* }( d6 h# O0 _
例3,修改成交量公式,流通盘不为0时,显示换手率(60分钟及以下周期,计算当日最新的换手率),代码参考如下:( b& |' N: A2 j8 d: U! W4 T* l
3 V3 m3 ?! _6 j! L. T
&&i. D" `5 Z: h! p4 N0 J1 o* ~
PHP代码:--------------------------------------------------------------------------------$ a4 }) \" N9 Z8 _" G
VOL,VOLSTICK;
MA1:MA(VOL,M1);$ x9 @: s- x1 f: Q3 `
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);7 U$ J- v4 _9 Y6 M# a9 E* N
IF CAPITAL&0 then //如果换手率>0,则, R* M& g# E. [&&y" O- S&&D# y# a
IF DATATYPE&=6 then //如果周期为日及以上的较长周期,则, q5 \9 ?: P0 ~4 m, S
b:=VOL/CAPITAL*100# S; W! x) A& E2 K
else //否则% a1 x& U. q. n
begin //复合语句开始,即以下3条语句,视为1条语句,end表示复合语句结束
tj:=DAY&REF(DAY,1) or BARSSINCE(CLOSE)=0;, X5 d& c/ {, P5 o4 N; _+ F( _
ts:=BARSLAST(tj)+1;
b:=SUM(VOL,ts)/CAPITAL*100;3 I. w7 }' v: m6 `7 Q
) M6 \" B3 \) u0 u' U' U
换手率:b;--------------------------------------------------------------------------------* X% j0 j% O& t&&A2 i& j6 R8 ^% [
修改或创建这个公式后,大家会发现,只要流通盘=0,则换手率指标线就不会被显示,例如切换到大盘观察。+ m8 l" `' B: O/ w, r
/ ?, ~- E- C4 ]) Q
七、循环语句示例:移动平均线的N种写法3 i' F$ m&&@" J: D&&m! |
移动平均线的N种写法(V3.5.30828 以上版本支持)8 ?7 p% ~, H) w
' q$ i- W/ W
- Z2 j# F# m* b2 T* \
--------------------------------------------------------------------------------: j: q4 N; |
INPUT.:n(5,1,300); //参数申明3 p% i4 F9 t" x2 t8 w&&l- a& k
VARIABLE:k=0; //变量申明
FOR i=0 TO n-1 DO; d0 q- T3 h% I# Z
k:=k+ref(close,i); //把最近 n 天的收盘价累加
MA1:k/n; //实现MA(C,N)
9 y: q% S' E8 J1 H- F
///////////////////////////////////////////7 v% _( {, ^6 j&&D* ~& V
INPUT.:N(5,1,300); //参数申明$ G. d6 n! N: L: f. C* j' Q3 H
VARIABLE:i=0,k=0,j=0; //变量申明/ a9 L$ f/ }9 m
FOR j=1 TO DATACOUNT DO
IF j&=n THEN
WHILE i&n DO
k:=k+VAR1[j-i];0 G" J1 y% |4 y5 q
i:=i+1;: d% q: v, C' p: Z&&d5 U
MA2[j]:k/n; //实现MA(C,N)
END;5 V7 s9 [% P7 g( Y# p$ N+ A* m
END;/ B8 n- I&&K' Z2 }
8 p&&u) Q% P- B/ x% u* ~
///////////////////////////////////////////
INPUT.:N(5,1,300); //参数申明
VARIABLE:i=0,k=0,VAR1:=C; //变量申明
FOR j=1 TO DATACOUNT DO4 h1 f/ m6 L( P
k:=k+VAR1[j];8 K8 T( b3 [. {5 Y( r
IF j&=n THEN
BEGIN4 B' m7 ]% D/ l- t
IF j&n THEN2 j- ~& p8 g8 T&&D# y
k:=k-VAR1[j-n];
MA3[j]:k/n; //实现MA(C,N)3 s% c: ~, D, x8 ?! T&&d. E+ T" k- l
i:=0;( Z: O6 a" {9 J( t5 O
END;1 C&&Y+ R9 S- E( `
/////////////////////////////
! z! A# Y+ [&&w( k- R
--------------------------------------------------------------------------------
) Y" g+ |8 Y9 I+ P8 O- Y1 h
还有很多写法" P$ A9 _( F$ k/ r* }# {9 P
8 Z, Y) c4 ^
还可以只计算最后1个有效数值,比如用于提高预警速度,大家练习试试. I* w( \' m&&?
//////////////////////////////////////////////////////////
7 n- D- p5 |& S6 @" {% O&&s: H8 L6 [
南客再附上一段历史流通盘的代码:8 ^&&N3 N' j( u2 c% B0 ~4 j
//说明:本公式,无法计算增发、职工股上市等情形,公式原型为原子兄用VBS设计的代码
var1:=splitdata(1)+splitdata(2);
cap:=c;9 F. a/ k* f! M- s1 P2 H' y
cap[datacount]:=1;3 w3 j4 g' N$ U- R. S) v* v- {
for i=datacount downto 2 do cap[i-1]:=cap/(1+var1/10);3 }2 K) @5 J, R
capi:=cap*capital/100;
历史流通盘∥万股:; U( Y' _' L8 d& t. `&&@
drawnumber(cap&ref(cap,1) or barscount(c)=1,capi,capi,0);( u( W3 `7 F; l1 x" }: F
5 W+ ~" P9 U" y# |
八、序列数据量
所属类别: 常数函数 参数数量: 02 K, t: b& @: _' `( D4 B
序列数据量。: }* e4 `7 e7 e& Q+ F&&t# X
DATACOUNT,返回序列数据数量7 b' {' U! A&&{# m3 D&&S! E
注意:该函数返回常数
4 ^2 u# a+ g3 z9 ~* k
  解说:以日周期为例,我们知道,个股的收盘价就是一个序列变量,每天都有一个数值,总共有很多个数值,到底有多少个数值?如果个股数据是完整的,数值的个数就是上市后总的有效交易天数(即K线的数量)。显然人工去点不现实,这里提供的函数,就是计算这个数据的。) t, J# _; Q* |+ c
  代码示例:* e! f" ?+ @: W( Z/ E&&v
②在飞狐新开发的公式系统中,序列变量可以用数组表示,比如:6 |" N$ P. H" V" V3 Q) y
fc:=. j: n5 P2 @3 t
定义了一个序列变量fc,它等于个股所有的收盘价。请看下面代码:4 H/ B0 {8 R# S9 e! D
fc:=c;) {&&G' y4 Y+ _- y: {
第1天收盘价:fc[1];
最后1天收盘价:fc[datacount];
&&T9 B2 Q, l+ H1 a% J
图示如下1 S4 [4 i: ~6 e9 b8 F+ C3 z$ V6 z
4 r6 V8 Z# \" B; M7 M6 m3 f
  想想看1:如何表示第1根K线的日期(通常是上市的日期),如果想将股票按上市日期先后排序,这个公式会很有用。$ e& X: w3 ^9 b7 r( m* j: ~
  想想看2:编写一个选股公式,选出上市天数少于N的公式。1 Q1 v) `3 l6 N% b( p$ J
' z) _' T* }- G* {6 ~' U
与barscount的区别:显然,这是一个序列变量,随K线的位置不同而不同。而datacount是一个常量,不管在哪个K线的位置上,它都是同一个数值。
新增函数应用:如何遍历板块股票代码
* e, g: W0 O3 l* m
PHP代码:--------------------------------------------------------------------------------
bk:='深圳A股';" X2 X! B# h% |7 w. o
variable:j=1,k=0,dm_len=0,lstr[6]='00000',blksum:=STKCOUNT(bk),dmstr[blksum]='';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';# {! U/ P; x( J6 Y5 z" j
while j&=blksum do begin
dm:=NumToStr(k,0);' @& D: Z4 v. ]) q! [
dm_len:=strlen(dm);
dm:=lstr[dm_len]+
if stkinblock(dm,bk) then begin
dmstr[j]:=
$ Q8 T8 J0 d! Z
+ j' ^( |! }* q+ G( u
//以下是一些字符串函数及运算的综合应用% S4 c# G. R) C5 A&&e5 J& v
EXPLAIN(1,dmstr[1]); //在解盘中,输出深圳A股第1只股票的代码6 K0 t) `/ ?$ X: q$ c
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称& l4 I& Q- {- \+ v
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称% F/ ~2 M7 \1 T6 X" A
EXPLAIN(1,'深圳A股第4只股票的代码是:'+dmstr[4]);
EXPLAIN(1,dmstr[5]+'最后收盘价:'+numtostr(close,2));
EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------; a& A5 N; q3 Q. e! \, I
  如果您有编程的功底,上面代码一看就明白,但对没有编程经验的狐友们来说就不容易了。下面尽量详细地对思路和公式代码做一些解说,并对代码进行适当扩展。6 ~; I- q# }: [, L) D
  1、所谓遍历股票代码,就是能够访问某板块中所有的股票代码,如果连访问都不能实现,怎么做一些更加强大的诸如横向统计、排序的功能?
  2、上面的公式代码是以深圳A股板块为例,我们看看深圳A股的股票代码,它们都是很有规律的,0002、...、,请注意这些代码的特征:
  ①股票代码要理解成字符串,而不是数值,如果是数值的话,股票代码就成了1、2、...、999、。
  ②这些代码如果转换成数值,大体集中在某个数的范围,如上面所示,深圳A股代码的数值目前都小于1896,代码的数值大多都是呈递增1的规律,少量有跳跃的情况,比如000040跳到0041不存在。
  因此,我们初步可以设计一个循环8 o0 U7 _, }& v- H
' i! B, X! j% H# U0 w
PHP代码:--------------------------------------------------------------------------------! g$ o* H$ j&&M) @2 f1 W7 ]2 ~
j:=0;9 `7 g+ y& \% |, {
while j&=1896 do& c( T6 U6 d4 n! U+ T6 E1 ^
--------------------------------------------------------------------------------
  上面这段代码,是个循环,每次循环都执行一次由begin和end所包围起来的语句,这里只有一条语句即j:=j+1,目的让变量j从1每次循环都递增1,直到j=1896为止。" W, g# @& V9 U9 W&&A
  j:=j+1这条赋值语句,初次接触的话不大好理解,大意是这样,右边的j比如现在等于2,这条语句是让右边的j现有的数值加上1,然后再送回到变量j之中,执行完这条语句后,j就由2递增1变成了等于3。
  j:=j+1,看起来有点象计数器的功能吧?每循环一次,计数器就增加1,因此也可以称变量j为计数器(变量)。* E9 A% O, F5 s* k0 D% x) G: ^6 ]$ z
  好了,思路敏捷的狐友,马上就能想到,这个计数器会生成从0到1896总共1897个数值,如果进行转换,也就是把数值转换成字符串,则深圳A股所有的股票代码都包含在里面了。8 |0 Y" z4 A1 t1 s6 E# h6 h
  呵呵,的确是这样,因此我们设计下面一个稍加改进的循环,来逼近我们要完成的任务:' i- V1 h# R3 M4 F
: k7 C% q. c. p% @5 ~. ]' E
PHP代码:--------------------------------------------------------------------------------$ M3 o* P" h8 b" I
j:=0;" p$ A0 @7 ^* f* D: H' I* W
while j&=1896 do
begin; l+ ^! t4 s- h
dm:=NumToStr(j,0); //把数值j转换成字符串并赋值给变量dm,保留小数位数0
j:=j+1;1 K8 K; j2 B# p: W* B7 `+ {
EXPLAIN(islastbar,dm); //当处在最后一根K线位置时,输出字符串dm的内容--------------------------------------------------------------------------------. ]. P6 W! o6 o& P
1 G- q- p! Z- E
  最后一行代码,是用解盘函数输出字符串变量dm的结果,我们可以在“解”中观察,不过这里由于dm是单值变量,不是序列变量,只能保存最后的一次结果,因此只能观察到结果是1896。0 E$ \! G" Z' h! B5 L( u
如果想观察其它的结果,只好改循环首语句,比如:
while j&=1 do' R1 j9 o1 z1 \
 大家可以发现这些结果,还有一点小问题,没有前导的0,即我们要的是01896,而不是1、1896这样的字符串,怎么办呢?( \+ B& o& p
  给它们的前面加上0就可以了,但加上0的个数有讲究的,比如1在前面要加上5个0,1896前面只需加上2个0,很明显,要加的0的个数,等于6减字符串的字符个数。因此,设计公式代码如下:7 t9 f: s* S6 y&&Y+ N: K8 r0 u3 B' h7 d
3 ~9 X&&t* B2 ~# `
PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';//定义一个数组lstr[6],共6个元素,并让所有6个元素初始都等于字符串'00000'
//下面对字符串数组lstr[]第2至第6个元素重新进行赋值,以便巧妙应用
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';- @' Y1 F4 y' N
j:=0;7 b8 R/ L( W( I
while j&=1896 do/ Y# c$ z( Z5 s3 i
dm:=NumToStr(j,0); //把数值j转换成字符串并赋值给变量dm,保留小数位数0&&Z; o" h$ \* U9 @2 T* n
dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
dm:=lstr[dm_len]+ //由dm的长度,确定应该给dm的前面加上多少个字符08 b0 C! E# v: P, p2 |
j:=j+1;2 L+ W$ K7 l/ a$ e
EXPLAIN(islastbar,dm); //当处在最后一根K线位置时,输出字符串dm的内容--------------------------------------------------------------------------------  对这行代码稍加解释:dm:=lstr[dm_len]+dm,如果某次循环右边的dm等于'19',则它的字符串长度为dm_len等于2,则这行代码此时等价于dm:=lstr[2]+dm,而lstr[2]等于'0000',结果就是在'19'的前面加上4个字符'0'即成了'000019',然后再把'000019'赋值给dm,于是左边的dm就等于'000019'7 v$ ^) E# c* Z8 v% Q0 R9 c4 w! q0 g% g
" S; j2 W&&n! _0 P; s&&O
  到此为止,我们只是实现了所生成的字符串,可以让深圳A股的代码全部被包含在其中,但还有大量的“废”字符串,我们要把没用的字符串过滤掉。取出我们真正需要的。  要用到的函数  ①stkinblock(dm,bk),函数注释:如果股票代码dm从属于板块bk,则函数返回数值1,否则返回数值0  ②条件控制语句IF cond THEN expr1 ELSE expr2,意思是:当满足 cond 条件的时候,执行语句 expr1,否则执行 expr2 语句  设计代码如下:PHP代码:--------------------------------------------------------------------------------8 e: [2 @/ ?$ u
variable:lstr[6]='00000';8 @5 U; }0 n% l. q
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;" w0 T) O' D5 i- _' t7 r. ^1 B
bk:='深圳A股'; //bk赋值为字符串'深圳A股'
while j&=1896 do
dm:=NumToStr(j,0); //把数值j转换成字符串并赋值给变量dm,保留小数位数0) F0 }2 _* w5 C&&K, Z
dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
dm:=lstr[dm_len]+ //由dm的长度,确定应该给dm的前面加上多少个字符0, R: G5 u9 h: [&&S, j$ R* Z6 Z- X
if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句1 w/ G( i9 h' p$ g$ F# c3 p4 G
begin( y4 s! ?& S8 L/ x" j0 ]. k. ]
dm1:= //真正需要的股票代码是这里的dm1
, Z6 J' _1 H; m
% g, H/ g2 S9 }5 }
EXPLAIN(islastbar,dm1); //当处在最后一根K线位置时,输出字符串dm1的内容--------------------------------------------------------------------------------0 j1 O0 N, l+ s% a2 G3 ]
/ L5 G" j&&^5 ~) u3 {
公式代码设计到这里似乎可以结束了,因为我们要的结果都可以生成了。其实还有改进的余地:  ①dm1只是个单值的字符串变量,它只能保存最后的结果,而不能保存所有的结果。这里考虑使用数组,数组可以自行定义很多个元素,让每个元素保存一个结果。  ②循环首的j&1896总觉得不对劲,不够智能化,比如将来“深圳A股”板块最后的代码不是0001896,则这段公式代码的结果就不对了。  针对以上问题,设计公式代码如下: PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';# W) T5 b( K' z- q/ N$ U4 k
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';& r9 k) e9 ]0 R. B3 L
j:=0; //记录循环次数的计数器1 Z" e! U/ H7 q. u# o* H
k:=1; //记录股票代码的个数的计数器
bk:='深圳A股'; //bk赋值为字符串'深圳A股'
blksum:=STKCOUNT(bk); //板块所包含证券数量, m8 x* x4 D6 W1 X, i, X# A
variable:dmstr[blksum]=''; //定义一个字符串数组用于记录股票代码,元素个数为blksum,初始值为空
while k&=blksum do //当计数器k&=blksum时,执行以下循环3 ^* H8 q0 v) f, F9 d
begin! u% Q6 I( m: V&&j( [2 t. V
dm:=NumToStr(j,0); //把数值j转换成字符串并赋值给变量dm,保留小数位数0
dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len, Y4 h- G# d2 {
dm:=lstr[dm_len]+ //由dm的长度,确定应该给dm的前面加上多少个字符0! R' ?4 G4 {9 Q' @$ L6 W# X
if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句1 V4 N! O" ]/ ~# Y* j' x( h' s$ B
dmstr[k]:= //真正需要的股票代码,记录到字符串数组dmstr的第k个元素中
k:=k+1; //记录找到的股票代码的个数
j:=j+1; //记录循环的次数
EXPLAIN(islastbar,dmstr[1]); //当处在最后一根K线位置时,输出深圳A股第1只股票的代码--------------------------------------------------------------------------------
  有了以上公式,我们就可以把范围扩大,比如遍历'A股板块'的所有股票代码,很简单,只需改一条语句,即把 bk:='深圳A股' 改成 bk:='A股板块'。  公式代码如下(且慢执行,等下面的解说):PHP代码:--------------------------------------------------------------------------------0 N, e- V% A; F7 f0 J* o+ |&&d
variable:lstr[6]='00000';; Z; C4 X9 W; k4 ], o: L
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0; //记录循环次数的计数器
k:=1; //记录股票代码的个数的计数器2 s" }) w% ?5 M7 F
bk:='A股板块'; //bk赋值为字符串'深圳A股'
blksum:=STKCOUNT(bk); //板块所包含证券数量
variable:dmstr[blksum]=''; //定义一个字符串数组用于记录股票代码,元素个数为blksum,初始值为空
while k&=blksum do //当计数器k&=blksum时,执行以下循环9 X2 v! K7 x- ?
dm:=NumToStr(j,0); //把数值j转换成字符串并赋值给变量dm,保留小数位数0: P; T' S. z3 k% t
dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
dm:=lstr[dm_len]+ //由dm的长度,确定应该给dm的前面加上多少个字符0
if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句$ Q+ O( r" x" l2 J5 H
dmstr[k]:= //真正需要的股票代码,记录到字符串数组dmstr的第k个元素中
k:=k+1; //记录找到的股票代码的个数- z* v3 {7 z) d. W. ~, F3 q
! s8 r% q, S" V
j:=j+1; //记录循环的次数/ i+ i/ H8 @; s1 A/ T! ?
5 t9 F' i8 o8 J- m( r( F7 u# }
EXPLAIN(islastbar,dmstr[1]); //当处在最后一根K线位置时,输出字符串深圳A股第1只股票的代码--------------------------------------------------------------------------------  假如你试图执行这段代码,你会发现好慢哦~~  为何会这样?因为从深圳A股切换到上海A股的股票代码时,是从1896跳跃到600000,中间有508104次空循环,这中间没有一个代码是真正的股票代码,因此可以这样来提高循环的执行效率,在公式代码中插入如下几行代码:if j=1896 then j:=599999;if j=600999  优化后的代码如下: PHP代码:--------------------------------------------------------------------------------; @3 W# H9 g9 c. Q: z5 {&&f
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';; J$ @. I3 Z4 f+ j: S- `( b
j:=0; //记录循环次数的计数器
k:=1; //记录股票代码的个数的计数器
bk:='A股板块'; //bk赋值为字符串'深圳A股'
blksum:=STKCOUNT(bk); //板块所包含证券数量$ ]8 H* @) G, G8 C& [1 B
variable:dmstr[blksum]=''; //定义一个字符串数组用于记录股票代码,元素个数为blksum,初始值为空
while k&=blksum do //当计数器k&=blksum时,执行以下循环" C' V0 f& Q3 S6 G% }
begin, t( S% t: [7 U2 l/ R
dm:=NumToStr(j,0); //把数值j转换成字符串并赋值给变量dm,保留小数位数0" U: j7 n) S! w/ s&&g
dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
dm:=lstr[dm_len]+ //由dm的长度,确定应该给dm的前面加上多少个字符0
if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句
dmstr[k]:= //真正需要的股票代码,记录到字符串数组dmstr的第k个元素中
k:=k+1; //记录找到的股票代码的个数
1 _, L4 i) Q: q, }) i# u- K% B
if j=1896 then j:=599999; //计数器j直接跳到到上海A股对应的最小代码
if j=600999 //如果记录到这个代码则跳出循环+ y5 I5 w3 f- ~' J&&R& U7 }
j:=j+1; //记录循环的次数
//以下是一些字符串函数及运算的综合应用
EXPLAIN(1,dmstr[1]); //在解盘中,输出深圳A股第1只股票的代码
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称( M( @' Q. {7 f- P8 B
EXPLAIN(1,'深圳A股第4只股票的代码是:'+dmstr[4]);
EXPLAIN(1,dmstr[5]+'最后收盘价:'+numtostr(close,2));
EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------  这行代码 if j=600999 then break 有什么用?以防万一,如果有人改了市场规则,把500001之类的股票计入上海A股的话,这里的循环会出不来的,会造成电脑死循环,飞狐长时间没有响应。 以上公式代码,只是个示例,效率不太高,如果能有个方法,直接给出板块中所有的股票代码,那就不需要这段公式代码。  给出这个示例,是想通过大致解剖整个公式代码的设计过程,让大家对循环、条件语句有个初步的认识。  最后,给大家个练习的机会:  1、修改上述代码,计算“A股板块”的成交量(这就是横向统计了)  2、以上公式代码,使用的是while循环,有办法改成fox循环吗?(当心,在修改代码的过程中,如果不慎的话,有可能造成死循环,对于win9x操作系统,也许很难退出,对于NT以上操作系统,可以强行退出)  3、高级问题:通过以上代码,可以做出横向排序,不过建议不要用代码本身来实现排序(会很慢的),应使用今天发布的新函数SORTPOS(X,D,N1,N2)来实现。  4、借用论坛的一个问题:ff:=barslast(date=1030107);周期:=5;VERTLInE(ff=0 or ff=周期*1 or ff=周期*2 or ff=周期*3 or ff=周期*4 or ff=周期*5or ff=周期*6 or ff=周期*7 or ff=周期*8 or ff=周期*9 or ff=周期*10or ff=周期*11 or ff=周期*12 or ff=周期*13 or ff=周期*14 or ff=周期*15or ff=周期*16 or ff=周期*17 or ff=周期*18 or ff=周期*19 or ff=周期*20or ff=周期*21 or ff=周期*22 or ff=周期*23 or ff=周期*24 or ff=周期*25or ff=周期*26 or ff=周期*27 or ff=周期*28 or ff=周期*29 or ff=周期*30or ff=周期*31 or ff=周期*32 or ff=周期*33 or ff=周期*34 or ff=周期*35or ff=周期*36 or ff=周期*37 or ff=周期*38 or ff=周期*39 or ff=周期*40),POInTDOT;  把以上代码,改成用循环表示。  5、一个数列定义如下:f[1]=1,f[2]=1,f[n]=f[n-1]+f[n-2],你能用循环计算出f[10]等于多少吗?这个数列是很有名的,许多股票预测都会用到它。  呵呵,具体我也记不住了,谁能告诉我它叫什么?6 [- O0 \+ o4 `6 i& F- ]4 U, v
VBS入门续:条件语句8 x$ ^" r* w, A9 U
VBS入门续:条件语句5 i# D" ~, r$ v
3 }; X' T0 j% N( {& I4 f, X
条件语句是程序中的最基本、最重要的语句之一,今天通过一个简单实例学习条件语句。& V) c, Y- E8 h7 b
- n6 F4 l' D. n9 j
问题:设计一个指标,除首日外,如果当日涨停(设10%为涨停),则公式输出1,否则输出0。) O* U" t" ^) w
公式代码:
fc:=c;3 r2 V; i, p$ c
n=1.099;; X0 k6 B& `/ M' o&&n3 Q# L: n
&%9 l# Y! z' W8 p
vc=ffl.vardata(&fc&)
vn=ffl.vardata(&n&)
vs=ffl.vardata(&js&)
$ s- P# E&&X&&c' V&&f0 C
last=ubound(vc)0 W- G. {( i/ V&&i
9 Z3 N6 z& F* l5 Q# a0 g
vc(0)=0; C! N3 A9 K" I0 X8 r! @
for i=last to 1 step -12 F: Z8 g9 y& K! c3 ]6 o
if vc(i)&=vn*vc(i-1) then; c* K# L" H8 C
vc(i)=03 g' B7 k$ ^0 f
ffl.vardata(&fc&)=vc/ Q! f( u. Z+ y0 H
%&- ?$ y, u6 ]
VBS程序条件语句部分解释,参阅VBS帮助文件,如下代码为条件语句:
+ R3 r$ P&&G( N. F# H) ~: x
if vc(i)&=vn*vc(i-1) then ----如果...则,这里的条件是判断当日涨停否5 }, E( p6 L* a6 o. e( e
vc(i)=1 ----vc(i)赋值16 D! M! _3 \7 O8 Q# U' I
else ----否则
vc(i)=0 ----vc(i)赋值00 z% i9 P- n! j! N' |" {
end if ----条件语句结束
飞狐基本函数简介之指标线形描述函数
这一组中的函数,全部不能单独使用,一定要和其它指标一起用才能发挥效力,因为它们都是描述其它指标的。
指标在主图或副图中的显示,主要分为棒状(柱状)和线状两种。这一组中的函数,全部是为了指挥指标的显示而设计的。
, n" P8 ?( U& m) I
掌握好这组函数,可以使指标输出显示丰富多彩,色彩缤纷。
使用的一般形式:
指标,描述函数1,描述函数2,...;; a5 S3 X0 ?. `7 K&&n7 K3 |. d
一、0 x$ [% U# M" Z
! ^* y$ l- W, B0 D" B( a
函数: STICK
5 T8 t3 X# m" a3 c! X% c+ G) g
, k7 E9 n- ?& M9 k
. T# x, O4 h4 X&&c& e
说明: 画棒状线
示例:, K" {' \& I% U, q
3 P; J&&|1 |; o' `# W& K' p' O
STICK的英文是棍、棒的意思。
一般指标的显示,在软件中默认是线状的。即如果不加指标线形描述函数,则指标以线状的形式输出显示。! E. R* }' W. `9 i# _: R. b8 e
8 ^' t/ [7 j
如公式:' ]&&~8 d, J$ ~! D
- M8 N5 p! M; i! p! p&&y
0.98*L;{主图叠加}: Z; o# K, N1 o1 S
如加上棒状线的描述,则变成这样了:
4 b& E* j9 ^/ H5 u
0.98*L,STICK;{主图叠加}/ B$ T3 p3 u! U& U9 P4 d. f/ Z
一般的信号,不加描述函数,会成箭头状。加了STICK之后,就成棒状了。
- ^/ P$ r! H5 ^: E: L
副图1公式:  C&REF(C,1) AND C&REF(C,2);
副图2公式:  C&REF(C,1) AND C&REF(C,2),STICK;* n1 ~0 V9 t3 U5 l! ]7 l5 W2 k
6 b2 T4 F! d&&u& @+ v
我个人调试公式的体会,还是副图1的显示清楚,因为可以看到连续信号的出现。, Z$ s! j) v0 a3 o7 n" W
1 P2 ~0 X; _# w5 B& W
二、! [7 g4 u' R( q&&x2 v' o# `# ~; e
函数: COLORSTICK. O: k, c$ x! a* m
返回: 无1 r' S" N& b&&r( Z
说明: 以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色
&&[4 F8 `1 t1 i7 E
示例:/ Z2 ?, g+ X, k9 ~
( S' V1 m$ r% N! c' ^
这样零轴就如楚汉交界,泾渭分明了。/ |6 `6 K( F: h* e
C-REF(C,1),COLORSTICK;{副图指标}0 b" X; {' L0 A; {( m& v
3 T( A. [$ y' W) Q, E- K
三、4 F6 m2 z( j6 N6 r% Y
5 w* L2 E( M$ J! L! ]8 g8 c7 @
函数: LINESTICK
参数: 无& b8 T( l&&B4 j8 A
4 T4 h' }$ B) y& }&&Y
返回: 无6 E4 Y! c" H* b+ d
说明: 同时画棒状线与指标线。7 b! x% ^0 ?( a&&\$ W+ M
. [6 X. ?% r. W7 c
示例:" O& D& P8 h( T% f. v: K! z5 l+ r
LINE是线,STICK是棒,LINESTICK自然是线棒一起显示了。5 V% w. L% o3 b# t: L* A1 c9 n
; t. z* O" b! I# w5 l
A:=C-REF(C,1);
A,LINESTICK;{不作说明,都认为是副图指标}4 L8 ]1 O! x& G" a! Y+ k/ I
. b( o9 K. Q/ p5 T6 w
那么,即想显示指标线和棒状线,又想以零轴为中心显示彩色棒状线,怎么写公式呢?这样行吗?9 O( c1 L; ?( _&&y" x! \
1 i1 w3 D* V" l" m. r
A:=C-REF(C,1);
A,LINESTICK,COLORSTICK;, v. A1 h&&h( C: O8 H
各位可以自己试一下,结论是否定的。结果是只有彩色柱,没有指标线了。9 A% r' D/ Z; _9 N8 q/ x
( n0 t3 y+ z& W" D% Q: ?
这样我们初步可以得出一个结论:在同一个指标中,有多个相同性质的描述函数时,软件只认最后一个描述函数。9 V8 V6 @( M$ n5 {& P
2 d. _" C& E5 v: a8 W& n+ }1 m/ B
即想显示指标线和棒状线,又想以零轴为中心显示彩色棒状线,可以用分开的两句语句来达成目标:&&r5 z0 E, ^* s) f, h: `
. r# E3 K0 @7 X7 E4 W; M9 p
A:=C-REF(C,1);
A,LINESTICK;; A9 U- t! J- H! \
A,COLORSTICK;
四、+ |) `6 Q. {* E( _. X
5 J) [, N# L2 c
函数: VOLSTICK
3 d: J2 ]0 f5 n0 n
返回: 无. W2 V& K1 a. C6 X( b&&]% ~
2 }5 H, ~, W: \: m* I: G) v
说明: 画成交量柱状线。9 p0 S8 w- m0 L- F$ E$ H& F
$ y2 D, R9 q
示例:2 W* y8 y) [$ C4 I9 d! W0 ^# I
+ k' J( K&&}! q- Q
这是专门为显示成交量设计的。
股票软件不同,显示成交量的阴阳线是很不同的。总的来说,是根据价来定的,具体方法各有不同,很难说哪种方法就好了,哪种方法就不好了。
飞狐中的方法是这样的:今天的收盘价大于昨天的收盘价,显示阳柱;小于等于则显示阴柱。* d& ?3 E7 ]: G9 [
五、: g$ i* u" q
2 i2 u$ i" B/ j* p# a
函数: CROSSDOT
8 s) C/ r0 f5 }1 X; W9 l: w
参数: 无- Z2 Z: J% Z6 a4 {+ u
4 u$ e! I/ X9 `, h, M7 N&&|
返回: 无7 P( [&&`' k9 i* o
2 }9 O9 v. d1 O4 B& X9 g
说明: 画叉状线或x状线。
0 w$ w- b7 Y( W- h
示例:1 K" Z# @; q( g1 C1 p/ `
6 }- o) G) i0 @3 M5 O
呵呵,叉状线和X状线有什么区别?应该是一样的吧。* z' y$ _4 X& q0 s&&]% @8 N
CROSS是交叉,DOT是点。
" Z( V; w- e$ W0 c. @) R! L
当指标线连续性较好时,显示交叉点比较顺眼。连续性不好时,看起来比较凌乱。
0.98*L,CROSSDOT;1 H: u! s" y+ j! |* N, U
, @& o# K: u1 h5 Q$ R
MA(C,30),CROSSDOT;{主图叠加}
6 M* ^. c/ x, n( @; j. ]/ E6 |
2 ]8 M" [' L/ V; z
函数: CIRCLEDOT4 E* X2 u+ K& r& e( R, u
说明: 画小圆圈线# ~& e$ ~4 k# ?' O' D6 L) v
" L/ Z/ ^( f( V
; R, S) w5 ]' Q' s9 S
CIRCLE,圆圈。把CROSSDOT的X显示换成圆圈的样子。如果结合后面的COLOR函数一起用,可以画出不同颜色的圈圈,有时也比较实用。1 k' F4 A% i3 G/ W0 o0 `+ p- {
8 {) X- @" K! F$ J&&y
函数: POINTDOT
8 j% ~& ^&&|: t2 f4 C
参数: 无+ A* N. B! h4 \) ~( S9 H
, Y' h6 P9 D. b: M6 @* E
说明: 画点状线
1 m$ p+ |$ L: B) l, i
示例:& \/ ]5 W; Q1 Z
POINT是点、加点的意思。这个点状线,在K线显示数不多的情况下,看起来太小了。正因如此,在K线显示数较多的情况下,就可以弥补CIRCLEDOT显示太大的缺陷。
0.98*L,CIRCLEDOT;
MA(C,30),POINTDOT;{主图叠加}
八、" w4 n: M9 @1 k( H: S( {* ]. v( W
函数: SHIFT
参数: 1--127
: O- W7 g* Y$ |# B0 a+ d5 j
5 t, f% k: u' f- G, w4 N) |
说明: 指标线向后(向右)偏移x个周期
示例: ma1:ma(close,5),shift3;将MA1指标线向后偏移3个周期
SHIFT,移位。这是个飞狐比较有特色的的特色函数。
5 Q2 ?) |7 P&&d4 S
以以下公式为例子:&&f7 M/ @' R, x3 ]) w, r&&w3 {
: V$ C4 B&&r; `&&q3 o! e. d: W8 e
% o4 [- M) B" n, j
MA(C,30),POINTDOT,SHIFT5;{主图叠加}
* l+ z% t0 B" |: y' j
要注意两个问题:
7 i$ [. Y* R: J2 q9 Q3 Z$ s5 [) @9 {
1、移位后的指标显示数值和不移位时的数值是不一样了。移位了五个时间单位,就显示五个时间单位之前的原数值。) ^) T: O" G8 y4 x8 v
3 {$ E$ D+ F0 ^0 r% V
2、所移位的周期数,不能设为参数来调整。移位的最大周期数是127。如果写成SHIFT666,调试公式也能通过,不过软件自动取了127来移位。1 S5 p/ o$ B&&j
另外说点题外话。' O6 W3 w6 U, @8 Q* ~
7 r! [- X9 O( `5 J4 E2 g
用SHIFT10之后,当前日的指标显示的就是原10天前的指标数值。也就是说,把最近十天的K线数据,置之不理了。+ b1 E0 C&&p" L0 `7 z
. i- I&&a" n) L& A9 B! {
从人的记忆的特征来看,越近发生的事,对目前的影响力就越大。这样看,用SHIFT就一无是处了,因为它抛弃了最近的数据,而去找较早的数据。4 A2 J! J. g1 ^& |0 ]7 Y, z0 X- V
从混沌学牵一发就能动全身的观点看,SHIFT就大有道理了。佛教中说前世的因,后世的果,相差时间就长得不好说了。
# F& V2 w/ W( G
这些讨论一般难得见到。易股论坛中有位台--湾的老兄,发了两帖,来讨论K线左移(或者说是指标线右移),我才留心了一下。巫山的朋友有体会的,不妨说说。) y: V6 l. t' P2 b* {. |4 q* R
8 `7 S) m7 K. C& o5 q: f
函数: LINETHICK6 @, [# @* |8 U
参数: 0--7
9 n2 Y0 @$ T5 ^4 _
返回: 无1 D2 Y7 u& {7 \6 X8 i6 H! X" P% p
说明: 改变指标线粗细,LINETHICK0 表示不画出指标线,不影响坐标,但可在顶部显示数值。
&&g7 f$ {) P2 V( E, E7 Y8 A9 A
示例: ma1:ma(close,5),linethick3;
ma1:ma(close,5),linethick0;表示不画出ma1指标线,不影响坐标,但可在顶部显示ma1数值+ P' g: \$ F* E/ ~4 I
THICK,厚的。LINETHICK就可以理解为线(棒)的粗细了。
V,STICK,LINETHICKN;
: p. C! |3 ]) n) K: Q# X; r) v
N分别取1、2、3、4、5、6、7,做七个副图公式。
这个N也不能做成参数调整的。& @$ H+ V0 O! Z
7 ^6 r# v0 Q/ |
LINETHICK0是非常常用的,因为一个公式中指标一多,显示会很乱,把有些显示去掉,就用这一招。. C&&x5 j% y) i
有时会碰到相反的情况,指标线(柱)显示不多,而顶部数值的显示太多了,那么怎么画出指标线,而又在顶部不显示数值呢?
- d1 o6 Z: o% E/ N
一般用STICKLINE(画柱),PARTLINE(画线)等绘图函数来解决。
PARTLINE(1,MA(C,30));{主图叠加}
$ E6 A& ]0 h6 E) C2 W; O9 o: Q- i) Q
十、5 b! U; C* ?0 {8 j$ x8 `
) H0 J) \2 B7 Q! }( c
函数: COLOR
; v3 O: U* `9 y6 V& [' F
参数: 000000--FFFFFF' g1 k( T) ~* i&&V# Z1 `
$ g: Q) q$ M+ B" k
返回: 无; F4 X1 L/ F- o& }8 `
5 g( U, ]2 t' ]
说明: 改变指标线颜色。; B4 u7 p6 z0 l
% a2 z6 G2 j$ ^8 `- Q' V) ^' d
常用: 黑色:colorblack 红色:colorred 绿色:colorgreen 蓝色:colorblue
    白色:colorwhite 灰色:colorgray 黄色:coloryellow 青色:colorcyan/ F( i1 M$ d
    晶红色:colormagenta 棕色:colorbrown3 z5 @5 `$ i, R7 A/ j' M&&m
示例: ma1:ma(close,5), 或 ma1:ma(close,5),colorff0000;
! l" d6 t$ C# B# I. N( Q
附录: 238种常用颜色代码速查表, Q. |& Q; ^+ S0 Y: b% \
COLOR,颜色,色彩。是这组函数中最常用的一个。不但能定义指标线(柱)的颜色,而且能定义顶部指标文字的颜色--用LINETHICK0时也一样。
颜色的种类应该够用了。至于各指标线(柱)之间的颜色搭配,实在是一种很艺术性的事。既要有美感,又要不触目惊心,我只能凭感觉挑选,其它也没有什么招数了。要是有学过美术的人来指点几招就好了。( t% O* \+ q- ]+ f
枫叶秋雨兄提供的“飞狐色彩值吸取器”,实在是好东西,给我们挑选颜色提供了很大的方便。7 |" t# C7 {) A
飞狐基本函数简介之行情函数
这些行情函数所取得的数据,是我们所编写的公式的原材料。
' D& \0 Y/ Z/ Y) x
如果说公式是衣服,这些行情函数就是布。& L( b% p6 M) j7 V: K0 g+ e
9 }8 e& d5 A&&d&&A" \+ G$ w
有人会说做衣服不一定要布,野草树皮也可以做。对,一个公式中不一定非有行情函数不可,但总感觉透风,缺点什么。
一、: s& }4 E1 q8 w6 x" S* l
函数: OPEN
. {& g8 j7 b: [" v
说明: 取得该周期开盘价,也可简写为 O.
& o- ?2 E# O4 g' _& J" R
函数: HIGH
& s# e4 s% U$ a. }" k) c
说明: 取得该周期最高价,也可简写为 H.
% L' h" H: S* j/ B& W8 k
函数: LOW
说明: 取得该周期最低价,也可简写为 L." d5 S; e* U8 u" X+ L
函数: CLOSE3 G) g7 h4 }( \* d& O1 p* Y
; C: J: V% m0 d! r) a
说明: 取得该周期收盘价,也可简写为 C.
% o* ?( N: V# n
OPEN,打开。HIGH,高度。LOW,低的。CLOSE,关闭、结束。; k+ P4 `! A3 ^% R& x
# w' R3 T$ X! y
常言道,巧妇难为无米之炊。此四者,就是我们做价格指标的“米”了。不同周期的K线,均由此四者为原材料画出。
(有人说,家里的米没有味道,于是去割野菜,采野花,日子一长,又说还是家里的米能填饱肚子。): p- M% A1 t&&j7 |2 m% {
) r/ n' n2 N8 V0 e4 q' d
有人说,价、量、时、人是技术分析的四大要素,那么O、H、L、C便构成了“价”的四大要素。: X: O5 K8 a9 W
3 J4 v# O- @- Z% y
道氏理论,主要关注的是长期趋势,所以,一般以CLOSE线为主要参考指标。所取前期高、低点,也是CLOSE线的高、低点。
. k- n: E; l) g7 |' T
人的心理,常以成败论英雄。所以CLOSE作为一根K线中的“结局”,被视为价格四大要素中的最关键因素。此论似成通论,但有些短线炒手认为,OPEN要比CLOSE更重要。股市本是无定论的地方,仁者见仁,智者见智,故不敢多作妄论。) ]% t+ B; U4 R9 h! Y! Q
, @( m+ A! ]' O9 f
这里随便谈些本人对未来函数和未来数据的看法。关于未来也者,在较为经典的书上很少直接见到这种说法,只是在网上见得多了,便有了些想法,说出与大家共同探讨。
如图,一般带公式平台的股票软件,有“公式检测”这一项,用来判断公式中是否含有未来函数。( c( r2 m, l9 W4 r! r8 `. {, X7 H
目前的信号的产生和保持,如果全依赖于之前的数据,则可认为产生信号的公式中,不含有未来函数和未来数据。
( p8 c! S) Y* Z% C' z# M
目前的信号的产生和保持,如果部分依赖于之后的数据,则可认为产生信号的公式中,含有未来函数和未来数据。8 o' ]$ C: O, I/ Y# l# g
5 ~5 A3 T; a4 U# K. `& w5 n( x
换句话说,如果公式中产生的信号,随着行情的发展,信号永远不变,则此公式就绝无“未来”之嫌疑;信号可能要逃、要变,则此公式中就有“未

我要回帖

更多关于 周期信号的傅里叶变换 的文章

 

随机推荐