新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1842

 
日安,我想试试我的力量,为一个设定的位置写一个 "简单的 "专家顾问。这个想法很简单:基本上ETF不怎么涨,但也不怎么跌,价格波动每年经过两到三次的窄幅波动。最初我们有一个ETF的头寸,我们想在购买的头寸上获得12.5%的目标利润。专家的操作被简化为在卖出指令 中立即设置一个无关紧要的部分,例如五十分之一多出半个百分点,接下来的部分再多出半个百分点,等等。通过将整个仓位除以价格上涨的25%(从而实现整个仓位的12.5%的目标)。每次销售后,立即下一个较小比例的买入订单。随着时间的推移,一旦整个仓位经历了几轮,其平均购买价格(实际)就会降低,目标也会更早达到。当然,如果整个资产的价格跌至买入价以下,则采用同样的原则补仓,但顺序相反,先买后卖。由于白天不发生波动,该订单应移至一两个月后的下一个交易日。
向有识之士提问,如何才能更好地实施?也许有什么地方可以注销部分代码?
 
Кирилл Якимов 卖出指令 中立即设置一个无关紧要的部分,例如五十分之一多出半个百分点,接下来的部分再多出半个百分点,等等。通过将整个仓位除以价格上涨的25%(从而实现整个仓位的12.5%的目标)。每次销售后,立即下一个较小比例的买入订单。随着时间的推移,一旦整个仓位经历了几轮,其平均购买价格(实际)就会降低,目标也会更早达到。当然,如果整个资产的价格跌至买入价以下,则采用同样的原则补仓,但顺序相反,先买后卖。由于白天不发生波动,该订单应移至一两个月后的下一个交易日。
向有识之士提问,如何才能更好地实施?也许有什么地方可以注销一些代码?

很多不必要的 "水"...

首先写一个 "简单的EA",只是下一个订单,然后寻求帮助来完善它。

就像现在这样,你的文字看起来像 "写给我"!

 
Tretyakov Rostyslav #:

为什么不使用iLowest?

在这种情况下,你也可以这样做。

 

Кирилл Якимов #:
Доброго дня, хочу попробовать свои силы и написать "простого" эксперта ...

...

向有识之士提问,如何才能更好地实施?也许有你可以注销一些代码的地方?

简单的专家:https://www.mql5.com/ru/code/103

更多结果

Simple MA Expert Advisor
Simple MA Expert Advisor
  • www.mql5.com
Простой эксперт для тех, кто хочет попробовать новый тестер стратегий.
 
Tretyakov Rostyslav #:

很多不必要的 "水"...

首先写一个 "简单的EA",只是放出一个订单,然后寻求帮助来完善它。

就像现在这样,你的文字看起来像 "写给我"!

仅仅是下订单,按照某种计划下订单,决不是一种精进。我不知道如何跟踪已下达和已结束的订单。价格的变化,不一定随着新一天的开盘,价格就不会跳几单。而且还有很多其他的细微差别。交易表不允许比较以相同价格买入和卖出的证券数量。
 

日安

下面是一个简单的代码,它设置了一条显示交易开始的垂直线,以便进行可视化。

ObjectCreate(0,"Начало торговли",OBJ_VLINE, 0, Time[0] + (StartTime*3600), 0);
ObjectSetInteger(0,"Начало торговли",OBJPROP_COLOR, clrBlue);
extern int                  StartTime                      = 2;         // Начало торговли

我不明白为什么垂直线的设置是根据 - (StartTime - 一个条形图的值)。


 
Кирилл Якимов #:
我不知道该如何记录参赛和结业的情况。

嗯,这是一个很长的解释https://www.mql5.com/ru/docs/trading

Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
EVGENII SHELIPOV #:

日安

下面是一个简单的代码,它设置了一条显示交易开始的垂直线,以便进行可视化。

我不明白为什么垂直线的设置是根据 - (StartTime - 一个条形图的值)。


试试这个,并展示一下结果的屏幕截图
extern int nBars = 10;

...
ObjectCreate(0,"Начало торговли",OBJ_VLINE, 0, Time[0] + PeriodSeconds(PERIOD_CURRENT) * nBars, 0);
 
Кирилл Якимов #:
仅仅是下订单,按照某种计划下订单,根本不是什么成就。我不知道如何跟踪已下达和已结束的订单。价格的变化,不一定意味着随着新一天的开盘,价格不会跳几单。而且还有很多其他的细微差别。交易表不允许比较以相同价格买入和卖出的证券数量。

为了按照某种计划下单,你基本上必须知道如何下单。然后你形成一个下订单的条件。

你必须一步一步地解决问题,其中有很多细微的差别。

 
Mihail Matkovskij #:

嗯,这需要很长的时间来解释https://www.mql5.com/ru/docs/trading

如果你想学习如何写机器人,就从一个简单的机器人开始。

Mihail Matkovskij#:

简单的专家:https://www.mql5.com/ru/code/103

更多结果

原因: