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

 
Maxim Kuznetsov #:

绘制(好吧,映射)"进展型水平,可能有一个止损 "水平,一般来说是很容易的。但它并不十分清楚为什么。

你有没有试着问过客户,他想要什么细节?

PS/而且,是的,我们必须采取 "创造性的暂停",我想客户会理解这种情况。

他考虑了一个多星期,已经决定了。

原本是不一样的,是交上去的,但停顿了一周后,他报告了创新。我理解任务已经完成,但离开客户的感觉是不对的,即使它不是最初TOR的一部分。

我的请求仍然有效!

 
Vitaly Muzichenko #:

他思考了一个多星期,就决定了。

原本是不一样的,那是交上去的,但停顿了一周后,他报告了创新。我理解任务已经完成,但不知为何,离开客户感觉不对,即使这不是最初ToR的一部分。

我的请求是有效的!

冷静下来的维塔利,要求什么?

没有代码,也没有任何地方可以进行编辑。而在这个问题上纠正自由职业者的顺序也不太正确。一般来说,双方都没有

void OnStopLoss() {

    // some code placed here

}

是不太可能有帮助的。

 
Maxim Kuznetsov #:

冷静下来的维塔利,有什么要求?

要对EA进行编辑吗? 没有代码,也没有地方可以进行编辑。而在这个问题上纠正自由职业者的顺序也不太正确。一般来说,双方都没有

void OnStopLoss() {

    // some code placed here

}

是很难有帮助的。

不是真正的EA,是一个单独的拖网,挂在一个图表上,并保持对所有符号的跟踪。

代码严重臃肿

 
Vitaly Muzichenko #:

上面有一个头寸和一个止损。

在设置中,拖网是30。因此,在拖网将触发的层面上显示线,因此所有7条线。30-60-90-120-150-180-210,像渐进式。

通过30并达到线,拖网将止损移至开盘价水平,达到60后,将止损移至开盘价的+30,即移至第一个止损触发的水平,等等。

我假设它想控制图表线,但这比较复杂,所以需要简化。

或者,在设置中放入7个级别的参数。

P.S. 对不起,回复太长了,当时正在失去网络。

7个参数不是一个选项)7个参数中的水平线的名称,它将绘制和命名。而我们将从他们身上跳舞。而如果参数,价格运动的范围和水平的数量。计算和绘制。那么,当水平线触发时,它应该画出sl线,如果sl线与价格水平相吻合,它应该改变其颜色。
 
Valeriy Yastremskiy #:
7个参数不是一个选项)7个参数中的水平线的名称,它将绘制和命名。而我们应该从它们出发。而如果参数,价格运动的范围和水平的数量。计算和绘制。那么,当水平线触发时,它应该画出sl线,如果sl线与价格水平相吻合,它应该改变其颜色。

你需要一种算法,在计算的价格上画线。

当所有的职位被关闭时,它们应该被删除。

 
Valeriy Yastremskiy #:
7个参数不是一个选项)7个参数中的水平线的名称,它将绘制和命名。而我们应该从他们身上跳舞。如果是参数,价格运动的范围和水平的数量。计算和绘制。那么,当水平线触发时,它应该画出sl线,如果sl线与价格水平相吻合,它应该改变其颜色。

澄清一下。

В настройках трал 30. Значит показать линии на уровнях, где сработают тралы, и так все 7 линий: 30-60-90-120-150-180-210, типа прогрессии.

Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60, переводит стопы на +30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.

修改代码,画线,其他什么都不做。


谢谢你!

 
下午好。好建议一个新手,试图在市场上上传一个专家。出现错误 "Error!上传的文件类型错误,.....ex4 - 脚本。
你的产品类别--专家,它的正确程序类型--专家" 但它是一个专家!我在哪里挖?我已经挣扎了2天了!
 
Vycheslav Vyrikov #:
下午。好吧,你能给一个新手提供建议吗,我正试图向市场上传一个专家顾问。出现错误 "Error!装入错误的文件类型,.....ex4 - 脚本。
你的产品类别--专家,它的正确程序类型--专家" 但它是一个专家!我在哪里挖?我已经挣扎了2天了!

朝着标准处理者挖。

我肯定你那里是start(),而不是OnStart()

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

你需要一种算法,在计算的价格上画线。

当所有的职位被关闭时,它们应该被删除。

double sumLots[2]=0,weight[2]=0;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;

   // тут всякие прочии фильтры

   DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера

   // расчёт общих позиций

   int type=OrderType();

   sumLots[type]+=OrderLots();

   weight[type]+=OrderLots()*OrderOpenPrice();

}

double avg[3]; // общии позиции

if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY]; 

if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL]; 

// совокупная позиция

int posType; // тип

double posPrice; // цена

double posLots; // объём

if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }

else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }

DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY

DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL

DrawPriceLevels(posType,posPrice); // уровни общей позиции

在水平层的名称中加入票号。有时(必要时)要检查--如果该票不在市场上,那么所有带有它的名字的级别都应该被删除。

 
Artyom Trishkin #:

朝着标准处理者挖。

我肯定你那里是start(),而不是OnStart()

Artyom你已经很累了,而且自己也开始做不准确的事情。对于Vyacheslav试图加载的专家顾问,事件处理函数应该是 OnTick()