[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 40

 
作为一个主要按要求写作的程序员,我要说:几十行 "额外 "的代码(当你明白你在那里写了什么,而且你对它有信心),它从来都是多余的,至少在整个系统的可靠性方面,以及分别较少的退货和与客户沟通的问题。
 
FAQ:
作为一个编码员,我要说的是,大部分是定制的:几十行 "额外 "的代码(当你明白你在那里写了什么并且你对它有信心的时候)绝不是多余的,至少在整个系统的可靠性方面是如此,因此,在与客户打交道时,回调和问题也会减少。

我明白了。谢谢你。我已经进行了修改。

但同样的,对我来说很有意思的是,事实证明,开幕式也可以用 "马虎 "的体积来完成......不尽然,但事实是...

 
sergeev:

常见问题中说得很对。你不能依赖 "默认值"。因为我记得,如果你在发送订单前不做规范化处理,经常会出现131错误(错误的批次)。
也许现在MMO在发送执行命令时,已经在服务器上做了他们自己的默认批量检查。

因此,在发送之前,你应该总是做你自己的价格和批次规范化。

这对你来说是良好的编码规则,也是对未来潜在问题的更少麻烦的保证。

明白了,谢谢你。

"因为我记得,如果我在发送订单 之前不做任何规范化处理,经常会出现131个错误(错误的批次)"--现在不是这样了。

当我 "忘记 "启用批号正常化功能时,我不小心自己确保了这一点。

 
Roman.:

我明白了。谢谢你。我已经做了修改。

但对我来说,有可能用 "马虎 "的卷子打开,还是很有意思的......不尽然,但事实是...


在引入五位数 之前,根本没有人问过规范化的问题--一切照旧。
 
大家下午好!
问题如下,第一次启动指标时显示的是
通过alphabra-cadabra(pic.1)。在进一步滚动历史记录后,一切都很正常(图2)。

你能告诉我问题出在哪里吗? 如果你需要代码,请在下面。

#property indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Tomato
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property indicator_level1 0
#property indicator_levelcolor Gray
#property indicator_levelstyle 2

extern int Period_MA = 5;
extern int MA_Line1 = 13;
extern int MA_Line2 = 34;
 
double Brs[],BrsMA1[],BrsMA2[],MathArr[],MathArr1;
int i=0,j=0;
double hvostUp,hvostDn,rast,S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,Brs);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(1,BrsMA1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,BrsMA2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexLabel(0,"Bars_");
   SetIndexLabel(1,"Bars_MA1");
   SetIndexLabel(2,"Bars_MA2");
     
   ArrayResize(MathArr,Period_MA);
   
 //---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Bars_MA");

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start() {  

int ncount=IndicatorCounted();
int limit=Bars-ncount-1;

for (int i=0; i<limit; i++)
{

if (High[i+2]>High[i+1] && Low[i+2]>Low[i+1])
{
hvostUp=(High[i+2]-High[i+1])/Point;
hvostDn=(Low[i+2]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+1])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]<High[i+1] && Low[i+2]<Low[i+1])
{
hvostUp=(MathAbs(High[i+2]-High[i+1]))/Point;
hvostDn=(MathAbs(Low[i+2]-Low[i+1]))/Point;
rast=(High[i+1]-Low[i+2])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]>=High[i+1] && Low[i+2]<=Low[i+1])
{
S=(High[i+1]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+2])/Point;
}

if (High[i+2]<=High[i+1] && Low[i+2]>=Low[i+1])
{
S=(High[i+2]-Low[i+2])/Point;
rast=(High[i+1]-Low[i+1])/Point;
}

if (High[i+2]<=Low[i+1] || Low[i+2]>=High[i+1])
{
S=0;
rast=1;
}

if(j>=Period_MA-1)j=0;
j++;
 MathArr[j]=(S/rast*100);
 
Brs[i]=iMAOnArray(MathArr,0,Period_MA,0,0,0);
BrsMA1[i]=iMAOnArray(Brs,0,MA_Line1,0,0,0);
BrsMA2[i]=iMAOnArray(Brs,0,MA_Line2,0,0,0);
}   
  return(0);
}

图1

图2

附加的文件:
bars_ma_1.mq4  4 kb
 
如果能把这个过程自动化就好了,也就是说,事先做好这项工作,而不是等待利润触发。我看了看所有发布的脚本,我找到了一个类似的脚本,但他们说它不起作用。或者让我们做一个函数,当TP或SL触发时,脚本会打开所有刚刚关闭的订单,只是以挂起的形式。许多交易员知道他们在某种情况下要做什么,在情况发生之前做这些是非常方便的。
 
sting-igor:
如果能把这个过程自动化就好了,也就是说,事先做好这项工作,而不是等待利润触发。我看了看所有发布的脚本,我找到了一个类似的脚本,但他们说它不起作用。或者让我们做一个函数,当TP或SL触发时,脚本会打开所有刚刚关闭的订单,只是以挂起的形式。许多交易员知道他们在某种情况下要做什么,在情况发生之前做这些是非常方便的。

你来对地方了:工作
 
Fox_RM:
大家下午好!
问题如下,第一次启动指标时显示的是
通过alphabra-cadabra(pic.1)。在进一步滚动历史记录后,一切都很正常(图2)。

你能告诉我问题出在哪里吗? 如果你需要代码,请在下面。

图1

图2


我很抱歉,这个问题被问了第二遍。

将你的变体与此进行比较

它仍然不能正常工作,但已经好多了

再次编辑了该指标

附加的文件:
 
FAQ:

你走这条路:工作
难道没有人有吗?
 
sting-igor:
难道没有人有吗?


挖掘代码基础

如果你找不到,那就订购一个。