1079 Ratio

校内练习赛做的,数学题,枚举分母

注意要同时计算取上整和下整

  1. //4452592_AC_0MS_292K
  2. /**********************************************************************
  3. *       Online Judge   : POJ
  4. *       Problem Title  : Ratio
  5. *       ID             : 1079
  6. *       Date           : 12/4/2008
  7. *       Time           : 14:43:8
  8. *       Computer Name  : EVERLASTING-PC
  9. ***********************************************************************/
  10. #include<iostream>
  11. #include<math.h>
  12. using namespace std;
  13. double n,w,w1,w2;
  14. int a,b,zi,deno,d1,d2;
  15. bool first;
  16. int main()
  17. {
  18.     //freopen("in_1079.txt","r",stdin);
  19.     first=true;
  20.     while(cin>>a>>b)
  21.     {
  22.         if (first)
  23.         {
  24.             first=false;
  25.         }
  26.         else
  27.         {
  28.             cout<<endl;
  29.         }
  30.         n=(double)a/b;
  31.         for(deno=1;deno<=b;++deno)
  32.         {
  33.             d1=(int)floor(n*(double)deno);
  34.             d2=(int)ceil(n*(double)deno);
  35.             w1=fabs((double)d1/(double)deno-(double)n);
  36.             w2=fabs((double)d2/(double)deno-(double)n);
  37.             if(w1<w2)
  38.             {
  39.                 if(deno==1)
  40.                 {
  41.                     w=w1;
  42.                     cout<<d1<<'/'<<deno<<endl;
  43.                 }
  44.                 else
  45.                 {
  46.                     if (w>w1)
  47.                     {
  48.                         cout<<d1<<'/'<<deno<<endl;
  49.                         w=w1;
  50.                     }
  51.                 }
  52.             }
  53.             else
  54.             {
  55.                 if(deno==1)
  56.                 {
  57.                     w=w2;
  58.                     cout<<d2<<'/'<<deno<<endl;
  59.                 }
  60.                 else
  61.                 {
  62.                     if (w>w2)
  63.                     {
  64.                         cout<<d2<<'/'<<deno<<endl;
  65.                         w=w2;
  66.                     }
  67.                 }
  68.             }
  69.         }
  70.     }
  71.     return 0;
  72. }
``` {--优化参数系统--} MACD_SLOW:=26; MACD_FAST:=12; MACD_SIGNAL:=9; KDJ_SHORT:=9; RSI_CYCLE:=14; BOLL_PER:=20; MOM_WEEKS:=4; MK_CAP_MIN:=20000000000; VOL_LIMIT:=18; {--增强核心指标--} DIF:=EMA(CLOSE,MACD_FAST)-EMA(CLOSE,MACD_SLOW); DEA:=EMA(DIF,MACD_SIGNAL); MACD:=2*(DIF-DEA); MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10); MA20:=EMA(CLOSE,20); MA60:=EMA(CLOSE,60); VOL5:=MA(VOL,5); VOL20:=EMA(VOL,20); VOL_RATIO:=VOL/REF(VOL,1); {--重构KDJ公式--} RSV:=(CLOSE-LLV(LOW,KDJ_SHORT))/(HHV(HIGH,KDJ_SHORT)-LLV(LOW,KDJ_SHORT)+0.0001)*100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); J:=2*K-D; {--改进布林带系统--} MID:=MA(CLOSE,BOLL_PER); UPPER:=MID+2*STD(CLOSE,BOLL_PER); LOWER:=MID-2*STD(CLOSE,BOLL_PER); BWIDTH:=(UPPER-LOWER)/MID*100; {--动量系统升级--} MOM:=EMA(CLOSE,5)/EMA(CLOSE,21)-1; WEEK_CHG:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100; {--强化估值因子--} PE_RATIO:=IF(FINANCE(33)>0, FINANCE(33)/FINANCE(4), 1000); PB_RATIO:=IF(FINANCE(5)>0, FINANCE(33)/FINANCE(5), 1000); VOLATILITY:=STD(CLOSE,20)/MA(CLOSE,20); {--行业动量增强--} EMA_RATIO:=EMA(CLOSE/REF(CLOSE,8),5); IND_RANK:=RANK(EMA_RATIO,20)<=30; // 修正为20周期排名 {--资金流向系统--} MF_NET:=SUM(IF(CLOSE>REF(CLOSE,1),VOL,-VOL),5)/CAPITAL*100; NORTH_INCRE:=FINANCE(56)/FINANCE(55)>1.05; {--信号体系重构--} COND_TREND:=MA5>MA10 AND MA10>MA20 AND CLOSE>MA60; COND_BREAK:=CROSS(DIF,DEA) AND MACD>REF(MACD,1); COND_FLOW:=VOL>VOL20*1.8 AND MF_NET>3; COND_VALUE:=PE_RATIO<30 AND PB_RATIO<4.5; COND_VOLAT:=BWIDTH BETWEEN 10 AND VOL_LIMIT; COND_CHIP:=FINANCE(42)/FINANCE(1)<1.2; //流通股集中度 COND_NORTH:=NORTH_INCRE AND FINANCE(56)>50000000; {--动态仓位系统--} 波动系数:=STD(CLOSE,20)/MA(CLOSE,20); 仓位控制:=CASE( 波动系数<0.08: 0.95, 波动系数<0.12: 0.8, 波动系数<0.16: 0.6, ELSE 0.4 ); 日线条件:=CROSS(MA(CLOSE,5),MA(CLOSE,10)) AND VOL>REF(VOL,1)*1.5; 最终信号:选股 AND 日线条件; {--信号合成优化--} 选股:FILTER( COND_TREND AND COND_BREAK AND COND_FLOW AND COND_VALUE AND COND_VOLAT AND COND_CHIP AND COND_NORTH, 3); //信号保持3周期 {--智能风控模块--} 动态止损:=MAX(MA10*0.93, LLV(LOW,5)*0.95); 动态止盈:=IF(VOLATILITY<0.1, MA20*1.25, MA20*1.35);```你的身份是高级编程技术专家,精通各类编程语言,能对编程过程中的各类问题进行分析和解答。我的问题是【我正在编辑【通达信选股】代码,遇到了 【错误句 : IND_RANK:=RANK(EMA_RATIO,20)<=30 详细信息 : 您在括号前写的不是函数、公式等, 且缺少必要的运算符! 错误起始位置 : 1079 ; 长度: 3】,请帮我检查并改正错误点补全正确代码,生成修正后完整代码。
最新发布
03-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值