//--------------------------------------------------------------------externdoubleLevel=1.3200; // Заданный уровень stringText[101]; // Объявление массива//--------------------------------------------------------------------intinit()// Спец. ф-ия init(){// Присвоение значенийText[1]="один "; Text[15]="пятнадцать ";
Text[2]="два "; Text[16]="шестнадцать ";
Text[3]="три "; Text[17]="семнадцать ";
Text[4]="четыре "; Text[18]="восемнадцать ";
Text[5]="пять "; Text[19]="девятнадцать ";
Text[6]="шесть "; Text[20]="двадцать ";
Text[7]="семь "; Text[30]="тридцать ";
Text[8]="восемь "; Text[40]="сорок ";
Text[9]="девять "; Text[50]="пятьдесят ";
Text[10]="десять "; Text[60]="шестьдесят";
Text[11]="одиннадцать "; Text[70]="семьдесят ";
Text[12]="двенадцать "; Text[80]="восемьдесят ";
Text[13]="тринадцать "; Text[90]="девяносто";
Text[14]="четырнадцать "; Text[100]= "сто";
// Вычисление значенийfor(inti=20; i<=90; i=i+10)// Цикл по десяткам{for(intj=1; j<=9; j++)// Цикл по единицамText[i+j]=Text[i] + Text[j]; // Вычисление значения }return; // Выход из init()}//--------------------------------------------------------------------intstart()// Спец. ф-ия start(){intDelta=NormalizeDouble((Bid-Level)/Point,0);// Превышение //--------------------------------------------------------------------if(Delta>=0)// Цена не выше уровня{Alert("Цена ниже уровня"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------if(Delta<100)// Цена более 100{Alert("Более ста пунктов"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------Alert("Плюс ",Text[Delta],"pt."); // Вывод на экранreturn; // Выход из start()}
//---------------------------------------------------------------------
По-моему в условных операторах неправильно проставлены знаки сравнения. Они должны быть с точностью до наоборот. Скажите прав ли я? И если нет, то почему так?
而这里是提议的解决方案。
你好!我在学习MQL4时有一个小问题。该问题位于本网站的教程中。下面是条件:问题25。创建一个程序,在这个程序中实现以下条件:如果速率超过了指定的水平,它将输出一条信息,其中的文字将表明速率超过了水平(最多100点);在其他情况下,信息将告知速率没有超过指定水平。
而这里是提议的解决方案。
显示可能的解决方案。有助于培训。
还有其他选择。还有其他错误。
更加相信自己。实验。
你好!在学习MQL4时,我有一个小问题。该任务位于本网站的教程中。下面是条件:问题25。创建一个程序,实现以下条件:如果速率超过了指定的水平,它将输出一个消息,说速率超过了水平(最多100点);在其他情况下,说速率没有超过指定水平。 而这里是建议的解决方案:
P.S.
具体来说,这个例子在处理一个数组时的用处。
数据在文字中的可能表述。
使用NormalizeDouble函数和预定义的 Point变量。
有可能选择一个更容易的爱好。
很明显,没有办法在类中直接声明外部变量。那么有什么选择呢?如果我不想在专家顾问本身或其他地方声明这些外部的特定变量,这些变量只有在使用这个类时才需要。我认为唯一的选择是做一个inluder,它将声明这些外部变量。然后这个班级应该被纳入其中,对吗?
然后为了调用这个类,你需要包含这个类本身。是这样吗?或者可以有一些其他的变种?
在我看来,这并不是什么好事。大量嵌套的包含文件,以创建...这就是为什么我有这样一个问题。
还是像通常的库一样,在声明类之前先声明外部变量并导入所需的库,这仍然是可能的。我的意思是像这样的事情。
我以前从未见过这种情况。所以我想知道我的方向是否正确......通过Comment将它们作为全局变量输出到终端屏幕。没有零,只有负数。然后我改变了
在向专家顾问传输指标代码时,发生错误。 代码部分的零除法
...
通过Comment将它们作为全局变量输出到终端屏幕。没有零,只有负数。然后我改变了
...
到 。
...
一切都落到了实处,把它放回原处。完全没有错误!其原因是什么?我又关闭了一些互联网。我还得到了"零除法"的错误,即分数的分母中不能传递零。现在,在划分之前,我做了一个正式的检查,如。
然后错误就消失了。也就是说,如果分母=0,即使程序员100%确定那里没有0,编译器也应该被指示如何处理。
你好,请你帮我写一下代码好吗?我需要EA做一件基本的事情--在接近垂直(即严格意义上的时间,而不是价格)线时开仓,即在指定的shi间隔内,我这里有120,即我理解的--2分钟。线条的颜色应该决定是买入还是卖出。我在互联网上搜索并重写了它,得到了以下结果。
void OnTick()
{
int AllObject = ObjectsTotal();
for ( int i = 0; i < AllObject; i++)
{
string NameObj = ObjectName(i);
Colorrr = ObjectGet(NameObj, OBJPROP_COLOR);
Vremyaaa = (ObjectGet(NameObj, OBJPROP_TIME) - shi);
if(Vremyaaa == TimeLocal())
break;
}
int kolpos = 0;
if((Colorrr == Green)||(Colorrr == Aqua)){operacia = "OP_BUY";}
if((Colorrr == Red)||(Colorrr == Purple)){operacia = "OP_SELL";}
for (int pos = 0; pos < OrdersTotal(); pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
kolpos++;
}
}
}
if(kolpos == 0)
{
if (iTime(NULL,0,1) == Vremyaaa)
{
int ticket = OrderSend(Symbol(), operacia, Lot, Bid, 10, 0, 0, "5", Magic, 0, col);
}
}
}
你好,请你帮我写一下代码好吗?我需要EA做一件基本的事情--在接近垂直(即严格意义上的时间,而不是价格)线时开仓,即在指定的shi间隔内,我这里有120,即我理解的--2分钟。线条的颜色应该决定是买入还是卖出。我在互联网上搜索并重写了它。
void OnTick()
{
int AllObject = ObjectsTotal();
for ( int i = 0; i < AllObject; i++)
{
string NameObj = ObjectName(i);
Colorrr = ObjectGet(NameObj, OBJPROP_COLOR);
Vremyaaa = (ObjectGet(NameObj, OBJPROP_TIME) - shi);
if(Vremyaaa == TimeLocal())
break;
}
int kolpos = 0;
if((Colorrr == Green)||(Colorrr == Aqua)){operacia = "OP_BUY";}
if((Colorrr == Red)||(Colorrr == Purple)){operacia = "OP_SELL";}
for (int pos = 0; pos < OrdersTotal(); pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
kolpos++;
}
}
}
if(kolpos == 0)
{
if (iTime(NULL,0,1) == Vremyaaa)
{
int ticket = OrderSend(Symbol(), operacia, Lot, Bid, 10, 0, 0, "5", Magic, 0, col);
}
}
}
如果你的时间与终端时间重合,你可以使用TimeLocal(),但 TimeCurrent()更可靠 。
将operacia变量类型改为int,并删除OP_BUY和OP_SELL的引号
如果你有与终端时间相同的时间,你可以使用TimeLocal(),但 TimeCurrent()更可靠 。
将operacia变量类型改为int,并删除OP_BUY和OP_SELL的引号
谢谢你。关于TimeCurrent,这是真的,我的时间与服务器时间不一致。修好了,但还是不能用......不在日志中写任何错误。
P.S. 在我之前的帖子中,不知为何插入了没有空格的代码。但我想我把所有的大括号都放对了。
MT4 - 625,当试图用库测试猫头鹰时,测试者信息。
2014.03.29 18:38:48.753 'C:\Program Files\Admiral1\MQL4\Libraries\ingLib094.mq4' 不是32位版本
在那只猫头鹰顺利编译之前,图书馆也没有一个字。事实上,我根本就不明白。
我的系统(我指的是Windows)是32位的,我从来没有过其他的系统。第七次。
图书馆是我的母语,与它一路同行。在新的建设中实时进行得很好。包括与其他猫头鹰。在早期版本的测试器中也没有问题。
但在测试器中却不想打开,原因竟然是被吸走了手指。
而 在所有的手册中,没有一个字 提到32位的情况。