新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 656

 
Vitaly Muzichenko:

你在一个小丑 理论家 的分支中,有爱画画的吗,不清楚是什么,也不清楚为什么

而在这个论坛上有很多类似的主题--至少要讨论一下!

我不明白维塔利!- 你是认真的吗?- 还是你在开玩笑?

众所周知,交易理论本身并不存在于野外。

有不同的 "艾略特波",斐波那契数,韦尔斯特拉斯函数,等等。

但这与 "交易理论 "毫无关系。

如果99.9999%的论坛用户、开发者和交易者不能建立最简单的移动平均线趋势,我们还能谈论什么 "交易理论"。

所以他们画了 "我不知道是什么 "和 "我不知道为什么"--如你所说。

------------------------------------------------------------------------------

而且你也不能正确地 "画 "出最简单的趋势。- 我确信这一点。请原谅我的直言不讳。但你不会的。

但你却轻易地谈论CLOWNS,并对你自己不知道、也做不到的事情大放厥词。

这就是我们正在目睹的悖论。

----------------------------------------------------------------------------------

但最让我吃惊的不是这个,完全是别的东西。

我看到外汇市场上有成千上万的自由职业者和各种各样的学者向大家提供服务。

到处都有广告。付钱--他们就会帮忙,付钱--他们就会教......。

好吧--我给你钱,我回答他们。

但你要向我展示你的资格。

为我打造最简单的潮流!!!。

没有人建造过它,无论是自由职业者,还是学者,还是开发者--没有人。

他们害怕出丑。因为他们不知道如何做。虽然乍一看没有什么困难。

这是标准程序。我们在MT4/MT5中就有这个功能。他们只是建造了它,并展示了他们的精湛技艺。

但没有这样的案例。他们都画了 "我不明白什么 "和 "我不明白为什么"。每个人都是一个小丑?

----------------------------------------------------------------------------------

而你却说理论上的小丑!

谁是这里最多的CLOWNS - 我甚至不知道!!!。

 
Artyom Trishkin:

1.为什么?

2.那是什么?情况如何?

1.为什么?- 用于计算。

为什么double(Bid-buyPrice)的结果是 0.00001,如果我没有理解错的话,Bid和buyPrice已经是double类型 了,这些数字需要转换为double?

 
Andrey Sokolov:

1.为什么?- 用于计算。

为什么double(Bid-buyPrice)的结果是 0.00001,如果我没有理解错的话,Bid和buyPrice已经是double类型 了,这些需要转换为double?

如果你对双数进行操作,为什么要明确地将类型转换为双数?我向你展示了打印时双倍数类型向字符串类型的转换。

你确定1.00000000000000000006551e-05和0.00001是不同的数字吗?不同的输出格式--你没有在Comment()中指定输出方法,所以是一种科学的输出格式。这就是为什么我写道--要么做一个显式的双倍类型到字符串的转换,要么使用DoubleToString()来达到所需的精度。

帮助 里有所有的东西--而且甚至不是按部就班的无障碍,只是在文档菜单里点击鼠标就可以了。

这是帮助中的一个,我标出了我需要的东西

评论

输出一个用户定义的注释到图表的左上角。

void  Comment(
   argument,     // первое значение
   ...           // последующие значения
   );

参数

...

[in] 任何数值,用逗号分隔。一个换行字符"\n "或"\r\n "可以用来将输出分成多行。参数的最大数量是64。信息总长度(包括不可显示的服务字符)不能超过2045个字符(多余的字符将在输出时被截断)。

返回的值

没有返回值

注意事项

数组不能被传递给Comment()。数组应该作为项目打印出来。

双重类型的数据在小数点后被打印成16位小数,并且可以以传统格式或科学格式输出--取决于输入的方式是否最紧凑。浮动类型的数据在输出时,点后有5位小数。要输出不同精度的实数或明确指定的格式,请使用DoubleToString()

bool类型的数据被输出为 "真 "或 "假"。日期打印为YYY.MM.DD HH:MI:SS。要以另一种格式输出日期,请使用TimeToString() 函数。颜色类型的数据以字符串R,G,B的形式输出,或者以颜色名称的形式输出,如果该颜色存在于颜色集中。

当在优化模式下的策略测试器中工作时, Comment()函数 不被执行

 
Artyom Trishkin: 你确定1.0000000000000006551e-05和0.00001是不同的数字吗?不同的输出格式--你没有在Comment()中指定输出方法,所以是科学的输出格式被终端替你替代了。这就是为什么我写道--要么做一个明确的双倍类型到字符串的转换,要么使用DoubleToString()来达到所需的精度。

这个问题的出现是因为在比较变量*Point和这个减法的结果的条件下,另一个数值为双倍的变量被减去数值为双倍的Bid,减法的结果必须再次转换为双倍。

为什么在减法过程中不是双重类型?

我读了帮助,但没有看到任何答案,所以我在这里问。

 
Andrey Sokolov:

这个问题的出现是因为变量*Point被比较的条件和这个减法的结果不工作,其中另一个值为双数的变量被值为双数的Bid减去,减法的结果必须再次转换为双数。

为什么在减法过程中不是双重类型?

我读了帮助,但没有看到任何答案,所以我在这里问。

当你用双倍数减去双倍数时,结果将是双倍数。这是一个肯定的事情。

但只有你知道你在与什么相比较。

 
Artyom Trishkin:

当你用双数减去双数时,结果是双数。那是肯定的。

但只有你知道你在那里与什么相比较。

外部双数 First_PartialTrailingStart=15;

if(Digits()==3 || Digits() ==5) {First_PartialTrailingStart*=10; }

如果(double(Bid-buyPrice)>=First_PartialTrailingStart*Point) - 工作

如果((Bid-buyPrice)>=First_PartialTrailingStart*Point) - 不起作用

 
Andrey Sokolov:

外部双数 First_PartialTrailingStart=15;

if (Digits() ==3 || Digits() ==5) {First_PartialTrailingStart*=10; }

如果(double(Bid-buyPrice)>=First_PartialTrailingStart*Point) - 工作

如果((Bid-buyPrice)>=First_PartialTrailingStart*Point) - 不起作用

一切正常。脚本。

//+------------------------------------------------------------------+
//|                                                  TestCompare.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
#define   Bid       SymbolInfoDouble(Symbol(),SYMBOL_BID)
//--- input parameters
input uint     InpFirstPartialTrailingStart  =  15;   // Старт трала через (пунктов)
input uint     InpMultiplier                 =  10;   // Множитель пунктов
input int      InpPriceShift                 =  20;   // Отступ цены Buy от Bid
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double part_trailing_start=double(InpFirstPartialTrailingStart<1 ? 1 : InpFirstPartialTrailingStart);
double multiplier=double(InpMultiplier<1 ? 1 : InpMultiplier);
double value=part_trailing_start*multiplier*Point();
double shift=InpPriceShift*Point();
double buy_price=Bid-shift;
//---
   double res=NormalizeDouble(Bid-buy_price,Digits());
   bool   cmp=NormalizeDouble(res-value,Digits())>=0;
   Alert
     (
      "Старт трала через ",(string)value," пп."
      ", Цена Bid=",(string)Bid,
      ", цена Buy=",(string)buy_price,
      ", Bid-цена Buy=",DoubleToString(res,Digits()),
      ", Bid-buy_price>=value: ",string(cmp)
     );
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

一切正常。该剧本。

谢谢,我会研究的。

 
有没有可能在蜡烛的最后一个刻度上得到它的收盘价
 
Andrey Sokolov:
有没有可能在蜡烛的最后一个刻度上得到它的收盘价
这是投标价格。另一个问题:你怎么知道这是最后一次打勾?