[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 982

 
Aleksander:

声明一个变量

开始时 - 当收到一个信号时,增加1,当收到N个信号时,打开一个交易。

重置计数器...

我已经尽可能多地写了一些,但不清楚如何设计信号的添加...
extern double     PropuskSignala             =  0;  //сколько сигналов инлдикатора пропускать
//-------------------
double PropuskSignalaB,PropuskSignalaS;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//получаем сигнал: (SignalBuy==true;)
PropuskSignalaB++;  //вот здесь как записать? Чтобы прибавлялись
//получаем сигнал: (SignalSell==true;)
PropuskSignalaS++;  //вот здесь как записать? Чтобы прибавлялись

if(SignalBuyif(PropuskSignalaB>=PropuskSignala || PropuskSignalaS>=PropuskSignala){
//открываем ордер Buy
}
if(SignalSellif(PropuskSignalaS>=PropuskSignala || PropuskSignalaB>=PropuskSignala){
//открываем ордер Sell
}
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

下午好!

请帮助我解决这个问题。我做了一个专家顾问。我想知道我是否可以用它产生的收益率曲线工作。问题是哪条曲线可以被认为是最小的 "曲线":)。我已经给出了我的曲线。1999 -2010.

P.S. 这个问题并非空穴来风。当我把它放在真实账户上时,曲线会暂时下降。

 
001:

下午好!

请帮助我解决这个问题。我已经做了一个专家顾问。我想知道我是否可以用它产生的收益率曲线工作。问题是哪条曲线可以被认为是最小的 "曲线":)。我已经给出了我的曲线。1999 -2010.

P.S. 这个问题并非空穴来风。当我把它放在真实账户上时,曲线会暂时下降。

这完全取决于EA本身的代码。也许它是完全裸露的--只是测试者的玩具。你在这里有一个多么好的酒吧测试。EA是否有明确的开杠控制?
 
artmedia70:
这完全取决于EA本身的代码。也许它是完全裸露的--只是测试者的玩具。那么,律师考试呢?EA是否有明确的控制栏位的开放?


是的,当然是这样。

static int PrevTime=0;
int start()
{

如果(Time[0]<=PrevTime)返回(0)。
{
PrevTime=Time[0];

}

请解释一下前两个短语。

 

我不明白这本教科书。

"break "是否会停止整个循环,而专家顾问会等待一个新的tick?

它可以在 "如果----------------------------------------------------"中使用吗?

 
gheka:

我不明白这本教科书。

"break "是否会停止整个循环,而专家顾问会等待一个新的tick?

它可以在 "如果----------------------------------------------------"中使用吗?

break终止整个循环,并从循环语句块的封闭括号后的下一行继续执行你的代码。

在if-else中你可以使用它。你还会如何检查中止循环的标准呢?

 
OrderModify()函数在交易历史中创建一个单独的条目。我在编写EA 时使用它来实现追踪止损。也就是说,如果追踪止损的条件得到满足,并且StopLoss移动了,这可能发生在每隔一天,那么历史上会出现相同数量的线。有什么办法可以避免这种情况吗?MetaTrader内置的追踪止损功能正常工作。
 
dzam:
OrderModify()函数在交易历史中创建一个单独的记录。我在编写专家顾问时使用它来实施追踪止损。也就是说,如果追踪止损的条件得到满足,并且StopLoss移动了,这可能发生在每隔一天,那么历史上会出现相同数量的线条。有什么办法可以避免这种情况吗?MetaTrader内置的追踪止损功能正常工作。

使用价格、止损值、止损与价格的距离和拖网步骤来实现拖网不是更容易吗?

还是从长椅上经津巴布韦走到入口处更有意思?

 
artmedia70:

使用价格、止损值、止损与价格的距离和拖网步骤来实现拖网不是更简单吗?

或者,从津巴布韦的长椅上走到入口处,是不是更有意思?

好的,我们从前门进去。注意,还有一个问题。

下面是实现TrailingStop的例子中的一个代码片段

/---- проверяем, не надо ли передвинуть Стоп Лосс:
        //---- если размер трейлингстопа не слишком маленький,
        if ( TrailingStop > MarketInfo( Symbol(), MODE_STOPLEVEL ) )
        {
            //---- если прибыль позиции больше TrailingStop пунктов,
            if ( NormalizeDouble( Bid - _BuyOpenPrice, Digits ) > 
                  NormalizeDouble( TrailingStop*Point, Digits ) )
            {
                //---- если новый уровень стоплосса выше, чем сейчас у позиции
                //---- (или если у позиции нет Стоп Лосса),
                if ( NormalizeDouble( Bid - TrailingStop*Point, 
                    Digits ) > _BuyStopLoss
                      || _BuyStopLoss <= 0.0 )
                {
                    //---- модифицируем ордер
                    if ( !OrderModify( _BuyTicket, _BuyOpenPrice, 
                          NormalizeDouble( Bid - TrailingStop*Point, 
                                           Digits ), 
                          _BuyTakeProfit, 0 ) )
                    {
                        Alert( "OrderModify Error #", 
                              GetLastError() );
                        return(-1);
                    }
                }                     

}

这段代码使用OrderModify()来根据TrailingStop条件修改订单。函数OrderModify()在交易历史中创建一个单独的记录。也就是说,如果满足追踪止损条件,止损移动,这种情况每秒都可能发生,历史上会出现相同数量的线条。有什么办法可以避免这种情况吗?MetaTrader内置的追踪止损功能正常工作。

 
dzam:

好了,我们从前门进去。注意,还有一个问题。

下面是实现TrailingStop的例子中的一段代码

}

这段代码使用OrderModify()来根据TrailingStop条件修改订单。函数OrderModify()在交易历史中创建一个单独的记录。也就是说,如果满足追踪止损条件,止损移动,这种情况每秒都可能发生,历史上会出现相同数量的线条。有什么办法可以避免这种情况吗?MetaTrader内置的追踪止损可以正常工作。


没有办法避免它。每笔交易,就像任何仓位修改 一样,都会产生自己的日志记录
原因: