[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 431

 
r772ra:
DoubleiClose( 字符串, int timeframe, int shift)

类似这样的事情。

非常感谢您!



 
extern double lot = 1;
extern double ts = 50; 
extern double sl = 50; 
extern double tp = 40;
extern double periodrsi = 30;
extern double hirsi = 80;
extern double lowrsi = 30;

int K=0;
int L=0;
 


int init()
  {
   return(0);
  }

 
int start()
  { 
    double r1 = iRSI(NULL,0,periodrsi,PRICE_CLOSE,1);


  

    static bool first = true;
    static int pre_OrdersTotal = 0;
    int _OrdersTotal = OrdersTotal();
    if ( first )
    {
        pre_OrdersTotal = _OrdersTotal;
        first = false;
        return(0);
    }
 
   
   
   
    if ( _OrdersTotal > pre_OrdersTotal ) 
{K=0;
L=0;}
    if ( _OrdersTotal < pre_OrdersTotal )
{K=0;
L=0;}
    pre_OrdersTotal = _OrdersTotal; 

if (r1>hirsi) K=1;
 {
 if ((K==1) && (r1<hirsi))

 { 
  L=(L+1);                        // набираем проходы вниз под hirsi

K=0;
 }
 }



 if(OrdersTotal()<1)

 {
 if((r1<hirsi) && (L==2))   //есть два прохода

 OrderSend(Symbol(),OP_SELL,lot,Bid,0,Ask+sl*Point,Bid-tp*Point,"Easiest ever",0,0);
朋友们,你们好!请告知这样一个函数,它可以在这段代码中添加以下条件。只有当rsi在n个柱状体 中做了两次下行时,交易才会被打开。例如,如果rsi在30个柱状体中做了两次下行,那么我们就打开一个订单,我想不出来)我是一个初学者)
 
TemirKhan:
朋友们,你们好!建议一个函数,在这个代码中加入以下条件。例如,如果RSI在30个柱子 中做了两次下行,那么我们就开立一个订单,我想不出来了。)


你启动计数器。然后当你在历史上运行它时,它按条件计算。"如果它往下划,你就在计数器上加一个......。"等等。

学习并慢慢来,你就会得到正确的结果!

 
hoz:


你启动计数器。然后当你在历史中运行它时,它按条件计算。"如果它向下交叉,就在计数器上加一个......。"等等。

好好学习,慢慢来,一切都会好起来的!


因此,有一个穿越计数器,就在那里。
if (r1>hirsi) K=1;
 {
 if ((K==1) && (r1<hirsi))

 { 
  L=(L+1);                        // набираем проходы вниз под hirsi

K=0;
 }
 }
现在我们需要一个条形计数器,但如何做呢?)这样,只有在30个条形内发生交叉时,L才能得到一个 "2 "的值。
 

我开始思考。我研究了金的功能,以消除我的疑虑......而我的推理得到了证实。由于某些原因,"自由贸易流 "检查只发生在 开场 и 关闭 订单...而当 修改(SL和TP的初始设置),在 特拉莱 以及在职位转移到 盈亏平衡 没有检查。为什么?毕竟,在这两种情况下,服务器都被调用了!

毕竟,如果交易员随后被带走,专家顾问在逻辑上不会设置止损,例如,根本不会对头寸做任何处理。我不明白这一点。

 
hoz:

我开始思考。我研究了金的功能,以消除我的疑虑......而我的推理得到了证实。由于某些原因,"自由贸易流 "检查只发生在 开场 и 关闭 订单...而当 修改(SL和TP的初始设置),在 特拉莱 以及在职位转移到 盈亏平衡 没有检查。为什么?毕竟,在这两种情况下,服务器都被调用了!

毕竟,如果交易员随后被带走,专家顾问在逻辑上不会设置止损,例如,根本不会对头寸做任何处理。我不明白这一点。


没有什么大不了的。在下一次打勾时设置它
 
Vinin:

这没什么大不了的。将在下一次打勾时设置

因此,在这种情况下,为什么要在开幕或闭幕时检查?它也将在下一次打勾时被设置 :)毕竟,它可能对黄牛党起到很大的作用...
 
hoz:

所以在这种情况下,为什么要在打开或关闭时检查?也将在下一次打勾时设置 :)毕竟,它可以为黄牛党发挥巨大作用...

因此,一切都在你的掌握之中。因此,它将被完成。有些人是这样做的。
 

我再次在参考资料中寻找,并再次读到了这里的行文。

https://docs.mql4.com/ru/basis/preprosessor/import

Для импорта функций во время выполнения mql4-программы используется так называемое позднее связывание. Это значит, что пока не вызвана импортируемая функция, соответствующий модуль (ex4 или dll) не загружается.

我的意思是,为了使库被加载,它应该在代码中的导入行之后被调用,对吗?

例如,我是这样做的。

#import "hoz_Base@Library.ex4"
   double ND(double A);
   double Get_TradePrice(int fi_priceId,       // Цена: 0 - Ask; 1 - Bid
                      string fs_symbol);

1.事实证明,我们 声明功能。 我们将在专家顾问代码的最开始使用的 "专家顾问"?

2.而不是在专家顾问本身的代码中大量声明它们,并使用头文件?即只针对声明?

出现这个问题是因为我见过这样的Expert Advisors,它们是由相当认真的程序员编写的,但它们的头文件包含所有的主函数和非主函数。我对这一点感到惊讶...原因是编译库的速度要快得多,此外,库函数的代码是 "隔离的",这也是非常方便的。

 
早上好,这是我第一次来这里,所以很抱歉,我没有看到这个主题,所以创建了一个新的主题,真的需要听取专业人士的意见!"。

https://www.mql5.com/ru/forum/145453