0
готово:


//+------------------------------------------------------------------+
//|                                                       PinBar.mq4 |
//|                                              Copyright 2023, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
input string URL="https://api.telegram.org/";
input string CnannelID="1424319433";
input string BotID="1391025599:AAFOpgDWODKtgVcTEQgs8jB65n9UjO9XaMk";

extern string IndName    = "PinbarDetector2";

int k=0;
datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int res=0;
   char post[];
   char result[];
   string headers;

   string text="";
   string url=URL+"bot"+BotID+"/sendMessage?chat_id="+CnannelID+"&text="+text;

   double lim=iCustom(NULL,0,IndName,0,1);
   double tom=iCustom(NULL,0,IndName,1,1);

   bool buy = tom!=EMPTY_VALUE;
   bool sell = lim!=EMPTY_VALUE;

   if(t!=Time[0])
     {
      if(buy)
        {
         text="\n BUY SIGNAL!";
        }
      if(sell)
        {
         text="\n BUY SIGNAL!";
        }
      t=Time[0];
     }

   if(k<3)
     {
      ResetLastError();
      res=WebRequest("GET",url,NULL,NULL,5000,post,0,result,headers);
      k++;

      if(res<0)
        {
         Print(url);
         Print("Ошибка в WebRequest. Код ошибки  =",GetLastError());
        }
     }

   Comment("\n lim: ",lim,
           "\n tom: ",tom);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 4 мая 2023, 16:39
0
на скрине 4-й тип закрытия:



enum closeType
  {
   BuyBuy,     // - Buy   X  + Buy
   SellSell,   // - Sell  X  + Sell
   BuySell,    // - Buy   X  + Sell
   SellBuy     // - Sell  X  + Buy
  };




www.opentraders.ru/downloads/3588/
avatar

AM2

  • 3 мая 2023, 13:35
0
помочь


в этом случае помочь не уместно, это серьезный труд
avatar

AM2

  • 3 мая 2023, 13:03
0
попробую завтра посмотреть. здесь решение сразу не просматривается. старые материалы надо поднимать и не известно заработает или нет
avatar

AM2

  • 2 мая 2023, 18:00
+1
сделал чтобы работало *uptrend*  :D 



www.opentraders.ru/downloads/3587/
avatar

AM2

  • 2 мая 2023, 17:56
0
Сделал, функция Synt работает, выводит разницу синтетика и реального актива. Но почему-то он никак не хочет открывать сделки.


опять куролесный код?
avatar

AM2

  • 2 мая 2023, 16:35
0
Я не специалист и у меня только такое предположение — вы закачали на сайт «нерабочую» версию советника.


проверил. версия та же что у меня

Я же специально выложил логи тестирования двух советников: один исходный, который вы ранее делали и я его использую.


вы выложили совсем не то что я просил

А где искать проблему?

если у вас с настройками по умолчанию на контрольках работает, значит смотрите что вы меняли
avatar

AM2

  • 2 мая 2023, 10:49
0
вывел формулу:


double Lot(int type)
  {
   double stop=0,lot=0;

   if(type==0)
      stop=(Bid-min)/_Point;

   if(type==1)
      stop=(max-Bid)/_Point;

   double Free = AccountFreeMargin();
   double LotVal = MarketInfo(Symbol(),MODE_TICKVALUE);//стоимость 1 пункта для 1 лота
   double Min_Lot = MarketInfo(Symbol(),MODE_MINLOT);
   double Max_Lot = MarketInfo(Symbol(),MODE_MAXLOT);
   double Step = MarketInfo(Symbol(),MODE_LOTSTEP);

   if(Step>0 && (stop*LotVal)>0)
      lot = MathFloor((Free*Risk/100)/(stop*LotVal)/Step)*Step;

   if(Losses(type)>0)
     {
      lot=NormalizeDouble(lot*Losses(type)*KLot,2);
     }

   if(lot<Min_Lot)
      lot=Min_Lot;
   if(lot>Max_Lot)
      lot=Max_Lot;

   return(lot);
  }


avatar

AM2

  • 2 мая 2023, 10:40
0
прогнал еще на М15. все норм. у вас косяк, смотрите внимательно

avatar

AM2

  • 2 мая 2023, 09:25
0
выше логи от другого эксперта, где еще нет лимиток и времени
avatar

AM2

  • 2 мая 2023, 08:34
+1
почти все сделал, только формулу риска-стопа надо выводить: www.opentraders.ru/downloads/3585/


баланс 10000
стоп 500
риск 2

если лот 0.1 при риске 1% мы получим стоп 100$ при стопе 1000 и балансе 10000$

0.1 = 1 ???


avatar

AM2

  • 2 мая 2023, 08:30
0
Чудеса, но у меня не работает.

скидывайте логи скрины настройки
avatar

AM2

  • 2 мая 2023, 07:31
0
в индикаторе есть пара настроек, если они вам нужны добавлю
avatar

AM2

  • 1 мая 2023, 18:45
0
наложил хейкен аши. один в один практически

avatar

AM2

  • 1 мая 2023, 18:44
0
какой будет алгоритм нахождения той самой вершины? на скринах в тз это 3 и более свечей одного направления
avatar

AM2

  • 1 мая 2023, 17:15