向鉴赏家提问 - 页 12 1...5678910111213141516171819...21 新评论 Ivan 2009.07.14 21:25 #111 rid писал(а)>> 我并不是这方面的专家。 但假设是,如果在第一个信号之后,你'挂'了旗子,那就让它挂着。 即使第1个信号已经用完了! 然后第2个信号会发出信号,顺利打开。 如果我对这个问题的理解是正确的... 但是,按照我的理解,旗子是一个变量,随着一个新的刻度,程序将看到初始或新计算的旗子值。也许我误解了什么是旗帜? infinity 2009.07.14 21:29 #112 MQLBankir >> : 但是,按照我的理解,旗帜是一个变量,随着一个新的刻度,程序将看到旗帜的初始值或从新数据中计算出来的值。也许我误解了什么是旗帜? 标志是一个布尔常数,其值为真或假,数字表示分别为1或0。 如果条件1发出信号(如跨越2个轮子),则标志被设置为真,如果跨越尚未发生,标志将保持为假对于你的任务...它将看起来像这样。 bool signal1=true。 int start() 如果(signal1==false){return();}。 signal1 ......... tra la get signal 如果(signal1 ==true)//出现第一个信号 { signal2 .............. tra la接收信号 signal1=false。} 这样的事情应该发生))) 哦,我在写的时候,已经在下面定义了) Mykola Demko 2009.07.14 21:31 #113 MQLBankir >> : 但是,按照我的理解,旗帜是一个变量,随着一个新的刻度,程序将看到旗帜的初始值或从新数据中计算出来的值。也许我误解了什么是旗帜? 我可以补充一点,全局声明的变量 会保存它们的值。 >>直到它们被强行改变或程序被关闭。 Mykola Demko 2009.07.14 21:39 #114 对国旗的保护是按以下方式进行的。 int flag; int start() { // функция принятия решения и установки флага if( flag==1) { flag=0; // код защищенный от запуска флагом } return(0); } 顺便说一下 // функция принятия решения и установки флага 可以在任何地方,根据作者的想法,用不同的行动顺序。 Ivan 2009.07.14 21:56 #115 Urain писал(а)>> 对国旗的保护是按以下方式进行的。 顺便说一句 可以在任何地方,取决于作者的想法,而且它改变了行动的顺序。 >>谢谢大家,似乎已经想通了))。 Rid 2009.08.13 15:40 #116 晚上好。麻烦从某个地方下来了。 一个带马丁格尔的顾问。 10个步骤。每一步的位置都有一个不同的魔术师。 开始时,一切工作都很正常。几天来。 然而,突然间,它完全不工作了! 第一个仓位打开后,立即在下一个柱状体上关闭!这就是所谓的 "平仓"。 目前还不清楚原因。 而且,它还在继续。打开和关闭。 今天刚刚开始。突然间 ! 这里是结尾 部分。 //жжжжжжжжжжжж Закрытие позиций жжжжжжжжжжжжжжжжжжжжжжж //(используются ф-и И.Кима if ( NumberOfPositions(NULL,OP_BUY, -1)>0) {//если есть открытые позиции // если цена открытия первой позиции меньше текущей цены на тейкпрофит - закрываем её if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic )+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic )>0) ClosePositions(NULL, OP_BUY, Magic ); // если цена открытия второй позиции меньше текущей цены на тейкпрофит - закрываем её if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_2)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_2)>0) ClosePositions(NULL, OP_BUY, Magic_2); // если цена открытия след. позиции меньше текущей цены на тейкпрофит - закрываем всё открытые позиции if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_3)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_3)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_4)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_4)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_5)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_5)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_6)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_6)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_7)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_7)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_8)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_8)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_9)+ TakeProfit_Buy*Point)<=Bid && PriceOpenLastPos(NULL, OP_BUY, Magic_9)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); if ( ( PriceOpenLastPos(NULL, OP_BUY, Magic_10)+ TakeProfit_Buy*Point)<=Bid&& PriceOpenLastPos(NULL, OP_BUY, Magic_10)>0) ClosePosFirstProfit(NULL, OP_BUY, -1); } 也许有人会看到不准确或错误的地方?(按持仓价格计算) TheXpert 2009.08.13 15:57 #117 rid писал(а) >> 目前还不清楚原因。 会不会有人突然看到任何不准确或错误的地方? 问题可能不在这段代码,而是在开仓或计算 TakeProfit_Buy。更有可能的是,它是后者。 如果它在测试器中播放,打印应该有帮助。 Rid 2009.08.13 16:04 #118 我没有计算TakeProfit_Buy - 我只是在外部参数中设置它。 extern int TakeProfit_Buy=21; 在测试器中--同样的废话。但在一些地方。 起初,一切都很正常。 然后就出现了这个狗屎。而且并不总是如此。 我必须插入一个评论或打印... 此外。在我还是个菜鸟的时候,我从未尝试过使用这种魔法,但我从未忘记。 Rid 2009.08.13 17:50 #119 我想我弄错了。当然,也完全不是我原来要找的地方。 除了上述封闭,我还有这个。 //----------------------- Закрытие позиций по текй профиту ---------------------------------- if ( NumberOfPositions(NULL,OP_BUY, -1)>0) {// если есть открытые позиции // если очередная позиция закрылась по тейкпрофиту , то закрываем // все остальные позиции if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_3 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_4 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_5 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_6 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_7 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_8 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_9 )) { ClosePosFirstProfit(NULL, OP_BUY, -1);} if ( isCloseLastPosByTake(NULL, OP_BUY, Magic_10)) { ClosePosFirstProfit(NULL, OP_BUY, -1);} } 事实证明,函数标志 isCloseLastPosByTake( )//если поза закрылась по тейку - возвращает единицу 在其执行后等于1,但在所有其他位置被关闭后,它仍然等于1!当然,当下一个具有神奇数字=神奇数字的第一个位置被打开--它被立即关闭!只是不清楚为什么这个错误两天都没有出现? //-------------------------------------------------------------- 还有。你能告诉我,我怎样才能使这个模块正常工作? 换句话说,如何在关闭所有头寸后重置函数isCloseLastPosByTake()? TheXpert 2009.08.14 07:32 #120 rid >> : 换句话说,我如何在所有头寸都被平仓后重置isCloseLastPosByTake()函数? 据我所知,获利平仓的开仓时间应该比其余小订单的开仓时间长,加上这个条件,一切都会变得很酷。 1...5678910111213141516171819...21 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我并不是这方面的专家。
但假设是,如果在第一个信号之后,你'挂'了旗子,那就让它挂着。
即使第1个信号已经用完了!
然后第2个信号会发出信号,顺利打开。
如果我对这个问题的理解是正确的...
但是,按照我的理解,旗子是一个变量,随着一个新的刻度,程序将看到初始或新计算的旗子值。也许我误解了什么是旗帜?
但是,按照我的理解,旗帜是一个变量,随着一个新的刻度,程序将看到旗帜的初始值或从新数据中计算出来的值。也许我误解了什么是旗帜?
标志是一个布尔常数,其值为真或假,数字表示分别为1或0。
如果条件1发出信号(如跨越2个轮子),则标志被设置为真,如果跨越尚未发生,标志将保持为假对于你的任务...它将看起来像这样。
bool signal1=true。
int start()
如果(signal1==false){return();}。
signal1 ......... tra la get signal
如果(signal1 ==true)//出现第一个信号
{
signal2 .............. tra la接收信号
signal1=false。}
这样的事情应该发生)))
哦,我在写的时候,已经在下面定义了)但是,按照我的理解,旗帜是一个变量,随着一个新的刻度,程序将看到旗帜的初始值或从新数据中计算出来的值。也许我误解了什么是旗帜?
我可以补充一点,全局声明的变量 会保存它们的值。
>>直到它们被强行改变或程序被关闭。
对国旗的保护是按以下方式进行的。
顺便说一下// функция принятия решения и установки флага
可以在任何地方,根据作者的想法,用不同的行动顺序。
对国旗的保护是按以下方式进行的。
顺便说一句可以在任何地方,取决于作者的想法,而且它改变了行动的顺序。
>>谢谢大家,似乎已经想通了))。
晚上好。麻烦从某个地方下来了。
一个带马丁格尔的顾问。
10个步骤。每一步的位置都有一个不同的魔术师。
开始时,一切工作都很正常。几天来。
然而,突然间,它完全不工作了!
第一个仓位打开后,立即在下一个柱状体上关闭!这就是所谓的 "平仓"。
目前还不清楚原因。
而且,它还在继续。打开和关闭。
今天刚刚开始。突然间 !
这里是结尾 部分。
也许有人会看到不准确或错误的地方?(按持仓价格计算)
rid писал(а) >>
目前还不清楚原因。
会不会有人突然看到任何不准确或错误的地方?
问题可能不在这段代码,而是在开仓或计算 TakeProfit_Buy。更有可能的是,它是后者。
如果它在测试器中播放,打印应该有帮助。
我没有计算TakeProfit_Buy - 我只是在外部参数中设置它。
在测试器中--同样的废话。但在一些地方。 起初,一切都很正常。
然后就出现了这个狗屎。而且并不总是如此。
我必须插入一个评论或打印...
此外。在我还是个菜鸟的时候,我从未尝试过使用这种魔法,但我从未忘记。
我想我弄错了。当然,也完全不是我原来要找的地方。
除了上述封闭,我还有这个。
事实证明,函数标志 在其执行后等于1,但在所有其他位置被关闭后,它仍然等于1!当然,当下一个具有神奇数字=神奇数字的第一个位置被打开--它被立即关闭!
只是不清楚为什么这个错误两天都没有出现?
//--------------------------------------------------------------
还有。你能告诉我,我怎样才能使这个模块正常工作?
换句话说,如何在关闭所有头寸后重置函数isCloseLastPosByTake()?
换句话说,我如何在所有头寸都被平仓后重置isCloseLastPosByTake()函数?
据我所知,获利平仓的开仓时间应该比其余小订单的开仓时间长,加上这个条件,一切都会变得很酷。