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

 
Igor Makanu:

我已经看到了,我怀疑他是否能够自己取消所有的设置,这就是为什么我建议使用成熟的方法,通过OrderSelect()与ClosePosBySelect()关闭一个选定的订单--他可以做到这一点,至少我已经看到他用构造函数为自己建立代码))))

ZZY:我还有一个怀疑,他把一个订单关闭了两次,但Kim的f函数在日志中打印出来了, 没有像单独的循环在第2个条件上关闭。

:-)是的。

阿尔乔姆-特里什金

很明显,伊戈尔的函数将为用户做一切事情(即使这样,一些用户也设法用它们来犯错)。但这样一来,他自己就不会学会如何做任何事情。虽然,当然--他们的选择。

先生们 - 我今晚会在这里写...

看来,该账户的寿命 已经过期。只是这不是通常的错误...

这张截图就是这样。

P.S.我可以而且正在接受编程培训,如果有的话!:-)这是对收集代码构造器的问题!!!!!!!!!!!!!!! :-)

PPS 不要唤起我心中的野兽,拜托,这个混蛋...:-)

我擅长代码,不仅如此,我也擅长竞标!"。

 
Roman Shiredchenko:

:-)是的。

先生们 - 我今晚会在这里发帖...

看起来,那里的账户寿命 已经过期。只是这不是通常的错误...

这张截图就是这样。

P.S.我可以而且正在接受编程培训,如果有的话!:-)这是对收集代码构造器的问题!!!!!!!!!!!!!!! :-)

PPS 请不要让我体内的野兽复活,这个混蛋...:-)

我在代码方面是个笨蛋,不仅如此,在竞标方面也是如此。

大量的信件。这有什么意义?没有检查以获得价格。以及以零价格平仓的错误。

这就是关于 "有能力和受过训练 "的问题。

 
Artyom Trishkin:

他在那里有一个零价格关闭

因此,我必须监测MarketInfo-function返回了什么,但没有控制。然而,像往常一样,有些人习惯于写--收到的东西,什么--都没有检查,而是发送的说法。

是的。我看到了。

看起来该账户的寿命 在那里已经过期了...

当我试图手动关闭它时 - 它在屏幕上返回 "GENERAL ERROR"。

早些时候--似乎这个功能起作用了,只是我没有时间去检查它。

该函数写得很正确。是的--传播中的滑坡,那又怎样?

我今晚会在这里公布总数。

将交易重新加载到一个新账户中。

 
Roman Shiredchenko:

先生们 - 我今晚会在这里发帖...

看起来该账户的寿命 已经过期。这只是一个不习惯的错误...

错了!如果你把它打印出来,我为什么要猜错呢?- 还是这个问题最初是针对心灵感应者......不,是图什卡人的?)))


罗曼-希雷琴科

当试图手动关闭时--它又出现在屏幕的方框中--"GENERAL ERROR"。

也许交易流程很忙,也许你得到了重新报价,这就是为什么一般的错误可能意味着任何事情--去年在insta上发生了同样的 "混乱",我曾经关闭订单,正好相隔5分钟--而且代码会在所有的检查和打印机下如期关闭;)

 
Artyom Trishkin:

大量的信件。这有什么意义?没有价格收据检查。而且,在零价格下平仓也没有错误。

这就是 "可以做,可以学 "的事情。

是的,因为我已经从一张纸上写下了Vorde- gud.立即。我无法访问终端。

进入航站楼--没有。将于晚上在莫斯科 - 我将在这里写。

 
Igor Makanu:

错了!如果你把它打印出来,我为什么要猜测错误在哪里?- 还是这个问题最初是对心灵感应者......不,是对图什卡人提出的? )))

О!那就更好了--更多的笑容...:-)

是的,印刷品没有从 "专家 "标签中打印出来......对。只是有很多事情要做......没有时间。

 
Igor Makanu:

错了!如果你把它打印出来,我为什么要猜错呢?- 还是这个问题最初是针对心灵感应者......不,是图什卡人的? )))


可能是一个繁忙的流程,重新报价,所以你必须猜测--常见的错误可能意味着任何事情--去年在insta有同样的 "帽子",订单花了5分钟才结束--代码应该与所有检查和打印机一起打印;)

好的。 :-)

PS 我今晚会在这里公布结果。

 
 #property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_plots 1
#include  "Includes//Symbol.mqh"
enum price_types
  {
   Bid,
   Ask
  };
input datetime start_date = D'2019.10.07 00:00:00' ;
input int Chops = 10 ;
input price_types applied_price= 0 ; //Price
int data_filled = 0 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string symbol_custom= StringFormat ( "%s_%dsec" , _Symbol ,Chops);
long chart_id = 0 ;
datetime start;
void OnInit ()
  {
//CustomSymbolDelete(symbol_custom);
   start=start_date- 60 ;
   Print ( "Ticks History Deleted : " , CustomTicksDelete (symbol_custom, 0 , LONG_MAX ));
   data_filled = 0 ;

   const SYMBOL SYMB(symbol_custom);
   SYMB.CloneProperties( _Symbol );
   SYMB.On();
   MqlTick ticks_add[];
   int len = CopyTicksRange ( _Symbol ,ticks_add, COPY_TICKS_INFO , ulong (start_date)* 1000 , ulong ( TimeCurrent ())* 1000 );
   Print ( "Ticks: " ,len);
   start = start - (len* 60 );
   Print ( "Start Date : " ,start);
   for ( int i= 0 ; i<len && ! IsStopped (); i++)
     {
       if (data_filled%Chops== 0 )
        {
         start = start+ 60 ;
         start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
        }
       else
        {
         start++;
        }
      ticks_add[i].time = start;
      ticks_add[i].time_msc = long (ticks_add[i].time)* 1000 ;
      data_filled++;
     }
//Print(SYMB.CloneTicks(ticks_add));
   Print ( CustomTicksAdd (symbol_custom,ticks_add));
   chart_id = ChartOpen (symbol_custom, _Period );
   Print ( GetLastError ());
  }
void OnDeinit ( const int r)
  {
   if (chart_id != 0 )
     {
       ChartClose (chart_id);
     }
   return ;
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   if (rates_total <= 0 )
       return 0 ;
   MqlTick ticks[ 1 ];
   CopyTicks ( _Symbol ,ticks, COPY_TICKS_INFO , ulong ( TimeCurrent ())* 1000 , 1 );
   if (data_filled%Chops== 0 )
     {
      start = start+ 60 ;
      start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
     }
   else
     {
      start++;
     }
   Print (start);
   ticks[ 0 ].time = start;
   ticks[ 0 ].time_msc = long (start)* 1000 ;
   data_filled++;

   Print ( CustomTicksAdd (symbol_custom,ticks));
   Print ( GetLastError ());

   return (rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

为什么我的自定义角色没有添加刻度线?

附加的文件:
Symbol.mqh  7 kb
 
Igor Makanu:

错误是什么? 错误的屏幕

理论上,它应该工作,但我还没有看到如此复杂的平仓,考虑到点差并将其作为滑点加入 - 我认为,如果你决定平仓,那么滑点不是最重要的事情,平仓错误更重要,然后重新报价,然后完全失去连接


把OrderClose(....)拿走,用Kim的ClosePosBySelect()https://www.mql5.com/ru/forum/131859/page2#comment_3359664,取代它。

使用它,那么你将清楚地看到它在哪里被破坏了--要么是在你的关闭条件中,要么是服务器有某种诡计。

阿尔乔姆-特里什金

它在那里有一个零的价格接近。我们应该检查MarketInfo函数所返回的内容,但我们无法控制。 然而,像往常一样,在四个人中,有些人习惯于写 - 东西收到了,什么 - 没有检查,但发送一个参数。

同事们,发自内心地感谢你们在代码上的及时帮助,这里不开玩笑,你们以前一直在帮助我,帮助。

从最后一页开始,所有关于关闭交易的信息都能正常工作。这里的模拟账户期结束时有一个问题,这就是为什么没有关闭的条件,包括零价格...

我已经更新了账户,正在继续进行测试。

 
jaffer wilson :

为什么我的自定义角色没有添加刻度线?

@ Artyom Trishkin

请你回答我的问题。我认为没有人在乎。

原因: