[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 611 1...604605606607608609610611612613614615616617618...631 新评论 elllfix 2012.12.10 13:33 #6101 Dimka-novitsek:if(Stoch_1>Stoch_2) { flag1=1 ; Print (flag1,flag2,flag3,flag4); } 如果(Stoch_1<Stoch_2 && flag1==1) flag2=1; 打印(flag1,flag2,flag3,flag4); } if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav"); } 如果(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1; {打印(flag1,flag2,flag3,flag4);}。 如果(Stoch_1>Stoch_2 && flag1==1 && flag2==1 && flag3==1 && flag4==1) {OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, NULL, 450, 0, CLR_NONE); 打印("OUT");} flag1=0。 flag2=0。 flag3=0。 flag4=0。了解到你会学习,为了学习你会写一些东西......在我看来,至少我把你的括号安排得很好,让它们发挥了作用。 尽管你的代码在编译器中出现了24个错误!!!但仍然感谢你的马虎帮助....。对于这个想法...(现在可以了--虽然我原则上也想这样做,但标点符号是个问题) elllfix 2012.12.10 13:41 #6102 我再次想知道位置指数是什么。如果它是历史上的一个位置号,那么这个函数是做什么的?GetIndexLastPos 最后开仓 的索引或-1 ? ?最后一个开仓的指数总是1,因为它是最新的!!!。我显然误解了INDEX....。线索谁知道? [删除] 2012.12.10 14:08 #6103 lottamer: 你认为应该如何比较?让我们开始吧。1.如果(Stoch_1>Stoch_2) flag1=1;,那么它后面的条件(Stoch_1<Stoch_2 && flag1==1)原则上不能为真,因为如果Stoch_1<Stoch_2 flag1==0,如果 flag1==1,那么Stoch_1>Stoch_2。它与这个函数中的所有后续条件都是一样的,所以只有flag1可以改变值。也就是说,你的程序将执行前两行,跳过第三行,执行第四行,跳过第五行,执行第六行,执行第七行,而跳过其他所有行。 TarasBY 2012.12.10 14:18 #6104 xant:TarasBY, Var1和其他的名字都是我命名的,在init里面插入了fGet_MineGV()块,在staff里面插入了fSave_MineGV()块。编译时,EA给出了一堆错误。 我一个接一个地试。首先我把它插入init里面,然后编译它。有0个错误,一个备注:未被引用,将从exp-file中删除。嗯,我觉得有道理,它找不到这个文件,因为它还不存在。它必须写在楼梯里。因此,当我试图在楼梯内写第二个块时,它产生了很多错误。 结构算法。int init() { fGet_MineGV(); } int start() { fSave_MineGV(); } double Var1, Var2, Var3, Var4; // 4-ре переменных для сохранения (у Вас они свои !!!) void fSave_MineGV (string fs_PrefName = "") // префикс имени переменной { static datetime ldt_NewBar; datetime ldaTBeginBar = iTime (Symbol(), 1, 0); //---- //---- Сохраняемся в начале каждой минуты if (ldt_NewBar == ldaTBeginBar) return; ldt_NewBar = ldaTBeginBar; //---- Сохраняем поочереди значения каждой переменной string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1"); GlobalVariableSet (ls_Name, Var1); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2"); GlobalVariableSet (ls_Name, Var2); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3"); GlobalVariableSet (ls_Name, Var3); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4"); GlobalVariableSet (ls_Name, Var4); //---- } // в init() void fGet_MineGV (string fs_PrefName = "") // префикс имени переменной { string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1"); //---- //---- Восстанавливаем значения переменных if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2"); if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3"); if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name); ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4"); if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name); //---- } 当然,你做了吗?而它却不能编译? [删除] 2012.12.10 14:18 #6105 lottamer:我再次想知道位置指数是什么。如果它是历史上的一个位置号,那么这个函数是做什么的?GetIndexLastPos 最后开仓的索引或-1 ? ?最后一个开仓的指数总是1,因为它是最新的!!!。我显然误解了INDEX....。线索谁知道?最后打开的索引总是1,因为它是最新的!!。不是1,而是0,而且不在历史上。在历史上,0是最后关闭的头寸或最后删除的订单的指数,并不总是如此,因为除了市场,还有挂单,这不是头寸。 Юсуфходжа 2012.12.10 14:23 #6106 Profi,请告诉我如何以编程方式写下:"在SL水平上放置一个挂单,并考虑到点差的平仓单参数",并在EA的代码中附上它? [删除] 2012.12.10 14:40 #6107 yosuf: Profi教授,请告诉我如何编写以下程序:"在SL水平上放置一个包括点差在内的平仓订单参数的挂单",并在EA代码中的何处附加? 你不能用近似命令的参数来做。开盘价 也是一个参数。 visnu 2012.12.10 14:42 #6108 塔拉斯比是的,我按你写的做了。而且它不能编译。 很明显,我做错了什么,但我不知道具体是什么。你可以一步一步地走下去。 Юсуфходжа 2012.12.10 14:54 #6109 rigonich: 没有办法与要关闭的那个参数。开盘价也是一个参数。 为什么?例如,在O=1.2900,TP 1.300和SL 1.2800的情况下开了一个订单。挂单 的参数应该是BAY O=1.2800,TP 1.2900,SL 1.2700。如果可能的话,请考虑将其传播出去。 [删除] 2012.12.10 15:11 #6110 yosuf: 为什么?例如,BAY订单在O=1.2900处打开,TP为1.300,SL为1.300。挂单的参数应该是BAY O=1.2800,TP 1.2900,SL 1.2700。如果可能的话,请考虑将其传播出去。 第一个订单的 开盘价 为 1.2900,目标价 为1. 300。这些是不同的参数。第一个 是BAY,第二个是 BAY_STOP。这些也是不同的参数。而当你在SL上收盘时,你损失的不是点差,而是更多(点差+SL*点)。 1...604605606607608609610611612613614615616617618...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
if(Stoch_1>Stoch_2) { flag1=1 ; Print (flag1,flag2,flag3,flag4); }
如果(Stoch_1<Stoch_2 && flag1==1) flag2=1; 打印(flag1,flag2,flag3,flag4); }
if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav"); }
如果(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{打印(flag1,flag2,flag3,flag4);}。
如果(Stoch_1>Stoch_2 && flag1==1 && flag2==1 && flag3==1 && flag4==1)
{OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, NULL, 450, 0, CLR_NONE);
打印("OUT");}
flag1=0。
flag2=0。
flag3=0。
flag4=0。
了解到你会学习,为了学习你会写一些东西......在我看来,至少我把你的括号安排得很好,让它们发挥了作用。
尽管你的代码在编译器中出现了24个错误!!!但仍然感谢你的马虎帮助....。对于这个想法...(现在可以了--虽然我原则上也想这样做,但标点符号是个问题)
我再次想知道位置指数是什么。如果它是历史上的一个位置号,那么这个函数是做什么的?
GetIndexLastPos 最后开仓 的索引或-1 ? ?
最后一个开仓的指数总是1,因为它是最新的!!!。
我显然误解了INDEX....。
线索谁知道?
你认为应该如何比较?
让我们开始吧。
1.如果(Stoch_1>Stoch_2) flag1=1;,那么它后面的条件(Stoch_1<Stoch_2 && flag1==1)原则上不能为真,因为如果Stoch_1<Stoch_2 flag1==0,如果 flag1==1,那么Stoch_1>Stoch_2。它与这个函数中的所有后续条件都是一样的,所以只有flag1可以改变值。也就是说,你的程序将执行前两行,跳过第三行,执行第四行,跳过第五行,执行第六行,执行第七行,而跳过其他所有行。
TarasBY,
Var1和其他的名字都是我命名的,在init里面插入了fGet_MineGV()块,在staff里面插入了fSave_MineGV()块。
编译时,EA给出了一堆错误。
我一个接一个地试。首先我把它插入init里面,然后编译它。有0个错误,一个备注:未被引用,将从exp-file中删除。嗯,我觉得有道理,它找不到这个文件,因为它还不存在。它必须写在楼梯里。
因此,当我试图在楼梯内写第二个块时,它产生了很多错误。
结构算法。
当然,你做了吗?而它却不能编译?
我再次想知道位置指数是什么。如果它是历史上的一个位置号,那么这个函数是做什么的?
GetIndexLastPos 最后开仓的索引或-1 ? ?
最后一个开仓的指数总是1,因为它是最新的!!!。
我显然误解了INDEX....。
线索谁知道?
最后打开的索引总是1,因为它是最新的!!。不是1,而是0,而且不在历史上。在历史上,0是最后关闭的头寸或最后删除的订单的指数,并不总是如此,因为除了市场,还有挂单,这不是头寸。
Profi教授,请告诉我如何编写以下程序:"在SL水平上放置一个包括点差在内的平仓订单参数的挂单",并在EA代码中的何处附加?
你不能用近似命令的参数来做。开盘价 也是一个参数。
塔拉斯比
是的,我按你写的做了。而且它不能编译。
很明显,我做错了什么,但我不知道具体是什么。你可以一步一步地走下去。
没有办法与要关闭的那个参数。开盘价也是一个参数。
为什么?例如,BAY订单在O=1.2900处打开,TP为1.300,SL为1.300。挂单的参数应该是BAY O=1.2800,TP 1.2900,SL 1.2700。如果可能的话,请考虑将其传播出去。
第一个订单的 开盘价 为 1.2900,目标价 为1. 300。这些是不同的参数。第一个 是BAY,第二个是 BAY_STOP。这些也是不同的参数。而当你在SL上收盘时,你损失的不是点差,而是更多(点差+SL*点)。