当前位置:→ 公式网金字塔公式 → 正文
  • 金字塔fs2交易系统

  • 相关简介:金字塔公式 金字塔模型策略源码:runmode:0; input:unitoftime(15,5,15,5),length(4,1,6,1); input:initialstop(2,2,6,1),trailingstop(4,2,6,1); input:startdate(1110104,1,9999999,1),intraday(1,0,1,1); input:money(0,0,10,1); input:slippage(0,0,2,1); input:debug(2,0,2,1); va

  • 文章来源:公式网 发布时间:2015-10-25浏览次数:下载次数:0

金字塔公式 金字塔模型策略源码:runmode:0;

input:unitoftime(15,5,15,5),length(4,1,6,1);
 input:initialstop(2,2,6,1),trailingstop(4,2,6,1);
 input:startdate(1110104,1,9999999,1),intraday(1,0,1,1);
 input:money(0,0,10,1);
 input:slippage(0,0,2,1);
 input:debug(2,0,2,1);

variable:costprice=0,stopline=0;
 variable:myasset=50000,mycurve=0;

if initialstop>trailingstop then exit;
 if startdate>1 and date

database(\'provider=microsoft.jet.oledb.4.0;data source=e:\\Trade\\Report\\Report.mdb\');

begin
  if stricmp(marketlabel,\'sq\')=0 then
   label:=strleft(stklabel,2);
   
  if stricmp(marketlabel,\'dq\')=0 then
   label:=strleft(stklabel,1);
 
  if stricmp(marketlabel,\'zq\')=0 then
   label:=strleft(stklabel,2);
  
  if stricmp(marketlabel,\'zj\')=0 then
   label:=strleft(stklabel,2);
  
  if stricmp(label,\'cf\')=0 then begin
   marginratio:=0.17;
   commission:=12;
   tradeable:=true;
  end
 
  if stricmp(label,\'sr\')=0 then begin
   marginratio:=0.16;
   commission:=6;
   tradeable:=true;
  end
 
  if not(tradeable) then exit;
 end        

begin  
  entertime1:=t0totime(timetot0(opentime(1))+60*(unitoftime+2));
  entertime2:=t0totime(timetot0(closetime(0))-60);
  exittime1:=t0totime(timetot0(closetime(0)));

 entertime:=time>=entertime1 and time<=entertime2;
  exittime:=time>=exittime1;
 
  cond:=day<>ref(day,1) or barpos=1;
  n:=barpos-valuewhen(cond,barpos)+1;
  settlementprice:=trimprice(sum(amount,n)/sum(vol,n)/multiplier);
 
  period:=unitoftime*length;
  
  atr:=trimprice(ref(ma(tr,unitoftime),1)+mindiff);
  
  initialstopnum:=atr*initialstop;
  trailingstopnum:=atr*trailingstop;
  slippagenum:=slippage*mindiff;
 
  topband:=ref(hhv(high,period),1)+mindiff;
  botband:=ref(llv(low,period),1)-mindiff;
 
  longcond:=barpos>=period and entertime and high>=topband;
  longprice:=max(topband,open);
 
  shortcond:=barpos>=period and entertime and low<=botband;
  shortprice:=min(botband,open);
 
  enterhour:=ref(hour,enterbars);
  enterminute:=ref(minute,enterbars);
 end

if debug=1 and ((startdate=1 and barpos=1) or date=startdate) then begin
  dbexecute(\'drop table 设置\');
  dbexecute(\'drop table 权益\');
  dbexecute(\'drop table 交易明细\');
  dbexecute(\'drop table 账户\');

 dbexecute(\'create table 设置(品种 text,周期 text,时间 text,初始资金 number,保证金率 number,佣金滑点 text)\');
  dbexecute(\'create table 权益(日期 datetime,权益 number,平仓盈亏 number,累计盈亏 number)\');
  dbexecute(\'create table 交易明细(开仓日期 datetime,合约名称 text,开仓时间 datetime,开仓价格 number,交易类型 text,平仓时间 datetime,平仓价格 number,盈亏点数 number,交易手数 number,总手续费 number,平仓盈亏 number)\'); 
 
  if commission>1 then
   comm:=numtostr(commission,0);
  else
   comm:=numtostr(commission*10000,2)+\'%%\';
 
  dwdate:=date[datacount];
  nyear:=intpart(dwdate/10000+1900);
  nmonth:=intpart(dwdate/100%100);
  nday:=intpart(dwdate%100); 
  ndate:=numtostr(year,0)+\'/\'+numtostr(month,0)+\'/\'+numtostr(day,0)+\'-\'+numtostr(nyear,0)+\'/\'+numtostr(nmonth,0)+\'/\'+numtostr(nday,0);

 dbexecute(\'insert into 设置(品种,周期,时间,初始资金,保证金率,佣金滑点) values("\'+stkname+\'","1分钟","\'+ndate+\'",500000,\'+numtostr(marginratio,2)+\',"\'+comm+\' & \'+numtostr(slippage,0)+\'")\'); 
 end

if holding=0 then begin
  costprice:=0;
  stopline:=0;
 end

if holding=0 then begin
  price:=0;
  lots:=0;
 
  if longcond then
   price:=longprice;
 
  if price>0 then begin 
   mycash:=cash(0);
  
   lots1:=intpart(mycash/(price*multiplier*marginratio));  
  
   if money=0 then begin
    lots:=lots1;
   end else begin
    lots2:=intpart(mycash*0.01*money/(initialstopnum*multiplier));
    lots:=min(lots1,lots2);
   end
  end 
  
  if lots>=1 then
   buy(1,lots,limitr,price+slippagenum);
 end

if holding=0 then begin
  price:=0;
  lots:=0;
 
  if shortcond then
   price:=shortprice;
  
  if price>0 then begin 
   mycash:=cash(0);
  
   lots1:=intpart(mycash/(price*multiplier*marginratio)); 
  
   if money=0 then begin
    lots:=lots1;
   end else begin
    lots2:=intpart(mycash*0.01*money/(initialstopnum*multiplier));
    lots:=min(lots1,lots2);
   end
  end 
   
  if lots>=1 then
   buyshort(1,lots,limitr,price-slippagenum);
 end

if holding>0 then begin
  price:=0;
  lots:=holding;
 
  if exittime then begin
   if intraday=0 then begin
    price:=open;
   end else begin
    if costprice      exit;
    else
     price:=close;
   end
  end  
    
  begin
   if stopline>0 and low<=stopline then
    price:=min(stopline,open);
   
   if stopline=0 then begin
    if commission>1 then
     costprice:=trimprice(enterprice+2*commission/multiplier)+mindiff;
    else
     costprice:=trimprice(enterprice*(1+commission)/(1-commission))+mindiff;
   
    stopline:=costprice-initialstopnum;
   end
   
   if stopline=costprice then
    stopline:=costprice; 
  
   if stopline>=costprice and high-trailingstopnum>stopline then
    stopline:=high-trailingstopnum; 
  end
 
  if price>0 then begin
   sell(1,lots,limitr,price-slippagenum);
  
   if debug=1 then begin
    if commission>1 then
     commission:=2*commission*lots;
    else
     commission:=(enterprice+exitprice)*multiplier*commission*lots;
                       
    sql:=\'insert into 交易明细(开仓日期,合约名称,开仓时间,开仓价格,交易类型,平仓时间,平仓价格,盈亏点数,交易手数,总手续费,平仓盈亏) values("\'+
          numtostr(year,0)+\'-\'+numtostr(month,0)+\'-\'+numtostr(day,0)+\'","\'+stklabel+\'","\'+
          numtostr(enterhour,0)+\':\'+numtostr(enterminute,0)+\'",\'+numtostr(enterprice,2)+\',"Buy","\'+
          numtostr(hour,0)+\':\'+numtostr(minute,0)+\'",\'+numtostr(exitprice,2)+\',\'+
          numtostr(exitprice-enterprice,2)+\',\'+numtostr(lots,0)+\',\'+numtostr(commission,0)+\',\'+
          numtostr((exitprice-enterprice)*multiplier*lots,2)+\')\';        
    dbexecute(sql);
   end
  end
 end

if holding<0 then begin
  price:=0;
  lots:=-holding;
 
  if exittime then begin
   if intraday=0 then begin
    price:=open;
   end else begin
    if costprice>settlementprice and settlementprice>stopline then
     exit;
    else
     price:=close;
   end
  end

 begin
   if stopline>0 and high>=stopline then
    price:=max(stopline,open);
   
   if stopline=0 then begin
    if commission>1 then
     costprice:=trimprice(enterprice-2*commission/multiplier)-mindiff;
    else
     costprice:=trimprice(enterprice*(1-commission)/(1+commission))-mindiff;
   
    stopline:=costprice+initialstopnum;
   end
  
   if stopline>costprice and low+initialstopnum<=costprice then
    stopline:=costprice;
     
   if stopline<=costprice and low+trailingstopnum     stopline:=low+trailing

 ☟问题反馈 ☞┄┄┄┄┄┄┄┄┄┄→收藏资源:

金字塔fs2交易系统

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上传会员: 
公式网
文件大小: 
Bytes
上传时间: 
2015-10-25
下载积分: 
-
免责声明: 
请仔细阅读并同意后才能下载
本附件为用户分享上传,公式网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究使用,不得用于商业或者非法用途,如有侵犯您的版权, 请参看 《公式网侵权处理流程》《公式网免责声明条款》
点击下载无反应时,更换主流浏览器重新登录操作,如360浏览器、Edge浏览器、谷歌浏览器,个别浏览器有不兼容现象。
勾选以下表示您已经阅读并同意以上声明才能下载本文件,扣除积分无法退还!
我已阅读所有条款规定, 请点我同意 所有条款内容!我自愿下载!
提示:如下载失败,请点关闭刷新此页面或提交问题反馈给管理员→
关闭

关于我们 - 联系我们 - 隐私政策 - 免责声明 - 下载帮助 - 广告合作 - SiteMap - TOP
增值电信业务经营ICP许可证:湘B2-20210269 湘ICP备09016573号-3 湘公网安备43108102000039号
Copyright © 2025 铭网科技,All Rights Reserved.