我将免费撰写一份顾问报告 - 页 146

 
Ivan:

重点是计算并在每次发生我在图片中所示的情况时发送警报。

甚至仔细看一下你的图表。有很多地方的蜡烛接近几乎相同的影子价格,比箭头所示的要多。而这些并不一定是极端的。

 
Aleksei Stepanenko:

甚至仔细观察你的图表。有很多地方的蜡烛接近几乎相同的影子价格,比箭头所示的要多。而这些并不一定是极端的。

这些箭头是为了理解你的帖子的内容而画的,这就是有趣的地方。
 
在不同的地方会有很多点。两个或三个蜡烛的相同影子价格的经验法则是不够的。在我看来。
 

Knock-knock Indicator Ver 1

该指标找到具有接近影子值的相邻蜡烛图。使用的是当前时间框架的烛台。

附加的文件:
 
Aleksei Stepanenko:

Knock-knock Indicator Ver 1

该指标找到具有接近影子值的相邻蜡烛图。它使用当前时间框架的蜡烛图。

它非常快,但该指标的本质是提供警报,例如,我无法监测所有货币对。

至于警报,最好能做一些调整,让我们为不同的货币对设置偏差,当然也可以进行测试。

我已经把它扔到了eurik上,非常好,但我需要一个设置和警报,然后它应该工作。

附加的文件:
111.JPG  103 kb
 

亲爱的编程大师们,你们好!我请求你们帮助我完成这个机器人。我自己不是一个程序员。

我自己不是程序员,第一个函数是我自己写的,但我翻遍了网上找到的不同部分,但我无法连接我想看到的其他两个函数。我找不到我想看到的其他两个功能,所以请帮助我。我想,对你来说,这不会像我那样困难。如果您愿意帮忙,请制作一个函数 在两个挂单中的一个触发后关闭挂单。第二个函数应该自动增加订单的手数("比方说 "每50美元的余额为0.01手,达到100美元后,机器人应该自动增加0.02手)。我放出的代码是有效的,也就是(放两个挂单,并对其进行追踪)。但正如我之前写的,我无法以任何方式附加其他两个函数。提前感谢您的帮助。

extern int    TakeProfit     = 100.0;
extern bool   AllPositions   = True; // Управлять всеми позициями
extern bool   ProfitTrailing = True;  // Тралить только профит
extern int    TrailingStop   = 50;    // Фиксированный размер трала
extern int    TrailingStep   = 0;     // Шаг трала
extern bool   UseSound       = False;  // Использовать звуковой сигнал
extern string NameFileSound  = "expert.wav";  // Наименование звукового файла


void start() 
{
double TakeProfitLevelB;
double TakeProfitLevelS;
double BuyStart = Ask + 400*_Point;
double SellStart = Bid - 400*_Point;

TakeProfitLevelB = BuyStart + TakeProfit*Point;
TakeProfitLevelS = SellStart - TakeProfit*Point;

if (Open[1]==Close[1]&& OrdersTotal()==0)
{
int BuyTicket = OrderSend(Symbol(),OP_BUYSTOP,0.10,BuyStart,3,0,TakeProfitLevelB,NULL,0,0,Green);
int SellTicket = OrderSend(Symbol(),OP_SELLSTOP,0.10,SellStart,3,0,TakeProfitLevelS,NULL,0,0,Blue);
}
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (AllPositions || OrderSymbol()==Symbol()) {
        TrailingPositions();
      }
    }
  }
}

void TrailingPositions() 
{
  double pBid, pAsk, pp;

  pp = MarketInfo(OrderSymbol(), MODE_POINT);
  if (OrderType()==OP_BUY) {
    pBid = MarketInfo(OrderSymbol(), MODE_BID);
    if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
      if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp) {
        ModifyStopLoss(pBid-TrailingStop*pp);
        return;
      }
    }
  }
  if (OrderType()==OP_SELL) {
    pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
    if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp) {
      if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
        ModifyStopLoss(pAsk+TrailingStop*pp);
        return;
      }
    }
  }
}

void ModifyStopLoss(double ldStopLoss) 
{
  bool fm;

  fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
  if (fm && UseSound) PlaySound(NameFileSound);
}
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Свойства ордеров - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Knock-knock Indicator Ver 2

有警报。在每个图表上可以单独设置距离数。

附加的文件:
 
Aleksei Stepanenko:

Knock-knock Indicator Ver 2

有警报。在每个图表上,你可以单独设置距离数。

它还没有工作,这是2分钟前的警报。

1.在我进入配对之前,没有信号

2.警报出现,但没有蜡烛。

我还想改变信号的烛台数量,例如连续3个烛台或5个烛台。

时间框架没有意外地选择H1)以后再考虑吧,我需要最终确定指标,然后我可能会测试机器人。

附加的文件:
kcdg.JPG  72 kb
 
Aleksei Stepanenko:

Knock-knock Indicator Ver 2

有警报。在每个图表上可以单独设置距离数。

又来了,看来你是在观察其他时间段的情况了

如果一切都已敲定,你可以相信机器人)

首先让我们完成并测试它。

附加的文件:
555.JPG  84 kb
 
Ivan:

你好,谁能写一个简单的指标(可能已经有了,但我没有找到)?

重点是计算并在每次发生我在图片中所示的情况时发送警报。也就是说,当几个一小时的蜡烛图几乎击中同一个点时。

按照蜡烛图指标的写法,我认为这个指标会比较简单。


你应该在你的图片中寻找所谓的 "接管",但即使是图片上的最后一个箭头也会是一个错误的条目 - 大脑,人们很容易忽略不需要的信号。