任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1004

 
大家好!论坛上有一个指标
https://forum.mql4.com/ru/56236/page933,Подскажите,请问如何在终端打开它?

#property  indicator_separate_window
#property  indicator_buffers 3
#property   indicator_color1  Aqua
#property   indicator_width1  1
#property   indicator_color2  Red
#property   indicator_width2  1
#property   indicator_color3  Yellow
#property   indicator_width3  1

extern int       Fperiod=1;
extern int       Speriod=2;
extern int       Method=3;
extern int       PRICE_MODE=PRICE_WEIGHTED;

double   Buf0[];
double   Buf1[];                                
double   Buf2[];                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
    SetIndexBuffer(0,Buf0);
    SetIndexBuffer(1,Buf1);
    SetIndexBuffer(2,Buf2);

    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexStyle(2,DRAW_LINE);

    SetIndexEmptyValue(1,EMPTY_VALUE);   
    SetIndexEmptyValue(2,EMPTY_VALUE);   

    IndicatorShortName("Proba ");                
   
    SetIndexDrawBegin(0, 0);  
    SetIndexDrawBegin(1, 0);
    SetIndexDrawBegin(2, 0);

    return(0);
   }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
   {
    int i; 
    int limit;
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;
    for (i = limit;i>=0;i--)
        {  
         Buf0[i]=iMA(NULL,0,Fperiod,0,Method,PRICE_MODE,i)-iMA(NULL,0,Speriod,0,Method,PRICE_MODE,i);
         if(Buf0[i] > Buf0[i+1])
             {
              Buf1[i] = Buf0[i];
//              if(Buf0[i+1] > Buf0[i+2])
//                   Buf1[i+1] = Buf0[i+1];
//              else Buf2[i+1] = Buf0[i+1];
             }
         else
             {
              Buf2[i] = Buf0[i];
//              if(Buf0[i+1] < Buf0[i+2])
//                   Buf2[i+1] = Buf0[i+1];
//              else Buf1[i+1] = Buf0[i+1];
             }
        }              
    return(0);
   }

 

你好!在专家顾问中,作为交易条件之一,我使用了CCI中枢,但由于某些原因,它没有发挥作用。能否请你解释一下错误在哪里?

C_1=iCCI(NULL,0,C_period,PRICE_TYPICAL,0)。

C_2=iCCI(NULL,0,C_period,PRICE_TYPICAL,1)。

C_3=iCCI(NULL,0,C_period,PRICE_TYPICAL,2)。


如果(C_1 > C_2 > C_3)Opn_B=真。

如果(C_1 < C_2 < C_3)Cls_B=true。

 
Ratmirf:

你好!在专家顾问中,作为交易条件之一,我使用了CCI中枢,但由于某些原因,它没有发挥作用。能否请你解释一下错误在哪里?

C_1=iCCI(NULL,0,C_period,PRICE_TYPICAL,0)。

C_2=iCCI(NULL,0,C_period,PRICE_TYPICAL,1)。

C_3=iCCI(NULL,0,C_period,PRICE_TYPICAL,2)。


如果(C_1 > C_2 > C_3)Opn_B=真。

如果(C_1 < C_2 < C_3)Cls_B=true。

如果(C_1 > C_2&& C_2> C_3) Opn_B=true。

如果(C_1 < C_2&& C_2< C_3)Cls_B=true。

 
paladin80:
如果(C_1 > C_2&& C_2> C_3) Opn_B=true。

如果(C_1 < C_2&& C_2< C_3)Cls_B=true。

非常感谢您!
 

你能告诉我这里有什么问题吗?我希望交易在向下跨越70(买入)和向上跨越30(卖出)时关闭。由于某些原因,交易收盘时买盘远低于70,卖盘远高于30。RSI甚至还没有达到70和30。谢谢!

R_1=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,0)。

R_2=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,1)。

如果((R_1 < 70 && R_2 > 70))Cls_B=true。
如果((R_1 > 30 && R_2 < 30))Cls_S=true。
 
Ratmirf:

你能告诉我这里有什么问题吗?我希望交易在向下跨越70(买入)和向上跨越30(卖出)时关闭。由于某些原因,交易收盘时买盘远低于70,卖盘远高于30。RSI甚至还没有达到70和30。谢谢!

R_1=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,0)。

R_2=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,1)。

如果((R_1 < 70 && R_2 > 70))Cls_B=true。
如果((R_1 > 30 && R_2 < 30))Cls_S=true。

在上一篇文章中,你有: if(C_1 < C_2 && C_2 < C_3)Cls_B=true; 现在你有相同的变量在不同的条件下变化: if((R_1 < 70 && R_2 > 70))Cls_B=true; 检查。

试试这个代码。

double C_1=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,0);
double C_2=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,1);
double C_3=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,2);

bool Opn_B=false, Opn_S=false;

if(C_1>C_2 && C_2>C_3) Opn_B=true;
if(C_1<C_2 && C_2<C_3) Opn_S=true;

//---
double R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0);
double R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1);

bool Cls_B=false, Cls_S=false;

if(R_1>70.0 && R_2<70.0) Cls_B=true; 
if(R_1<30.0 && R_2>30.0) Cls_S=true;
 

大家好!!!!

我相信这样的事情已经被反复做了,但也许有人会根据资金的情况,提出一个地段大小的公式?

例如,如果超过2000,则地段为0.02,如果超过3000,则为0.03,等等?

 
nikelodeon:

大家好!!!!

我相信这样的事情已经被反复做了,但也许有人会根据资金的情况,提出一个地段大小的公式?

例如,如果超过2000,则地段为0.02,如果超过3000,则为0.03,等等?

有不同的计算公式
 
paladin80:

在上一篇文章中,你有: if (C_1 < C_2 && C_2 < C_3)Cls_B=true; 现在你有相同的变量在不同的条件下变化: if((R_1 < 70 && R_2 > 70))Cls_B=true; 检查它。

试试这个代码。


非常感谢您的帮助!我正在弄清楚RSI EA到底是如何工作的。那么有趣的是,在下图中,交易的开仓位置完全正确,但它们的平仓位置却完全错误(我希望交易在从上到下70个交叉点(买入)和从下到上30个交叉点(卖出)时平仓你推荐的关闭方案也不起作用。我把RSI周期设置为2,并在看M1。哪里不准确了,我想不出来。

R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0)。

R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1)。


如果(R_1>60 && R_2<60) Opn_B=true。

如果(R_1<40 && R_2>40) Opn__S=true。


如果(R_1<70.0 &&R_2>70.0) Cls_B=true。

如果(R_1<30.0 &&R_2<30.0) Cls_S=true。

 
Ratmirf:

非常感谢您的帮助!我正在摸索RSI EA的工作原理。那么有趣的是,在下图中,交易的开盘位置完全正确,但收盘 却完全错误(我希望交易在从上到下的70个交叉点(买入)和从下到上的30个交叉点(卖出)收盘你推荐的关闭方案也不起作用。我把RSI周期设置为2,并在看M1。哪里不准确了,我想不出来。

R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0)。

R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1)。


如果(R_1>60 && R_2<60) Opn_B=true。

如果(R_1<40 &&R_2>40) Opn__S=true。


如果(R_1<70.0 &&R_2>70.0) Cls_B=true。

如果(R_1<30.0 &&R_2<30.0) Cls_S=true。

我们确定最后一个条件的写法是正确的吗?