[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 404 1...397398399400401402403404405406407408409410411...537 新评论 --- 2011.05.24 11:04 #4031 Dimka-novitsek: 我无法组织一个循环,X和Y总是等于0。 首先,清除你头脑中的垃圾。 让你的代码 漂亮而有条理。 也不要贪图评论。 Dimka-novitsek 2011.05.24 12:11 #4032 是的,当然了。 我首先选择具有所需魔数和该货币对的订单。如果( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()){ 然后循环for( i=OrdersTotal();i==0;i--),其中我像这样选择订单 OrderSelect(i,SELECT_BY_POS ); 然后计算有多少订单作为OP_SELLSTOP。 如果没有订单,那么我们就开一个不存在的订单类型的订单。上层循环中的X变量和下层循环中的Y变量被用来计算必要类型的订单。两个循环的结构和目的都是一样的。 我已经写了解释,但在这里,爸爸来了,打电话,带来了牛奶、茶和哈尔瓦,我没有发送消息,我去撒尿,我的父亲擦掉了未发送的消息,说,但什么,你可以在另一个搜索引擎窗口写?我想知道荨麻糊是什么。 我有点吓坏了,几乎没有解释就发了过去。 那么,X和Y总是0。for循环一定没有工作。简而言之,我不明白什么地方可能不工作,因为这一点,订单在每个tick 上打开2。 ilunga 2011.05.24 12:16 #4033 Dimka-novitsek: 是的,当然了。 我首先选择具有所需魔数和该货币对的订单。如果( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()){ 然后循环for( i=OrdersTotal();i==0;i--),其中我像这样选择订单 OrderSelect(i,SELECT_BY_POS ); 然后计算有多少订单作为OP_SELLSTOP。 如果没有订单,那么我们就开一个不存在的订单类型的订单。上层循环中的X变量和下层循环中的Y变量被用来计算必要类型的订单。两个循环的结构和目的都是一样的。 我已经写了解释,但在这里,爸爸来了,打电话,带来了牛奶、茶和哈尔瓦,我没有发送消息,我去撒尿,我的父亲擦掉了未发送的消息,说,但什么,你可以在另一个搜索引擎窗口写?我想知道荨麻糊是什么。 我有点吓坏了,几乎没有解释就发了过去。 那么,X和Y总是0。for循环一定没有工作。简而言之,我完全不明白是什么原因造成的,它导致订单在每个tick上打开2个。 这是完全正确的,for 循环没有做你需要的事情。 你有以下情况:for( i=OrdersTotal();i==0;i--) 1) 如果有0个订单,循环将被执行1次。在这种情况下,它将选择未知数并对其进行未知数的处理=) 2) 如果有超过0个订单,循环将根本不启动,因为条件 "i==0 "不符合。 Dimka-novitsek 2011.05.24 12:31 #4034 谢谢你!!!。我一会儿再重读一下这个参考资料! Dimka-novitsek 2011.05.24 12:39 #4035 是的!谢谢你!!!。 Dimka-novitsek 2011.05.24 13:09 #4036 Ds你知道的,我不能把它弄好,所有的东西都是一样的。//+------------------------------------------------------------------+ //| для лавин.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN; // R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss; int start() { int X,Y; double price=(Ask+Bid)/2; //---- Alert ("OrdersTotal()",OrdersTotal()); if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000){ for(int i=OrdersTotal();i>0;i--){Alert ("i", i); OrderSelect(i,SELECT_BY_POS );if(OrderType( )==OP_BUYSTOP){X++;}}}Alert ("X", X); if (X==0){ tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000, expiration, Red); Alert ("OP_BUYSTOP", GetLastError( )); } if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()) { for ( i=OrdersTotal();i>0;i--){Alert ("i", i); OrderSelect(i,SELECT_BY_POS ); if(OrderType( ) ==OP_SELLSTOP) { Y++;}}}Alert ("Y", Y); if (Y==0){ tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000, expiration,C'0,128,255' ); Alert ("OP_SELLSTOP", GetLastError( )); } //---- return(0); } //+------------------------------------------- 在帮助中,它说 表达式2 是对循环结束条件的检查。如果为真,则执行for 循环主体操作。 等。我修复了所有的东西,但没有任何变化。还试着把i=5而不是i=OrdersTotal(),没有任何变化,循环不工作。 ilunga 2011.05.24 13:21 #4037 Dimka-novitsek: 帮助文本说 表达式2 是对循环结束条件的检查。如果为真,则执行for 循环主体操作。 等。我修复了所有的东西,但没有任何变化。还试着把i=5而不是i=OrdersTotal(),没有任何变化,循环不工作。 对了,循环不至于到了循环。 if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000){ for(int i=OrdersTotal();i>0;i--){Alert ("i", i); 你写道:"如果订单符号(哪个订单?有很多......或者根本没有)等于当前订单,并且其魔力(哪个订单?)等于1000,那么就执行循环"。 而你必须:"开始一个循环。在其中:1)选择一个订单。2)如果符号=......,并且魔法=1000,则X++;" pusheax 2011.05.24 13:24 #4038 实际账户 中的一些DC为符号名称分配了各种前缀,如". "或 "FXF"。 我怎样才能使用这些前缀? 我是这样做的。 #define DEF_SPEC "FXF" string SymbolsTrade[] = {"AUDCAD" DEF_SPEC ...-不起作用 string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ...-它也不像那样工作 结果我得到的只是FXF而不是AUDCADFXF。 你能告诉我如何实现这一点吗? ilunga 2011.05.24 13:35 #4039 pusheax: 实际账户 中的一些DC为符号名称分配了各种前缀,如". "或 "FXF"。 我怎样才能使用这些前缀? 我这样做了。 #define DEF_SPEC "FXF" string SymbolsTrade[] = {"AUDCAD" DEF_SPEC ...-不起作用 string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ...-它也不像那样工作 结果我得到的只是FXF而不是AUDCADFXF。 你能告诉我如何实现这一点吗?好吧,这就是它在飞行中的作用。 #define DEF_SPEC "FXF" string SymbolsTrade[] = {"AUDCAD", "EURUSD"}; int init() { for (int i = 0; i < ArraySize(SymbolsTrade); i++) SymbolsTrade[i] = SymbolsTrade[i] + DEF_SPEC; Dimka-novitsek 2011.05.24 13:36 #4040 知道了,我去做...... 另外,这个条件也不起作用。 OrderSelect(i,SELECT_BY_POS ); if(OrderType( ) ==OP_SELLSTOP) { Y++;}Alert ("Y", Y);} 1...397398399400401402403404405406407408409410411...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我无法组织一个循环,X和Y总是等于0。
首先,清除你头脑中的垃圾。
让你的代码 漂亮而有条理。
也不要贪图评论。
是的,当然了。
我首先选择具有所需魔数和该货币对的订单。如果( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()){
然后循环for( i=OrdersTotal();i==0;i--),其中我像这样选择订单 OrderSelect(i,SELECT_BY_POS ); 然后计算有多少订单作为OP_SELLSTOP。
如果没有订单,那么我们就开一个不存在的订单类型的订单。上层循环中的X变量和下层循环中的Y变量被用来计算必要类型的订单。两个循环的结构和目的都是一样的。
我已经写了解释,但在这里,爸爸来了,打电话,带来了牛奶、茶和哈尔瓦,我没有发送消息,我去撒尿,我的父亲擦掉了未发送的消息,说,但什么,你可以在另一个搜索引擎窗口写?我想知道荨麻糊是什么。 我有点吓坏了,几乎没有解释就发了过去。
那么,X和Y总是0。for循环一定没有工作。简而言之,我不明白什么地方可能不工作,因为这一点,订单在每个tick 上打开2。
是的,当然了。
我首先选择具有所需魔数和该货币对的订单。如果( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()){
然后循环for( i=OrdersTotal();i==0;i--),其中我像这样选择订单 OrderSelect(i,SELECT_BY_POS ); 然后计算有多少订单作为OP_SELLSTOP。
如果没有订单,那么我们就开一个不存在的订单类型的订单。上层循环中的X变量和下层循环中的Y变量被用来计算必要类型的订单。两个循环的结构和目的都是一样的。
我已经写了解释,但在这里,爸爸来了,打电话,带来了牛奶、茶和哈尔瓦,我没有发送消息,我去撒尿,我的父亲擦掉了未发送的消息,说,但什么,你可以在另一个搜索引擎窗口写?我想知道荨麻糊是什么。 我有点吓坏了,几乎没有解释就发了过去。
那么,X和Y总是0。for循环一定没有工作。简而言之,我完全不明白是什么原因造成的,它导致订单在每个tick上打开2个。
这是完全正确的,for 循环没有做你需要的事情。
你有以下情况:for( i=OrdersTotal();i==0;i--)
1) 如果有0个订单,循环将被执行1次。在这种情况下,它将选择未知数并对其进行未知数的处理=)
2) 如果有超过0个订单,循环将根本不启动,因为条件 "i==0 "不符合。
表达式2 是对循环结束条件的检查。如果为真,则执行for 循环主体操作。
帮助文本说
表达式2 是对循环结束条件的检查。如果为真,则执行for 循环主体操作。
对了,循环不至于到了循环。
你写道:"如果订单符号(哪个订单?有很多......或者根本没有)等于当前订单,并且其魔力(哪个订单?)等于1000,那么就执行循环"。
而你必须:"开始一个循环。在其中:1)选择一个订单。2)如果符号=......,并且魔法=1000,则X++;"
实际账户 中的一些DC为符号名称分配了各种前缀,如". "或 "FXF"。
我怎样才能使用这些前缀?
我是这样做的。
#define DEF_SPEC "FXF"
string SymbolsTrade[] = {"AUDCAD" DEF_SPEC ...-不起作用
string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ...-它也不像那样工作
结果我得到的只是FXF而不是AUDCADFXF。
你能告诉我如何实现这一点吗?实际账户 中的一些DC为符号名称分配了各种前缀,如". "或 "FXF"。
我怎样才能使用这些前缀?
我这样做了。
#define DEF_SPEC "FXF"
string SymbolsTrade[] = {"AUDCAD" DEF_SPEC ...-不起作用
string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ...-它也不像那样工作
结果我得到的只是FXF而不是AUDCADFXF。
你能告诉我如何实现这一点吗?好吧,这就是它在飞行中的作用。
知道了,我去做......
另外,这个条件也不起作用。