编码帮助 - 页 722

 
Tigra:


在这个指标中,使用4位数的报价时有一些问题。但这并不关键,问题是在4位数的刻度到100的水平,试图显示图片,在正确的时间是非常紧张的你的眼睛(几天后,是否作为一个线程,以改变规模到40的水平 - 这将是更好地看到直方图和右角的文字,将表明当前的值?

仔细研究一下,我们可以发现,在我们的网站上,有很多人都在讨论这个问题。

Этого индикатора есть некоторые проблемы при использованиии 4 значных котировок.在这一过程中,我们可以看到,在4个月的时间里,我们已经完成了对100个国家的调查,并对其进行了评估。签署协议后,我们将把我们自己的想法和建议传达给我们的客户,我们将把我们的想法和建议传达给客户。Еще не могу понять почему появляються черные гистограммы поверх при увеличении (

这不就是那个重修者吗?
 

Mladen,

我在用MT5工作。

我有一个 "简单追踪功能",我需要将其转换为 "阶梯式追踪",你能给个建议吗?

在我的EA里有
===================
输入 "追踪"(按点)。

=> 例子。
跟踪:4000 (4点)
(旧方法)如果价格移动了4个点,则止损4个点。

但我需要修改为

===================
输入 "追踪(距离)",单位:点
输入 "跟踪(步数)",单位:点

=> 示例。
追踪距离: 4000 (4点)
拖曳步数 : 1500 (1,5 点)

(新方法)如果价格上涨4个点,止损1.5个点。

//+------------------------------------------------------------------+
//| Simple Trailing function                                         |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
   if(Trailing<=0){
      return;
   }        
   if(!Pos.Select(_Symbol)){
      return;
   }        
   if(!Sym.RefreshRates()){
      return;  
   }  
   double nsl,tmsl,psl;  
   switch(Pos.PositionType()){
      case POSITION_TYPE_BUY:
         nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
            if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
                  tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                     if(nsl<tmsl){
                        Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                     }
               }
            }
      break;
      case POSITION_TYPE_SELL:
         nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
            if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
               psl=Sym.NormalizePrice(Pos.StopLoss());
                  if(nsl<psl || psl==0){
                     tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
                        if(nsl>tmsl){
                           Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                        }
                  }
            }      
      break;
   }
}
 
nbtrading:
这不就是重修者吗?

是的,他复述了,但颜色在这个指标中并不重要,对我来说,它是非常好的显示出来。
 
baraozemo:

Mladen,

我在用MT5工作。

我有一个 "简单追踪功能",我需要将其转换为 "阶梯式追踪",你能给个建议吗?

在我的EA里有
===================
输入 "追踪"(按点)。

=> 例子。
尾随:4000(4点)
(旧方法)如果价格移动了4个点,则止损4个点。

但我需要修改为

===================
输入 "追踪(距离)",单位:点
输入 "跟踪(步数)",单位:点

=> 示例。
追踪距离: 4000 (4点)
拖曳步数 : 1500 (1,5 点)

(新方法)如果价格上涨4个点,止损1.5个点。

//+------------------------------------------------------------------+
//| Simple Trailing function                                         |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
   if(Trailing<=0){
      return;
   }        
   if(!Pos.Select(_Symbol)){
      return;
   }        
   if(!Sym.RefreshRates()){
      return;  
   }  
   double nsl,tmsl,psl;  
   switch(Pos.PositionType()){
      case POSITION_TYPE_BUY:
         nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
            if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
                  tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                     if(nsl<tmsl){
                        Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                     }
               }
            }
      break;
      case POSITION_TYPE_SELL:
         nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
            if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
               psl=Sym.NormalizePrice(Pos.StopLoss());
                  if(nsl<psl || psl==0){
                     tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
                        if(nsl>tmsl){
                           Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                        }
                  }
            }      
      break;
   }
}
如果价格移动比:什么?
 
mladen:
如果价格移动比:什么?

在调用该函数 之前,你有

如果价格在 "增长",你就检查 "距离"(点数),如果符合 "距离",你就用步骤(点数)移动止损。

例如。

止损=8000
追踪距离=4000
追踪步数=2000

你在价格10000买入

现在的价格是14000(达到的追踪距离=4000),现在你需要把止损移到6000(8000-追踪步长)。

现在的价格是18000(达到的追踪距离目标=4000),现在你需要把止损移到2000(6000-追踪步数)。

现在价格是22000(达到的追踪距离目标=4000),现在你需要把止损移到 "入口 "+2000(2000-追踪步骤=-2000)。

现在价格是24000(达到追踪距离目标=4000),现在你需要把止损移到 "入口 "+6000(-2000-追踪步骤=6000)。

 
baraozemo:

在调用该函数之前,你有

如果价格在 "增长",你就检查 "距离"(点数),如果符合 "距离",你就用步骤(点数)移动止损。

例如。

stoploss =8000
trailing distance = 4000
trailing step = 2000

你在价格10000买入

现在价格是14000(达到的追踪距离=4000),现在你需要将止损移动到6000(8000-追踪步长)

现在价格是18000(达到的追踪距离=4000),现在你需要将止损移动到2000(6000-追踪步长)

现在价格是22000(达到的追踪距离=4000),现在你需要将止损移动到 "入口 "+2000(2000-追踪步长=2000)

现在的价格是24000(达到追踪距离目标=4000),现在你需要把止损移到 "入口 "+6000(-2000-追踪步骤=-6000)。

是的,但是如果你没有记录下来(因为这通常是止损或获利 价格的情况:当它们被改变时,它们开始成为另一个改变的标准),你就不得不在变量中记录下来,这是不允许出错的。你所尝试的不能被代码所重复,或者你必须为每一种情况硬编码这些止损,这使得它不能用于任何与硬编码价格不完全相同的开盘价。
 

你好。

我想写一个函数 来画一个箭头。我希望 这个箭头浮动的。有什么想法吗?)

void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
   ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
      ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
      ChartRedraw(0);
}

 
mladen:
是的,但是如果你没有记录它(因为它通常是止损或获利价格的情况:当它们被改变时,它们开始成为另一个改变的标准),你被迫在变量中记录它,这是不允许出错的。你所尝试的代码无法重复,或者你必须为每一种情况硬编码这些止损,这使得它无法用于任何与硬编码价格不完全相同的公开价格。

嗨,mladen。

这里是样本-EA

附加的文件:
sample-ea.mq5  36 kb
 
Tartut:

你好。

我想写一个函数来画一个箭头。我希望 这个箭头浮动的。有什么想法吗?)

void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
   ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
      ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
      ChartRedraw(0);
}

浮动 "的箭头是什么意思?

PS:箭头对象 不使用x和y坐标或角落。它们使用的是时间和价格

 

嗨,Mladen先生

请为其制作MTF

注意

附加的文件: