Meta Trader中的价差交易 - 页 159

 

谢谢你提供的信息。

这是我想不通的地方。如果我使用用MarketInfo()获得的日期。

 int exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
 int exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);

如何设置条件,禁止在3周内开仓?而相应地,如果我理解正确的话,关闭现有头寸也是合理的。这是到期的日期,越接近它,不可抗力的风险越高。

 
leonid553:

这里有一个跟踪买卖 价差的脚本(专门用于经纪公司经纪)。

在上面的某个地方,在该主题的中间,有同样的版本,但作为一个指标。

我的脚本会消耗大量的CPU资源(-schedule),所以最好是在打开/关闭之前把它放进去,然后立即删除它。

6NZ0, M1

使用goldtrader的例子和你脚本中的代码如何?

    //Задаем цены аск и бид тикера
    Ask_Tiker = MarketInfo(_tiker,MODE_ASK);
    Bid_Tiker = MarketInfo(_tiker,MODE_BID);
就像EA中的一个过滤器。而且你不需要剧本。
 
Vitya:

谢谢你提供的信息。

这是我想不通的地方。如果我使用用MarketInfo()获得的日期。

如何设置条件,禁止在3周内开仓?而相应地,如果我理解正确的话,关闭现有头寸也是合理的。这是到期的日期,越接近它,不可抗力的风险越高。

可以对临近的到期日做出警示性的结论,在专家顾问中,有必要根据允许的最大点差检查每笔交易。
 
Vitya:

如果你使用goldtrader建议的结构和你脚本中的代码

与专家顾问中的过滤器相同。而脚本是不需要的。


嗯,这很明显!该脚本只需要用于手动交易

你也可以在你的EA中按股票代码插入收盘/开盘条件。然而,那里有一个困难。EA的工作将不得不循环进行(这意味着--使处理器超载),否则这个过滤器对低流动性的合同绝对无用。

 

下午好,我的问题正合主题。

点差指标在其属性中允许设置工具的名称。

外置字符串Symbol_1= "GCG1";
外置字符串 Symbol_2 = "SIF1";

我如何写

doubleiCustom(

字符串,int时间框架。

- 我应该选择哪个工具--第一个还是第二个?或者任何一个人?



 
Rita:


这里没有办法应用它

你需要将代码嵌入到专家顾问中,并在那里指定条件

//----
extern string Simbol1 = "ESZ0"; extern double k1 =1;
extern string Simbol2 = "NQZ0"; extern double k2 =1;
extern double lot =1;
//----
extern double maxSpred =30;
extern int MinTimeExp =1800000;

int exp1,exp2,v1,v2;
//+------------------------------------------------------------------+
double StoimPunkt(string B){return(MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT)));}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
double sred(int typ,string B)
{double j;RefreshRates();
if(typ==0)j=((MarketInfo(B+"#I",MODE_ASK)-MarketInfo(B,MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(typ==1)j=((MarketInfo(B,MODE_BID)-MarketInfo(B+"#I",MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(j<0)j=0;return(j);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
int start()
{
exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);
v1 =MarketInfo(Simbol1,MODE_TRADEALLOWED);
v2 =MarketInfo(Simbol2,MODE_TRADEALLOWED);

if((sred(0,Simbol1)*lot*k1+sred(1,Simbol1)*lot*k1<maxSpred)&&(sred(0,Simbol2)*lot*k2+sred(1,Simbol2)*lot*k2<maxSpred)&&
(TimeCurrent()+MinTimeExp<exp1)&&(TimeCurrent()+MinTimeExp<exp2)&&(v1 ==1)&&(v2 ==1))
{



код советника




}
}
//+------------------------------------------------------------------+

 
我明白了,谢谢你。
 
forex-k:

这里没有办法应用它

你需要将代码嵌入到专家顾问中,并在那里指定条件

//----
extern string Simbol1 = "ESZ0"; extern double k1 =1;
extern string Simbol2 = "NQZ0"; extern double k2 =1;
extern double lot =1;
//----
extern double maxSpred =30;
extern int MinTimeExp =1800000;

int exp1,exp2,v1,v2;
//+------------------------------------------------------------------+
double StoimPunkt(string B){return(MarketInfo(B,MODE_TICKVALUE)/(MarketInfo(B,MODE_TICKSIZE)/MarketInfo(B,MODE_POINT)));}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
double sred(int typ,string B)
{double j;RefreshRates();
if(typ==0)j=((MarketInfo(B+"#I",MODE_ASK)-MarketInfo(B,MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(typ==1)j=((MarketInfo(B,MODE_BID)-MarketInfo(B+"#I",MODE_BID))/MarketInfo(B,MODE_POINT))*StoimPunkt(B);
if(j<0)j}0;return(j);}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
int start()
{
exp1 =MarketInfo(Simbol1,MODE_EXPIRATION);
exp2 =MarketInfo(Simbol2,MODE_EXPIRATION);
v1 =MarketInfo(Simbol1,MODE_TRADEALLOWED);
v2 =MarketInfo(Simbol2,MODE_TRADEALLOWED);

if((sred(0,Simbol1)*lot*k1+sred(1,Simbol1)*lot*k1<maxSpred)&&(sred(0,Simbol2)*lot*k2+sred(1,Simbol2)*lot*k2<maxSpred)&&
(TimeCurrent()+MinTimeExp<exp1)&&(TimeCurrent()+MinTimeExp<exp2)&&(v1 ==1)&&(v2 ==1))
{



код советника




}
}
//+------------------------------------------------------------------+



再次感谢你们。它也回答了我的问题。
 

供思考的信息...

mc - ym(4 ^ 9)

 
leonid553:

供思考的信息...

mc - ym(4 ^ 9)


=================================