思想交流 - 页 15

 
leonid553 писал (а)>>

这并不是真正的战略问题。插入一个指标并不困难。

但是,如何使专家的代码以编程方式在开盘价上发挥作用?

为了得到在所有票据上运行和在公开价格上运行的相同结果?

我还没能做到这一点.....

被捆绑在时间或数量上....你可以错过蜱虫

我是这样做的。

变成变量

int last_bar =0;

int start()

{

if (!IsNewBar()) return(0);

我们只在一个新条形图的第一个刻度上得到一次,即使我们错过了这个条形图的第一个刻度

}

bool IsNewBar()

{

如果(last_bar == Bars)返回(false)。
last_bar = Bars;
return(true)。

}

 
kharko писал (а)>>

抓住代码...在开盘价上打开并修改...

kharkoesmaster,谢谢你们 !

但我已经在上一页写道,这种简单的方法没有任何帮助。我自己用这两种方法都试了一下--我在开盘价时向void start()插入了一个条件。

但显然,这还不够 !和以前一样,我在按公开价格和按所有票据运行时得到不同的、截然相反的结果。

也许,我们需要在测试人员的视觉图上追踪 "这样和那样 "的工作,然后 "感觉到不同",并以某种方式改变其他函数的工作(除了start())。

//-----------------------------------------------------------
void start()
   {
   if (!IsTradeAllowed()) return;
   level_buy_stop=0;
   level_sell_stop=0;
   StepingStop();
   StepingPendings();
   if (TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop ();
   if (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
   Comment("Level Buy Stop=",level_buy_stop*Point,
    "\n","Level Sell Stop=",level_sell_stop*Point);
   }
//-----------------------------------------------------
void StepingStop()      {... .  }
//-----------------------------------------------------
void StepingPendings()  {... .  }
//-----------------------------------------------------
void SetBuyStop()    {... ...}

void SetSellStop()   {... ...}

int TotalBuy()       {  ...  }

int TotalBuyStop()   {...    }

int TotalSell()      {...... }

int TotalSellStop()  {.... ..}

// End
 
leonid553 不同,因为定盘价是开盘价......我们需要完全取消止损和盈利......并按开盘价锁定...
 
leonid553 писал (а)>>

大家好。我建议使用所谓的"趋势检测器"。我没有想到我的这个发现会有这么好的结果。不小心弄瞎了它--把它放进去。我几乎在每一个专家顾问中都插入了这部分内容,即使是一个亏损的专家顾问也能产生一些利润!它减少了逆向交易的数量(主要是亏损的交易),并大大增加了专家顾问的盈利能力参数,通常至少有两个!这就是所谓的 "逆向交易"。这意味着,在优化期之外,我们更有可能获利!"。

这个想法是这样的:我们把BearsPower和BullsPower指标(牛市力量和熊市力量)拿出来,互相比较。但只要比较一下就可以了--这是个很麻烦的事情。用程序来做是很麻烦的。这就是为什么我把MA放在他们身上,并在零条上比较MA值的原因!只要把这些值加起来就可以了=三角洲。进一步说,一切都很简单。如果DELTA ...>0 - 趋势是向上的。否则,它就会往下走。

我们只需要在条件中加入买入如果((Delta>=0) && ......

而在卖出条件中--如果((Delta<=0) && ......

在任何专家顾问的外部参数中,插入 :

你不需要插入它。但是,你必须拿起这些参数,直接在代码中插入数值而不是变量名。下面是这一区块本身。

下面是一个例子,说明一个EA如何与趋势检测器一起工作。我们可以看到,在上升趋势的情况下,买入仓位被打开,反之亦然。

也许有人会有改进和完善设计的建议。我想知道这个趋势检测器的前景如何。

我根据确切的描述做了指标,结果很惊讶:)我得到了一个滞后的MACCD:)

附加的文件:
 
Vinin писал (а) >>

вот и индикатор. _LineStat_1.mq4

На экран выводится количество баров.Выводится 3 сигмы. И если цена находится внутри одно СКО, то перерасчета не прноизводится, так как все в допустимых пределах. При пробитии, будет перерасчет.

在N=150(条数)之后,图表的左上角有三个数字值。请告诉我它们是什么意思以及如何使用它们。

 
Figar0 писал (а)>>

我的想法,我将开始...

这个想法很古老,但由于某些原因在实施中并不普遍,我自己也在使用,在一些策略中效果相当好。只能通过止盈退出。如果你从方向上猜对了--得到最初计划的获利,如果没有--按照价格收紧TP(你可以使用不同的算法--循环、橡皮筋、水平指标等等)。在这种情况下,收益可能是负的,但往往比触发止损要有利得多。不禁止使用安全止损来限制巨大的损失。

1)我在日间交易中也使用这个方法,并称之为 "追踪利润"。然而,我在主动交易中不使用追踪止损,因为它是一种将利润降到最低的方式。

2)我也有一个小想法。有时,在我们错过了1-2个点的TP之后,看着利润减少并将未结头寸转为亏损,是令人不快的。这就是为什么我开始实践以下解决方案:当TP前还剩下1-2个点的时候,我就发送一个平仓请求。在这种情况下,订单要么在TP上关闭,要么根本不关闭(因为价格反弹并走出滑点区域),但订单被关闭的频率更高,而且在一段时间内带来更多的利润。

 
rid писал (а)>>

在N=150(条数)之后,图表的左角有三个数字值。请告诉我它们是什么意思以及如何使用它们。

三角洲等于左、右中线之差。

3*S是三个标准差

n是多少条回归通道没有被重新计算。

如果最后一个条形图上的价格在3个标准差内(+-1.5),则不进行重新计算。

我不得不进入代码(该指标太老了,它是在2006年开发的)。

如果你想改变输出的信息,欢迎你的到来

 
好的!谢谢你。
 
Vinin писал (а)>>

我不得不进入代码(该指标太旧了,是2006年做的)。

如果你想改变显示的信息,欢迎你这样做。

有一个不大的要求。如果你不介意的话。如何为该指标写出一个iCustom表达式?

至少在每条黄线和中心线上都是如此?

我自己也搞不清楚!

 
rid писал (а)>>

有一个卑微的请求。如果这不难。如何记录该指标的iCustom表达式?

至少在每条黄线和中心线上都是如此?

我自己也搞不清楚!

如果你需要,我可以在书库中寻找合适的指标,或者做一个。以及如何在专家顾问中使用它--只是其中的所有计算方法(专家顾问)。