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

 
Summus_Digitus:
大家好。这是一个严重而紧迫的问题,我在互联网上找遍了所有的资料,正如他们所说的那样...我决定长期使用MT4,我已经用了3天了。我试着用了一段时间,在我看来,这是第一次使用,我对设置感到困惑,浏览器忘记了我访问的网站。我想,这没什么大不了的,但突然间我去了MT,我看到4个H4图表,有一个新的系统,我看到错误的价格,我与StartFX 2比较,我打开时间框架H1和D1,我等...我已经等了一个小时,它将逐年更新,但它不会这样做。"好吧,重新安装就可以了" - 你说,我会告诉你 "去他妈的"。"所以从谁知道的网站上下载一些软件更新的指标"--你问,我会告诉你 "去它的两次"。我真的想继续赚钱,用1来扼杀计算机的帮助,然后我们会看到:-)

唏嘘不已!说实话--我读到这里,一滴刺痛的眼泪滚落在我的脸上,笑得发抖......
 
VladTch:

大家好!

我的问题似乎很简单,但我挖遍了所有的文章,却找不到答案--return(-1)运算符是如何工作的?它把控制权传给了哪里?例如,在这个代码中。

else return(0);

在括号里有零,没有括号,一切似乎都很清楚。但是(-1)呢?

谢谢你的答复。:)

特殊功能 是一般功能。它们可以像用户定义的函数一样被调用。但有一个特殊之处。在系统调用过程中,参数和返回值不被传递。

 
Summus_Digitus:
大家好。这是一个严重而紧迫的问题,我在互联网上找遍了所有的资料,正如他们所说的那样...我决定长期使用MT4,我已经用了3天了。我试着用了一段时间,在我看来,这是第一次,我不明白发生了什么事。我想,这没什么大不了的,但突然间我去了MT,我看到4个H4图表,有一个新的系统,我看到错误的价格,我与StartFX 2比较,我打开时间框架H1和D1,我等...我已经等了一个小时,它将逐年更新,但它不会这样做。"好吧,重新安装就可以了" - 你说,我会告诉你 "去他妈的"。"所以从谁知道的网站上下载一些软件更新的指标"--你问,我会告诉你 "去它的两次"。我真的想继续赚钱,用1来扼杀计算机的帮助,然后我们会看到:-)

为《年鉴》干杯!!!。
 

为什么我不能画一个数字?

 #property indicator_chart_window
void start()
   {
string spred=DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 0);
   string lot=AccountFreeMargin()/(Bid)*0.002;
   string lots=StringSubstr(lot, 4, 1);
 
SetLabel("ЧИСЛО",   lots , ColorOnSign(lots), 5, 7, 1);}
  
   color ColorOnSign(double nu){
      color lcColor=Navy;
         if (nu<4) lcColor=Green;
         if (nu>6) lcColor=Red;
      return(lcColor);}
     
   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
      if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
         ObjectSetText(nm, tx, fs);
         ObjectSet(nm, OBJPROP_COLOR    , cl);
         ObjectSet(nm, OBJPROP_XDISTANCE, xd);
         ObjectSet(nm, OBJPROP_YDISTANCE, yd);
         ObjectSet(nm, OBJPROP_CORNER   , cr);
         ObjectSet(nm, OBJPROP_FONTSIZE , 18);
      return(0);}

为什么我不能画一个数字?

 

奇怪,我以为有一个问题。

它正在编纂!

 
Elektronik:

为什么我不能画一个数字?

 #property indicator_chart_window
void start()
   {
string spred=DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 0);
   string lot=AccountFreeMargin()/(Bid)*0.002;
   string lots=StringSubstr(lot, 4, 1);
 
SetLabel("ЧИСЛО",   lots , ColorOnSign(lots), 5, 7, 1);}
  
   color ColorOnSign(double nu){
      color lcColor=Navy;
         if (nu<4) lcColor=Green;
         if (nu>6) lcColor=Red;
      return(lcColor);}
     
   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
      if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
         ObjectSetText(nm, tx, fs);
         ObjectSet(nm, OBJPROP_COLOR    , cl);
         ObjectSet(nm, OBJPROP_XDISTANCE, xd);
         ObjectSet(nm, OBJPROP_YDISTANCE, yd);
         ObjectSet(nm, OBJPROP_CORNER   , cr);
         ObjectSet(nm, OBJPROP_FONTSIZE , 18);
      return(0);}

为什么我不能画一个数字?

你画了它,但要改变颜色,你必须创造另一个具有相同颜色的物体!"。而改变对象,那么颜色就会在视觉上发生变化!这就是我的理解。或者是有不同的意见?我自己只用这种方式给马什卡换过颜色。
 

我认为这都是关于数字的。

lots=StringSubstr(lot, 4, 1); 

也许软件把它理解为一个数字。

 
Elektronik:

这很奇怪,我以为有问题。

它正在编纂!

是的,我想补充一下,但不小心把它删除了。不想恢复它。

你必须用这个来改变颜色。

ObjectSet(nm, OBJPROP_COLOR, cl);

你的代码没有显示你在哪里改变颜色。

============

我想出了哪里...

这就是你如何做的。

   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9)
    {
     ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
     ObjectSetText(nm, tx, fs);
     ObjectSet(nm, OBJPROP_COLOR    , cl);
     ObjectSet(nm, OBJPROP_XDISTANCE, xd);
     ObjectSet(nm, OBJPROP_YDISTANCE, yd);
     ObjectSet(nm, OBJPROP_CORNER   , cr);
     ObjectSet(nm, OBJPROP_FONTSIZE , 18);
    }

不要害怕重新创建对象。它是优化的。如果一个对象被创建,它只改变改变的属性。它将不会被重新创建。

请把大括号放在一个层面上,否则你不会理解在块开始和结束的地方写了什么。

ColorOnSign()参数肯定有问题。参数是双倍的,你插入字符串。

SetLabel("ЧИСЛО", lots, ColorOnSign(StrToDouble(lots)), 5, 7, 1);

color ColorOnSign(string sLots)
 {
  double nu = StrToDouble(sLots);
  color lcColor=Navy;
  if (nu<4) lcColor=Green;
  if (nu>6) lcColor=Red;
  return(lcColor);
 }
 

下午好,请帮助我,如果你能给我一个关于代码的提示。

我在猫头鹰中有以下的拖网->

        for ( int v = OrdersTotal() - 1; v >= 0; v -- ){       
                if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES)){           
                        if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){ 
                                //+=================================================================================+
                                ///+================================Обычный трал ====================================+
                                if (TralSimple){
                                        if(OrderType() == OP_SELL){
                                                if((OrderOpenPrice()-Ask) > (Point*TrailingStop)){ 
                                                        if((OrderStopLoss() > (Ask+Point*TrailingStop)) || (OrderStopLoss()==0)){
                                                                OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                                                        }
                                                }
                                        }
                                        //+=================================================================================+
                                        if(OrderType() == OP_BUY){
                                                if((Bid-OrderOpenPrice()) > (Point*TrailingStop)){
                                                        if(OrderStopLoss() < Bid-Point*TrailingStop || (OrderStopLoss()==0)){
                                                                OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);  
                                                        }
                                                }
                                        }
                                }                                  
--------------------------------------------

现在,拖网在每一个正数刻度后都会移动一个止损点。我想做以下工作。

第一遍--在正刻度时,拖网会将止损点移动1点,并增加台阶。

第二遍--让我们取一个变量x,每次我们进行某一步(5)时,它将被增加1。 而每一遍(步)*x

等。

问题是如何在这一步骤中用不断增加的乘数来拧。在有多个职位的情况下,每个职位的乘数应该是不同的。

 
berezhnuy:

下午好,请帮助我,如果你能给我一个关于代码的提示。

我在猫头鹰中有如下的拖网->

现在,拖网在每一个正数刻度后都会移动一个止损点。我想做以下工作。

第一遍--在一个正的刻度线上,拖网会将止损点移动1个点,以及该货币对上升了多少。

第二遍--取一个变量x,每遍都会增加1。

等。

问题是如何增加一个乘数增加的步骤。而在有多个职位的情况下,每个职位的这个乘数应该是不同的。


你做类似抛物线的事情,计算是相对于基点--价格和开盘时间 而言的。