了解更多关于其他 "交易策略 "的信息 - 页 4

 
doshur: 平均进入总是可以的,当你有巨大的手数并想退出时,可能没有成交量 让你在你想要的价格退出。

当新闻发布时,我不知道这个系统是否能像审计一样在这些天里生存下去。

我认为,如果手数足够小,任何东西都可以生存。如果它对 来说是值得的,那就是另一个问题了。你能提交一个能在Aud上做得更好的系统吗?提醒一下,这不是一个关于其他人的盈利 系统的主题。我的目的是让人们提交不同的专家,并对策略的好坏进行评论。盈利与否并不重要。
 

我在YesLstTrdWin()函数 中发现一个错误

bool YesLstTrdWin(){
    if(!PositionSelect(CurSetSymbol)){return(false);}
    ulong   PosType=PositionGetInteger(POSITION_TYPE);
    ulong   PosOpTime=PositionGetInteger(POSITION_TIME);
    double  PosPrice=PositionGetDouble(POSITION_PRICE_CURRENT);
    HistorySelect(PosOpTime,TimeCurrent());
    int DealsTotal=HistoryDealsTotal();
    for(int i=DealsTotal-1; i>=0; i--){
        ulong DealTicket=HistoryDealGetTicket(i);
        ulong DealEntry=HistoryDealGetInteger(DealTicket,DEAL_ENTRY);
        if(DealEntry!=DEAL_ENTRY_IN){continue;}
        ulong DealMagic=HistoryDealGetInteger(DealTicket,DEAL_MAGIC);
        if(DealMagic!=SystemMagic1){continue;}
        string DealSymb=HistoryDealGetString(DealTicket,DEAL_SYMBOL);
        if(DealSymb!=CurSetSymbol){continue;}
        ulong  DealType=HistoryDealGetInteger(DealTicket,DEAL_TYPE);
        double DealPrice=HistoryDealGetDouble(DealTicket,DEAL_PRICE);
        if(DealType==DEAL_TYPE_BUY  && PosPrice>DealPrice){return(true);}
        if(DealType==DEAL_TYPE_SELL && PosPrice<DealPrice){return(true);} //This Line Was Left Out.
        return(false);
    }   return(false);
}

我忘记了最后的卖出交易检查器,它的情况是在头寸范围内平均。

*另一个问题是:内部平均和/或反网格可以是趋势系统的一个有效策略。

 
Ubzen:

我在YesLstTrdWin()函数中发现一个错误

我忘记了最后的卖出交易检查器,它的情况是在头寸范围内平均。

*另一个问题是:对于趋势系统来说,内部和/或反网格的平均化可以是一种有效的策略。

嗨,Ubzen。

我看到这个主题已经有一段时间了,我一直想做出贡献,抱歉我耽误了,我希望这成为mql5中的一个小型论坛主题。你用一个非优化的随机信号来获得稳定的利润,这当然很有希望。我还没有真正研究这个信号,事实上我今天才看到代码,我直接放大到你的MaxDDCurrency()函数。它有一行我认为可能是一个错误...

应该这样

if(TempDD>MaxDDCurency){return;}

是这个吗?

if(TempDD<=MaxDDCurency){return;}

在另一个一般性问题上。你认为策略测试器 中的价格数据的可靠性如何,特别是就价差而言?

PS:我也会很快发布我的一个。

 

你似乎也在呼吁

BrkEveEquity();

在tick上。你不应该在HighestEquity()函数中调用这个,即当一个新的股票高点被设定时。如果我的评论看起来不对,请原谅。我还没有在策略测试器 中亲自测试这个EA,但我想我可以感受一下你写这个的时候在想什么。

 
ssn: 嗨,Ubzen,我看到这个线程已经有一段时间了,我一直打算投稿,抱歉我耽误了,我希望这成为mql5中的一个小型论坛线程。你用一个非优化的随机信号来获得稳定的利润,这当然很有希望。我还没有真正研究这个信号,事实上我今天才看到代码,我直接放大到你的MaxDDCurrency()函数。它有一行我认为可能是一个错误...

这应该是这个吗?在另一个一般性问题上。你认为策略测试器中的价格数据的可靠性如何,特别是就价差而言?PS:我也会很快发布我的一个。

整个功能。

void MaxDDCurency(){
    int TempDD=AcountEquity-HighesEquity;
    if(TempDD>MaxDDCurency){return;}
    MaxDDCurency=TempDD;
}

1) 设置货币的最大缩减量。这个函数将同名的全局变量设置为-负的以账户货币 计算的最低提款额。因为它的值是负的,所以你要反向思考。例如Highest_Equity=10,000。帐户资产=9,500。我希望最大的跌幅为-500美元。结果是[9,500 - 10,000]。然后,如果临时缩减量小于-500,我希望将其登记为新的最大缩减量。

2)策略测试器中 的点差比现在大多数人支付的要高得多。这是我的看法,因为很多经纪商都在提供亚点。价格数据并不那么重要。EA不会在一分钟内进行处理,它只在其所连接的图表的m1条的开口处进行处理。除非你的数据缺少大量的m1条,否则这种方法应该是足够可靠的。

3)我收到的结果是我把它放在一起后得到的第一个结果。在那之后,我进行了其他的测试,结果并不理想。但即使是我进行的其他3次测试,该系统也是以略微盈利或略微不盈利而告终。但是,事实仍然是,一个随机的、未经优化的系统仍然在2008年的危机中一直生存到2012年。也许优化这样的系统可以成为一个进一步研究的课题。例如:你的个人方向,**不能做得比随机的差吧;)

4) 当然,发布一个你一直认为有趣的系统,以及关于该系统的任何困扰你的东西。我将尝试提出可以解决这些问题的想法。

 
ssn: 你似乎也是在调用 "刻度"。你是不是应该在HighestEquity()函数中调用这个函数,即当一个新的股票高点被设定时。如果我的评论看起来不对,请原谅。我还没有在策略测试器中亲自测试EA,但我想我能感觉到你在写这个时的想法。

整个功能。

void BrkEveEquity(){
    if(SysMagTotCnt()!=0){return;}
    BrkEveEquity=HighesEquity;
    BrkEveEquTme=(int)TimeCurrent();
    SysCloseMode=false;
}
我已经用了相当长一段时间的 "盈亏平衡 "了。有时这个函数在Equity_High函数中,但我相信我很久以前就从这个位置删除了,理由如下。1)如果Break-Even Equity在Equity_High内,那么我就不需要BE了,因为我可以直接使用Equity_High来代替。2)我想在达到新的账户 净值高点时设置Equity_High,而不是在System_Magic_Total_Count==0时设置。 3)我想在所有符号关闭时设置Break_Even。这在实盘交易中具有以下优势。当你关闭所有头寸时,你可能会受到一些负滑点的影响。 你的新目标变成Equity_High + Target$$,而不是比如说Account_Balance+ Target$$。
 

- 是的,DD是阴性的,我还没有看到。谢谢

- 我认为即使是M1开盘价 也有一个买入和卖出。如果你在买入价上进场,你将不得不在卖出价上出场(例如,如果你做空)。我已经用mt5数据和自定义固定点差做了测试,结果明显不同。

- 我认为如果你的进场是基于技术的,那么你的随机信号的方法是可行的。如果你能不进行任何优化,那应该会更好......。我想。;)

- 我将发布的系统使用SOM......实际上它将是一个可重复使用的类。需要做一些最后的调整...

- 好了,关于BE的问题已经很清楚了。现在MinPerMinLot是一个固定的变量,你用它来设置你的交易量与所有仓位被关闭后的时间成正比?

Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
ssn:

- 是的,DD是阴性的,我还没有看到。谢谢

- 我认为即使是M1开盘价 也有一个买入和卖出。如果你在买入价上进场,你将不得不在卖出价上出场(例如,如果你做空)。我已经用mt5数据和自定义固定点差做了测试,结果明显不同。

- 我认为如果你的进场是基于技术的,那么你的随机信号的方法是可行的。如果你能不进行任何优化,那应该会更好......。我想。;)

- 我将发布的系统使用SOM......实际上它将是一个可重复使用的类。需要做一些最后的调整...

- 好了,关于BE的问题已经很清楚了。现在MinPerMinLot是一个固定的变量,你用它来设置你的交易量与所有仓位被关闭后的时间成正比?

1)不客气。

2) 同意。希望我们能解决mt5中的点差问题。但用现实的点差进行测试也很重要,不要自欺欺人。

3) 根据我的经验,对于优化的系统,一个月的实盘测试通常看起来与预期的结果完全不同。在我的现场测试中,这种测试方式通常会产生预期的数据,....,但通常也会以同样的方式在策略测试器中死亡。

4) k

5)是的。差不多,但把它看成 "因为账户资产>=收支平衡的资产 "要好得多。我已经把Set_Break_Even_Time从Break_Equity函数中拿出来。我意识到,用自己的set_function来设置各个变量,比捆绑到另一个set_function中更容易重复使用。

我正在考虑下一步做一个趋势跟踪系统,随着趋势的发展增加手数。

 
Ubzen:

1) 不客气。

2) 同意。希望我们能解决mt5中的点差问题。但是用现实的点差测试也很重要,不要自欺欺人。

3) 根据我的经验,对于优化的系统,一个月的现场测试通常与预期结果完全不同。在我的现场测试中,这种测试方式通常会产生预期的数据,....,但通常也会以同样的方式在策略测试器中死亡。

4) k

5)是的。差不多,但把它看成 "因为账户资产>=收支平衡的资产 "要好得多。我已经把Set_Break_Even_Time从Break_Equity函数中拿出来。我意识到,用自己的set_function来设置各个变量,比捆绑到另一个set_function中更容易重复使用。

我正在考虑下一步做一个趋势跟踪系统,随着趋势的发展增加手数。

4)...
附加的文件:
SignalSOM.mqh  24 kb
 
ssn: 4)...
???根据规则,你是否有额外的东西。#1号、3号和4号似乎没有。