指标: 符号点差

 

符号点差:

该指标显示图表中交易符号的价格差别 (合计)。它适合用来目测交易符号的相关性。它对货币对之间的点差交易感兴趣的交易者十分有用。指标柱线与启动时挂载的图表柱线在时间上同步。

作者: Dmitry

 
为了避免在 Codebase 中出现此类特殊情况,请对ChartBuilder 进行一次基础装饰。
 
hrenfx:
为了不在 Codebase 中创建此类特殊情况,请装饰一次基础 -ChartBuilder
在这个指标(ChartBuilder)中--有多达 23 个输入参数,要理解它,您需要深入研究它的说明,而我的 Spread_Of_Symbols 指标--没有那么简单,只有 4 个输入参数,即使没有说明也很清楚。很明显,ChartBuilder 可能更通用...但我的更简单,任何初学者都可以使用它的骨架..... 编写自己的指标此外,您还提供了第四种语言指标的链接,而我的是第五种语言。
 

这就是问题所在,对于最简单的东西,你不需要在那里学习任何东西。在您的案例中,一切都非常简单:

Formula1 = "AUDUSD - NZDUSD";
只需从 MQL4 到 MQL5 重写一个经过深思熟虑的工具包。您将能够以良好的水平实现几乎 99% 的配对交易 指标。
 
出于教育目的,这样一个指标是非常必要的。

您可以一目了然地看到哪些地方需要添加内容。当您改进(扩展功能)时,您就能更好地了解发生了什么。
 

我正试图在上面设置一个频道,但它无法正常工作。




//+------------------------------------------------------------------+
//|项目名称
//|版权所有 2012, CompanyName ||
//|http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   4
//--- 绘制 Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrAqua
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- 绘制 Label2
#property indicator_label2  "Label2"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- 绘制 Label3
#property indicator_label3  "Label3"
#property indicator_type3   DRAW_LINE
#property indicator_color3  clrRed
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1
//--- 绘制 Label4
#property indicator_label4  "Label4"
#property indicator_type4   DRAW_LINE
#property indicator_color4  clrRed
#property indicator_style4  STYLE_SOLID
#property indicator_width4  1

//--- 输入参数
input string         symbol1="EURUSD";
input string         symbol2="GBPUSD";
input double         mass_of_symbol1=1;
input double         mass_of_symbol2=1;
input int            ENPeriod    =  14;
input ENUM_MA_METHOD ENMethod    =  MODE_SMA;
input double         ENDeviation =  0.1;

//--- 指示器缓冲区
double         UBuffer[];
double         LBuffer[];
double         CBuffer[];

#include <IncOnArray/IncEnvelopesOnArray.mqh>
CEnvelopesOnArray en;

int i,r1,r2,j;
double S,prs,k1,k2,d1,d2;
//--- 指示器缓冲区
double        ind1[];
//+------------------------------------------------------------------+
//| 自定义指示器初始化函数
//+------------------------------------------------------------------+
int OnInit()
  {
    en.Init(ENPeriod,ENMethod,ENDeviation);
    
    //--- 指示器缓冲区映射
    SetIndexBuffer(0,ind1,INDICATOR_DATA);
    SetIndexBuffer(1,UBuffer,INDICATOR_DATA);
    SetIndexBuffer(2,LBuffer,INDICATOR_DATA);
    SetIndexBuffer(3,CBuffer,INDICATOR_DATA);
    
    PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,en.BarsRequired());
    PlotIndexSetString(1,PLOT_LABEL,en.Name()+" Upper");

    PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,en.BarsRequired());
    PlotIndexSetString(2,PLOT_LABEL,en.Name()+" Lower");

    PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,en.BarsRequired());
    PlotIndexSetString(3,PLOT_LABEL,en.Name()+" MA");

    //---
   return(0);
  }
//+------------------------------------------------------------------+
//| 自定义指标迭代函数
//+------------------------------------------------------------------+
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[])
  {
//---
   ArraySetAsSeries(time,true);ArraySetAsSeries(open,true);ArraySetAsSeries(high,true);ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);ArraySetAsSeries(tick_volume,true);ArraySetAsSeries(volume,true);ArraySetAsSeries(spread,true);

   ArraySetAsSeries(ind1,true);
   MqlRates rates1[]; ArraySetAsSeries(rates1,true);
   MqlRates rates2[]; ArraySetAsSeries(rates2,true);

   if(prev_calculated<rates_total)
     {
      for(i=0;i<rates_total;i++)
        {
         CopyRates(symbol1,0,time[i],1,rates1);
         CopyRates(symbol2,0,time[i],1,rates2);
         ind1[i]=mass_of_symbol1*rates1[0].close-mass_of_symbol2*rates2[0].close;
        }
     }

   en.Solve(rates_total,prev_calculated,ind1,CBuffer,UBuffer,LBuffer);

//--- 为下一次调用返回 prev_calculated 的值
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

看来我需要了解整数代码。

   /ArraySetAsSeries(ind1,true);

我删除了索引,它开始显示,但显示不正确。

 

关于交易、自动交易系统和测试交易策略的论坛

指标:价差图

newdigital, 2014.01.12 08:59

点差告诉交易者什么?

  • 点差基于货币对的买入价和卖出价。
  • 成本基于点差和手数。
  • 点差是可变的,应从您的交易软件中获取参考。

点差与外汇

每个市场都有价差,外汇市场也是如此。点差的简单定义是交易者购买或出售相关资产的价格差异。熟悉股票交易的交易者会将其称为买入价差(Bid)和卖出价差(Ask):Ask 价差。

下面我们可以看到一个计算欧元兑美元价差的示例。首先,我们将找到买入价 1.35640,然后减去卖出价 1.32626。经过这个过程,我们得到的读数是 0.00014。交易者应记住,点值在欧元兑美元小数点后的第 4 位数字,因此计算出的最终点差为 1.4 点。

现在我们知道了如何计算点差,让我们来看看交易者的实际成本。



点差成本和计算

由于点差只是一个数字,我们现在需要知道如何将点差转换成美元和美分。好消息是,如果您能找到点差,那么在确定点差成本和交易手数后,就可以用数学方法直接计算出这个数字。

使用上面的报价,我们知道目前可以以 1.3564 的价格买入欧元兑美元,并以 1.35474 的卖出价平仓。这意味着只要我们的交易打开,交易者就会产生 1.4 个点的点差。为了计算总成本,我们现在需要将该值乘以点差成本,同时考虑交易的总手数。如果以 1 美元的点差成本交易 1 万手欧元兑美元,则这笔交易的总成本为 1.40 美元。

请记住,点数成本是指数型的。这意味着您需要根据交易手数乘以该值。随着仓位的增加,点差成本也会增加。


点差的变化

重要的是要记住,点差是可变的,这意味着它们不会总是保持不变,而是会偶尔变化。这些变化基于流动性,而流动性可能因市场条件和即将到来的经济数据而有所不同。要参考当前的点差率,请始终参考您的交易平台。

 

关于交易、自动交易系统和测试交易策略的论坛

脚本新闻 VLine

newdigital, 2014.01.30 09:25

外汇点差与新闻 (根据Dailyfx 文章 整理)

  • 点差基于货币对的买入价和卖出价。
  • 点差是可变的,在新闻期间会发生变化。
  • 在经济事件发生后不久,请关注价差的正常化。

金融市场有能力受到经济新闻发布的巨大影响。新闻事件发生在整个交易周,如经济日历所示,可能会增加市场波动性,并增加您最喜欢的货币对的点差。

新交易者必须熟悉这些事件可能发生的情况。因此,为了让您更好地应对即将到来的新闻,我们将回顾在市场波动期间外汇价差会发生什么变化。


价差与新闻

新闻是市场不确定性的恶名昭彰的时期。这些经济日历上的新闻发布时有时无,根据是否达到预期,会导致价格快速波动。就像散户交易者一样,大型流动性提供者在新闻事件发布之前并不知道其结果!因此,他们希望通过扩大价差来抵消部分风险。

以上是 1 月份 NFP 就业人数公布期间的价差示例。请注意主要外汇货币对的点差是如何扩大的。尽管这只是暂时事件,但在市场恢复正常之前,交易者将不得不承受更高的交易成本。


处理点差

记住点差是可变的,这一点很重要,这意味着点差不会始终保持不变,而且会随着流动性提供者改变定价而变化。从上图我们可以看到,新闻发布后,点差迅速恢复正常。在 5 分钟内,欧元兑美元的点差从 6.4 点回到了 1.4 点。那么,想在新闻前后执行订单的交易者该怎么办呢?

交易者应始终考虑波动市场的交易风险。交易新闻事件的选择之一是立即在市场上执行订单,希望市场波动能弥补增加的点差成本。或者,交易者可以等待市场正常化,然后在市场活动平息后利用增加的流动性。


 

对不起!

声明了无意义的变量却不起作用

 

不使用差值,可以使用比值吗?


谢谢!