[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 159

 
BooGUY:

我试了一下,如果(d1!=0)

但EA仍然在一个错误的地方打开。一般来说,它应该把买入改为卖出,但有时它为卖出打开两次。也许我没有复制什么。


你不认为它是滞后的吗?
 
DhP:

可以通过以下方式减少通行次数。

1.增加音调。

2.减少参数优化范围。

3.减少需要优化的参数数量。

4.启用 "遗传算法"。


这里有更多关于遗传算法的信息.....,如果 你可以的话)))

 

伙计们,顾问怎么样....,我知道一个顾问的好坏是没有限制的,但在你们看来,一个顾问的盈利能力(年回报)是多少??????。

在一年多的时间里,....,我得到了以下信息。

最大跌幅: 8.69% (3768美元)

利润:27464.5美元,略高于100%。

总交易量: 142

我交易了一个固定的手数:1手

我的第一个EA...感谢所有帮助过我的人)

 

假设我有一个专家顾问(My_expert)和一个指标(My_indicator)。

专家顾问使用指标数据(目前通过iCustom)。

我能否让专家顾问在初始化时将指标 添加到图表 中,并在非初始化时将其删除?

 

我想写一个专家顾问,让它在第二天关闭订单(无论如何)。但由于某些原因,订单没有关闭(请告知原因?

以下是出售的代码。


如果(OrdersTotal()==0) {

OPENORDER("卖出")。
}
int TC = int TimeCurrent()。
int OM = int OrderMagicNumber()。

if (OrdersTotal()==1 && OrderType()==OP_SELL && TC-OM>86400){ // DayMove(3)<0 && DayMove(2)<0 && DayMove(3)<0 && DayMove(4)<0 && DayMove(5) >0
CLOSEORDER("卖出")。
}

这是开放/关闭订单功能。

空白的CLOSEORDER(string ord)。
{
for (int i=0; i<OrdersTotal(); i++)
{
如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)。
{
如果(OrderSymbol()!=Symbol()||Magic!=OrderMagicNumber())继续。
如果(OrderType()==OP_BUY && ord=="Buy")。
OrderClose(OrderTicket(),OrderLots(), Bid,3,CLR_NONE)。
如果(OrderType()==OP_SELL && ord=="Sell")
OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE)。
}
}
}
//--------------------------------------------------------------------


空白的OPENORDER(string ord)。
{
int错误。
//Magic=TimeDay(CurTime();
Magic = TimeCurrent()。
if (ord=="Buy" ) error=OrderSend(Symbol(,OP_BUY, LOT,Ask,2,SL,TP, "EMA WMA RSI",Magic,3);
if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,LOT,Bid,2,SL,TP, "EMA WMA RSI",Magic,3);
如果(error==-1)ShowERROR(error,0,0)。
返回。
}

 
Vovo4ka:

伙计们,顾问怎么样....,我知道一个顾问的好坏是没有限制的,但在你们看来,一个顾问的盈利能力(年回报)是多少??????。

在一年多的时间里,....,我得到了以下信息。

最大跌幅: 8.69% (3768美元)

利润:27464.5美元,略高于100%。

总交易量: 142

我交易了一个固定的手数:1手

我的第一个EA...感谢所有帮助过我的人)

如果它是一个优化区域的图形,那么它的未来表现就无从谈起。如果是在一个未优化的区域的图表,那么就有希望获利。而当在真实账户上工作时,真相就会显现。
 
ILL:

...
int OM = int OrderMagicNumber();
...


订单必须用OrderSelect() 预选,这里不是这样的。
 
ilunga:

订单必须使用OrderSelect()进行预选,你给出的情况并非如此。


万岁!!!。它成功了=)

非常感谢你。

 
todem:

让我们一起做吧。我有一个显示当前方向的假指标--你需要它吗?


没问题--我们一起做吧。所有的发展都在前面的链接中列出...这不仅仅是在一个循环中检查。正在寻找将每个真相写入数组的选项 - 但还没有处理过数组。

//+-------------------------------------------------------------------------------+
// Проверка смены тренда 
bool TrendChange(int Period_MAb, int Period_MAm, int nB)
{
  double maB1=iMA(NULL, 0, Period_MAb, 0, MODE_EMA, PRICE_WEIGHTED, 1);
  double maM1=iMA(NULL, 0, Period_MAm, 0, MODE_EMA, PRICE_WEIGHTED, 1);   
  for (int i=0; i<nB; i++) 
  {
    double maB=iMA(NULL,0, Period_MAb, 0, MODE_EMA, PRICE_WEIGHTED, i);
    double maM=iMA(NULL,0, Period_MAm, 0, MODE_EMA, PRICE_WEIGHTED, i); 
     if ((maM<maB && maM1>maB1)||(maM>maB && maM1<maB1)){
//     Alert("TrendChange-true");
     return(true);
     }
  }
  return(false);   
}

所以--这个功能是有效的!谁可能需要它!

但是!问题是关于资源的经济性--因为我的机器不是最强的,而且这个功能经常被检查。因此,事实证明,每一个刻度线 我们都必须重新计算一堆旧的条形图(例如在我的案例中nB=610)。解决这个问题的唯一方法是将一个标志写入一个数组,然后检查整个数组和最后一个条形 的真实性。有没有人有其他的变体?有什么建议吗?

 
ILL:


耶!!!。它成功了=)

非常感谢你。

不客气))。

现在谁会回答我呢))。