#property show_inputs //эта строка выводит окно пользовательских параметров на экранexterndouble DlyaKornya=300; // величина. из которой нужно извлечь кв. корень//+------------------------------------------------------------------+//| Старт работы правильного скрипта |//| вычисляющего квадратный корень |//+------------------------------------------------------------------+int start(){
double Koren=0;
Alert("--------------------------------------------");
if(DlyaKornya<0){
Alert("Ошибка! Переменная ",DlyaKornya," не может быть меньше нуля");
return(0);
}
Koren=MyKoren(DlyaKornya);
Alert("Наша подпрограмма выдала результат = ",Koren);
Alert("На вход функции MyKoren() было подано число = ",DlyaKornya);
Alert("---- Правильное применение функции ----");
return(0);
}
//+------------------------------------------------------------------+//| Пользовательские подпрограммы |//+------------------------------------------------------------------+// ------------ MyKoren() -------------------------------------// функция возвращает квадратный корень числа// ------------------------------------------double MyKoren(double MyValue){
double Rezult=0;
Alert("Внутри функции переменная MyValue имеет значение = ",MyValue);
Rezult=MathSqrt(MyValue);
return(Rezult);
}
而这是错误的剧本。
#property show_inputs //эта строка выводит окно пользовательских параметров на экранexterndouble DlyaKornya=300; // величина. из которой нужно извлечь кв. корень//+------------------------------------------------------------------+//| Старт работы неправильного скрипта |//| вычисляющего квадратный корень |//+------------------------------------------------------------------+int start(){
double Koren=0;
Alert("--------------------------------------------");
if(DlyaKornya<0){
Alert("Ошибка! Переменная ",DlyaKornya," не может быть меньше нуля");
return(0);
}
Koren=MyKoren(DlyaKornya);
Alert("Наша подпрограмма выдала результат = ",Koren);
Alert("На вход функции MyKoren() было подано число = ",DlyaKornya);
Alert("----НЕправильное применение функции ----");
return(0);
}
//+------------------------------------------------------------------+//| Пользовательские подпрограммы |//+------------------------------------------------------------------+// ------------ MyKoren() -------------------------------------// функция возвращает квадратный корень числа// ------------------------------------------double MyKoren(double MyValue=36){
double Rezult=0;
Alert("Внутри функции переменная MyValue имеет значение = ",MyValue);
Rezult=MathSqrt(MyValue);
return(Rezult);
}
通过创建一个选择符号代码的Errow对象或使用一个标签对象来实现。
谢谢)诶,真可惜,就是没有点(
我不是一个工人,但我正试图为我所做的这一周写一个专家顾问。我想为一份工作写一份EA,但我在一周前才知道它的名字和应用。我不知道它是做什么用的,但我想,不知道是做什么用的,就很难把东西拆开,所以我决定尝试做一些新的东西,当然你不能看到所有的东西,我只是做了我想做的一件事--按REMOTE的价格把REMOTE ORDER拿掉,这没什么大不了的。但感谢你的时间。
没有冒犯的意思。你的代码对初学者来说很复杂。你必须从简单到复杂。必须有一个系统的学习方法,否则就没有任何好处。
不要被冒犯。你的代码对初学者来说很复杂。你必须从简单到复杂。你必须有一个系统的学习方法,否则就没有用。
我不同意你的说法,你应该有一个目标,其他的就会跟上,但你需要帮助。 至于复杂,样本交易机器人有什么不复杂和简单的呢? 我不是做一个有复杂计算的大EA,而是做一个简单的,打开市场一个,暂停,修改和删除整个板块,学习影响另一个的操作和方法
我不同意你的说法,你应该有一个目的,其他的一切都会随之而来,但是,当然,你不能没有帮助。 至于复杂性,你认为什么是简单和容易建立的? 我不是做一个大的EA,有复杂的计算和指标,而是一个简单的,打开市场一个,然后修改和删除整个董事会,学习影响另一个的工作原理和方法!
改变代码构造的逻辑和变量命名的逻辑。这是你应该做的第一件事。如果一个变量的名字超过5个字符也没关系。在争取代码清晰度的斗争中,名称的清晰度,用空格、段落符号和注释来划分块是非常重要的。你越是学习一种语言(不仅仅是MQL),你的代码就会变得越复杂。如果你不养成给变量起个容易读懂的名字的习惯,如果你不养成用块来组织代码的习惯(有解释),迟早你会创造出让你很难找到逻辑错误的代码,咒骂自己把代码弄得这么难看。
如果你所展示的代码对你这个初学者来说并不复杂,那只是对你来说是个加分项。
好吧,你有什么建议? 我对你的意见非常感兴趣
这里有一个代码的例子,它是以块的形式组织起来的,变量的名字不会让人怀疑为什么要应用某个特定的变量--看看它们的名字,看看块的注释......。
大家晚上好,祝大家有一个美好的一周。我想我的热度太低了,其实问题是如何确定点线之间的距离?
Speed1=(Price12-Price11)/(Bar11-Bar12); Speed2=(Price22-Price21)/(Bar21-Bar22);
Price1=Price11+Speed1*Bar11; Price2=Price21+Speed2*Bar21;
距离=(价格1-价格2)/点。
这是如果要确定当前时间的两条线之间的距离。
这里有一个代码的例子,它是以块为单位组织的,其中的变量名称不会让人怀疑为什么要应用这个或那个变量--看看它们的名字,看看块的注释......。
我同意有时你需要记住你想在那里写的东西而不记得,但这更多的是一种工作方法,但不是研究,可以说是艺术家手中的画笔,我对写一个简单的小画面的颜色和技巧的选择感兴趣,因为我已经有一个风景,它的形状很清晰。所以我想知道是否有可能有一本有趣的书,描述在所有相同的互联网和教科书的写作技术,只有在其他的话和你写的根的例子,这是一个机器人的技术,所以我很乐意阅读,如果的例子和图片
Speed1=(Price12-Price11)/(Bar11-Bar12); Speed2=(Price22-Price21)/(Bar21-Bar22);
Price1=Price11+Speed1*Bar11; Price2=Price21+Speed2*Bar21;
距离=(价格1-价格2)/点。
这是如果要确定当前时间的两条线之间的距离。
...
这就是我想读到的有例子和图片的东西!
好吧,让我们做个实验吧!让我们写两个脚本。一个将包含对功能的正确描述。另一个将包含错误的。因此,这是正确的脚本。
而这是错误的剧本。
这是不正确的,因为这一行double MyKoren(double MyValue=36){ 将变量MyValue初始化为值=36 。这没有意义,因为我们将值=传递给DlyaKornya变量进入子程序 。
现在我们把这两个脚本依次抛给图表。以下是我们看到的情况。
唉,两个脚本都产生了同样的结果。
第二个(不正确的)脚本应该产生值=6。编译器很可能有内置的防骗功能,因为double MyKoren(double MyValue=36){行没有意义。只有在不指定参数的情况下调用该函数,其中变量的初始化 值=36才可能起作用。在我们的案例中,肯定发生了以下情况 - 当调用子程序时,首先声明了变量double MyValue,然后它被分配了值=36,之后才被分配了存储在变量DlyaKornya的值。我想不出任何其他解释。
总之,最好不要使用像double MyKoren(double MyValue=36){这样的结构,而应该写成--double MyKoren(double MyValue){,否则你会怀疑为什么子程序不能正常工作。