三角对冲可谓是相当出名的策略了,这个策略其实是基于三个货币对的关系来做交易的。什么意思呢,比如说现在EURUSD的价格是2,GBPUSD的价格是4,那么理论上EURGBP的价格应该是2/4=0.5,但是实际的价格是0.6,那么我们就发现有套利空间了,因为实际的价格是迟早会回归到理论价格的,我们只要做多理论价格做空实际价格就可以获利。于是我们做多1手EURUSD,做空0.5手GBPUSD,做空1手EURGBP,也就是说做多理论价格做空实际价格,等实际价格和理论价格相等的时候我们就平仓获利。
接下来的三角对冲指标要完成的工作就是这个。
- #property indicator_separate_window
- #property indicator_buffers 1
- #property indicator_plots 1
- double hudge[];
- string sym1="EURUSD";
- string sym2="GBPUSD";
- string sym3=“EURGBP";
- int OnInit()
- {
- string name=“EURUSD/GBPUSD-EURGBP”;
- SetIndexBuffer(0,hudge,INDICATOR_DATA);
- SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,clrRed);
- IndicatorShortName(name);
- return(INIT_SUCCEEDED);
- }
- int OnCalculate(const int rates_total,
- const int prev_calculated,
- const datetime &time[],
- const double &open[],
- const double &high[],
- const double &low[],
- const double &close[],
- const long &tick_volume[],
- const long &volume[],
- const int &spread[])
- {
- int i;
- ArrayResize(hudge,rates_total);
- if(prev_calculated==0)
- {
- for(i=0;i<=rates_total;i++)
- {
- hudge[i]=(iClose(sym1,PERIOD_CURRENT,i)/iClose(sym2,PERIOD_CURRENT,i)-
- iClose(sym3,PERIOD_CURRENT,i))*10000;
- }
- }
- else
- {
- hudge[0]=iClose(sym1,PERIOD_CURRENT,0)/iClose(sym2,PERIOD_CURRENT,0)- iClose(sym3,PERIOD_CURRENT,0)*10000;
- }
- return(rates_total);
- }
复制代码
|