[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 615 1...608609610611612613614615616617618619620621622...631 新评论 Boris 2012.12.10 18:16 #6141 yosuf: 代码是什么? 你的EA中不是有一个代码吗?在所有的专家顾问系统中,一切几乎都是一样的!它们只是在编码方式和编码者的偏好上有所不同。看看你的,继续做吧! TarasBY 2012.12.10 18:16 #6142 rigonich: 顺便说一句,对这个问题琢磨了很久,但从未发现,只是忘了。测试人员从哪里获得停止播放的数值?如果实际数值可以被服务器改变,那么测试结果应该取决于测试的时间,而事实并非如此,我检查过。或者,存储在符号属性中的值和服务器在请求时给出的值不一样? 来自市场环境的变量在 symbols.raw(推测)服务文件中,该文件在服务器历史文件夹中。当没有连接到服务器 或在周末时,终端从这个文件中获取最后的数据。 TarasBY 2012.12.10 18:21 #6143 xant:严谨这是某种玩笑还是什么?你在哪里笑?塔拉斯比你不能?那就别做了。 听着,你这个大耳怪,你已经得到了帮助,你甚至不能把一个现成的代码带入你的专家顾问中!你知道吗?而你只是张嘴就来。你至少可以向一个白痴解释!BY. visnu 2012.12.10 18:30 #6144 塔拉斯比是他妈的不动,混蛋。你是个怪人。因为你甚至不能用俄语正确表达两个字。你是个混蛋吗?好吧,我不需要折磨你。得到一些休息。 [删除] 2012.12.10 18:31 #6145 TarasBY: 来自市场环境的变量在 symbols.raw(大概)服务文件中,该文件位于服务器历史文件夹中。当没有连接到服务器或在周末时,终端从这个文件中获取最新的数据。 谢谢你。 [删除] 2012.12.10 18:48 #6146 xant:严谨这是某种玩笑还是什么?你在哪里笑?塔拉斯比你不能?好吧,你不应该有。 我是用俄语写的--教科书中几乎没有关于全局变量的声明。例如,我不知道fGet_MineGV()是什么。它是一个函数吗?如果是这样,它是做什么的?在教科书中搜索fGet,结果为零。我应该在int init()中声明什么?你已经写了。 { fGet_MineGV()。 }在我的EA中,init的初始化是这样的。int init(){ ArrayInitialize(buf3,0)。 ArrayInitialize(b1,0)。 ArrayInitialize(b2,0)。 ArrayInitialize(b3,0)。 ArrayInitialize(b4,0)。 Comment("计算平均值 "+ind)。 m1=NormalizeDouble(iCustom(NULL,tf,ind+"_a",0,0),2)。 string d="平均值 "+ind+"+DoubleToStr(m1,2)。 tm=TimeCurrent()。 int q=0,ticket=-1; 双重OPR=0,lot1=0。 for(q=0;q<OrdersTotal();q++){以此类推,还有100行。去哪里,在什么地方,最重要的是,我在这里到底应该申报什么?用俄语写作真的这么难吗?让我们弯曲我们的手指,是的。 这是一个函数吗?如果是这样,它的作用是什么?教科书上搜索fGet的结果为零。 是的,这个功能,在教程中不可能有任何关于它的内容,在编写教程的时候,它还没有出现。这是一个用户定义的函数,是专门为你写的。 void fGet_MineGV (string fs_PrefName = "") // префикс имени переменной { string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1"); if (GlobalVariableCheck (ls_Name)) SUA = GlobalVariableGet (ls_Name); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2"); if (GlobalVariableCheck (ls_Name)) SUA1 = GlobalVariableGet (ls_Name); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3"); if (GlobalVariableCheck (ls_Name)) BUA = GlobalVariableGet (ls_Name); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4"); if (GlobalVariableCheck (ls_Name)) BUA1 = GlobalVariableGet (ls_Name); //---- } Dimka-novitsek 2012.12.10 19:09 #6147 晚上好!跟踪止损在下单 后立即发挥作用。只有当带有票据袋的订单进入历史记录时,它才会起作用,而且它将严格按照TakeProfit移动。 //*************************************** nahodka=false; if (OrderSelect(tocket, SELECT_BY_TICKET , MODE_HISTORY)) if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true; // Находим ордер, сработавший именно по тейкпрофиту if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){ if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи " ); OrderModify( tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}} // Модифицируем оставшийся ордер for ( i = OrdersTotal() - 1; i >= 0; i--) visnu 2012.12.10 19:15 #6148 严谨我一开始就这样做了。我在init函数中插入了这段代码,编译后得到了一个注释。 函数"fGet_MineGV "未被引用,将从exp-file中删除。这个警告对我来说很清楚,因为那里还没有记录,所以它不能读取任何东西,对吗?之后,我在函数start里面写了第二部分的代码。这个片段看起来像这样void fSave_MineGV (string fs_PrefName = "") //变量名称前缀{ static datetime ldt_NewBar; datetime ldaTBeginBar = iTime (Symbol(), 1, 0) //---- Save at beginning of each minute if (ldt_NewBar == ldaTeginBar) return; ldt_NewBar = ldaTBeginBar; //---- 依次保存每个变量的值 string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1") 。 GlobalVariableSet (ls_Name, SUA); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2"); GlobalVariableSet (ls_Name, SUA1); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3") GlobalVariableSet (ls_Name, BUA); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4"); GlobalVariableSet (ls_Name, BUA1);}这一切都在这里吗?我在计算SUA、SUA1、BUA、BUA1之后插入这部分代码。但在编译时,专家顾问给出了以下输出。27个错误(s), 64个警告(s) [ARCHIVE!] Any rookie question, 多时间框架指标 淘宝网上有卖的,有卖的,有卖的,有卖的,有卖的,有卖的,有卖的,有卖的。 [删除] 2012.12.10 19:33 #6149 xant: 严谨我一开始就这样做了。我在init函数中插入了这段代码,编译后得到了一个注释。 函数 "fGet_MineGV "未被引用,将从exp-file中删除。这个警告对我来说很清楚,因为那里还没有记录,所以它不能读取任何东西,对吗?之后,我在函数start里面写了第二部分的代码。这个片段看起来像这样void fSave_MineGV (string fs_PrefName = "") //变量名称前缀{ static datetime ldt_NewBar; datetime ldaTBeginBar = iTime (Symbol(), 1, 0) //---- Save at beginning of each minute if (ldt_NewBar == ldaTeginBar) return; ldt_NewBar = ldaTBeginBar; //---- 依次保存每个变量的值 string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1") 。 GlobalVariableSet (ls_Name, SUA); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2"); GlobalVariableSet (ls_Name, SUA1); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3") GlobalVariableSet (ls_Name, BUA); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4"); GlobalVariableSet (ls_Name, BUA1);}这里的一切都正确吗? 函数描述既不能放在start中,也不能放在inite中,更不能放在其他函数中。 它们必须分开放置。 你可以把它放在你的EA中间,或在开头,或在结尾,但不能放在其他函数中。你应该只把函数调用 放在init中,你可以把它放在最开始。这句话对我来说很清楚,因为记录还没有建立,所以不能算什么,对吗?确切地说,没有函数描述,编译器正在寻找它应该在的地方--实用性函数之外。{fGet_MineGV();}这同样适用于第二个函数。这是一本 "入门书",很难假设做编程的人,即使是初学者,也不可能知道这些。 [删除] 2012.12.10 20:18 #6150 Dimka-novitsek: 晚上好!拖曳止损在下单后立即生效。只有当带票的订单进入历史记录时,它才会起作用,而且它将严格按照TakeProfit进行移动。 。 但是,如果你的历史记录不是空的,你几乎肯定会发现有一个订单正好在获利时被触发?显然,你不是在搜索历史上 在TP关闭的订单,而是通过历史检查你需要的订单是如何关闭的,以及它是否根本没有关闭。这就是你需要检查的,为什么你要检查你的订单的收盘价到底是多少?三个选项 - 1.收盘价==0 - 如果订单是市场的,它不在历史中(OrderSelect()将返回false) 2.收盘价等于赢利订单(OrderTakeProfit))--该订单已在止损价位 关闭,3.订单获利(OrderTakeProfit)。-- 该订单没有在止损点关闭。 1...608609610611612613614615616617618619620621622...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
代码是什么?
顺便说一句,对这个问题琢磨了很久,但从未发现,只是忘了。测试人员从哪里获得停止播放的数值?如果实际数值可以被服务器改变,那么测试结果应该取决于测试的时间,而事实并非如此,我检查过。或者,存储在符号属性中的值和服务器在请求时给出的值不一样?
严谨
这是某种玩笑还是什么?你在哪里笑?
塔拉斯比
你不能?那就别做了。
塔拉斯比
是他妈的不动,混蛋。你是个怪人。因为你甚至不能用俄语正确表达两个字。
你是个混蛋吗?好吧,我不需要折磨你。得到一些休息。
来自市场环境的变量在 symbols.raw(大概)服务文件中,该文件位于服务器历史文件夹中。当没有连接到服务器或在周末时,终端从这个文件中获取最新的数据。
谢谢你。
严谨
这是某种玩笑还是什么?你在哪里笑?
塔拉斯比
你不能?好吧,你不应该有。
我是用俄语写的--教科书中几乎没有关于全局变量的声明。例如,我不知道fGet_MineGV()是什么。
它是一个函数吗?如果是这样,它是做什么的?在教科书中搜索fGet,结果为零。
我应该在int init()中声明什么?你已经写了。
{
fGet_MineGV()。
}
在我的EA中,init的初始化是这样的。
int init()
{
ArrayInitialize(buf3,0)。
ArrayInitialize(b1,0)。
ArrayInitialize(b2,0)。
ArrayInitialize(b3,0)。
ArrayInitialize(b4,0)。
Comment("计算平均值 "+ind)。
m1=NormalizeDouble(iCustom(NULL,tf,ind+"_a",0,0),2)。
string d="平均值 "+ind+"+DoubleToStr(m1,2)。
tm=TimeCurrent()。
int q=0,ticket=-1;
双重OPR=0,lot1=0。
for(q=0;q<OrdersTotal();q++)
{
以此类推,还有100行。去哪里,在什么地方,最重要的是,我在这里到底应该申报什么?用俄语写作真的这么难吗?让我们弯曲我们的手指,是的。
这是一个函数吗?如果是这样,它的作用是什么?教科书上搜索fGet的结果为零。
是的,这个功能,在教程中不可能有任何关于它的内容,在编写教程的时候,它还没有出现。这是一个用户定义的函数,是专门为你写的。
{
严谨
我一开始就这样做了。我在init函数中插入了这段代码,编译后得到了一个注释。
函数"fGet_MineGV "未被引用,将从exp-file中删除。
这个警告对我来说很清楚,因为那里还没有记录,所以它不能读取任何东西,对吗?
之后,我在函数start里面写了第二部分的代码。这个片段看起来像这样
void fSave_MineGV (string fs_PrefName = "") //变量名称前缀
{
static datetime ldt_NewBar;
datetime ldaTBeginBar = iTime (Symbol(), 1, 0)
//---- Save at beginning of each minute
if (ldt_NewBar == ldaTeginBar) return;
ldt_NewBar = ldaTBeginBar;
//---- 依次保存每个变量的值
string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1") 。
GlobalVariableSet (ls_Name, SUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
GlobalVariableSet (ls_Name, SUA1);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3")
GlobalVariableSet (ls_Name, BUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
GlobalVariableSet (ls_Name, BUA1);
}
这一切都在这里吗?
我在计算SUA、SUA1、BUA、BUA1之后插入这部分代码。
但在编译时,专家顾问给出了以下输出。
27个错误(s), 64个警告(s)
严谨
我一开始就这样做了。我在init函数中插入了这段代码,编译后得到了一个注释。
函数 "fGet_MineGV "未被引用,将从exp-file中删除。
这个警告对我来说很清楚,因为那里还没有记录,所以它不能读取任何东西,对吗?
之后,我在函数start里面写了第二部分的代码。这个片段看起来像这样
void fSave_MineGV (string fs_PrefName = "") //变量名称前缀
{
static datetime ldt_NewBar;
datetime ldaTBeginBar = iTime (Symbol(), 1, 0)
//---- Save at beginning of each minute
if (ldt_NewBar == ldaTeginBar) return;
ldt_NewBar = ldaTBeginBar;
//---- 依次保存每个变量的值
string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1") 。
GlobalVariableSet (ls_Name, SUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
GlobalVariableSet (ls_Name, SUA1);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3")
GlobalVariableSet (ls_Name, BUA);
ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
GlobalVariableSet (ls_Name, BUA1);
}
这里的一切都正确吗?
函数描述既不能放在start中,也不能放在inite中,更不能放在其他函数中。 它们必须分开放置。 你可以把它放在你的EA中间,或在开头,或在结尾,但不能放在其他函数中。你应该只把函数调用 放在init中,你可以把它放在最开始。
这句话对我来说很清楚,因为记录还没有建立,所以不能算什么,对吗?确切地说,没有函数描述,编译器正在寻找它应该在的地方--实用性函数之外。
{
fGet_MineGV();
}
这同样适用于第二个函数。这是一本 "入门书",很难假设做编程的人,即使是初学者,也不可能知道这些。
晚上好!拖曳止损在下单后立即生效。只有当带票的订单进入历史记录时,它才会起作用,而且它将严格按照TakeProfit进行移动。 。
但是,如果你的历史记录不是空的,你几乎肯定会发现有一个订单正好在获利时被触发?显然,你不是在搜索历史上 在TP关闭的订单,而是通过历史检查你需要的订单是如何关闭的,以及它是否根本没有关闭。这就是你需要检查的,为什么你要检查你的订单的收盘价到底是多少?三个选项 - 1.收盘价==0 - 如果订单是市场的,它不在历史中(OrderSelect()将返回false) 2.收盘价等于