[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 43 1...363738394041424344454647484950...432 新评论 TarasBY 2012.12.26 18:57 #421 r772ra: 或者,你可以在信号到达后设置任何时间 我的变体意味着执行一些行动(在这种情况下是开立订单)的时限为1分钟(信号到达后)。然后:如果你迟到了,你就是迟到了。假设与服务器的连接在收到信号后立即中断,并在一个小时后恢复。为什么你会在一小时后开单?;) andrey47902 2012.12.26 19:16 #422 TarasBY:在一个全局变量中,写入信号发生时的时间值。然后倒数你的一分钟(你可以这样做)。这是事件发生后跟踪时间的解决方案之一。 不幸的是,这并不奏效,一分钟后,支撑线和阻力线应该被画成一个动作,但由于某些原因,它们没有出现在图表上。请看一下代码,错误在哪里?bool Fact_1 = false; // Глобальная перемен для бай. bool Fact_2 = false; // Глобальная перемен для бай bool Fact_3 = false; // Глобальная перемен для бай double support; double resist; int timeFrame = 5; int numBars = 15; datetime gdt_TimeSignal;//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+ int init() {//----//---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+ int deinit() {//---- ObjectsDeleteAll(); //---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+ int start() {//---- //--------------------------------------------------------------------------- if (Fact_3==true) //Если событие уже.. //..было, то выходим return(0); //---- //---- БЛОК ОТКРЫТИЯ BUY-------------------------------------------------------------- if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&& iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5 Fact_1 = true; // Произошло событие 1 //- if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50 Fact_2 = true; // Произошло событие 2 //if (Signal) gdt_TimeSignal = TimeCurrent(); if (Fact_2) gdt_TimeSignal = TimeCurrent(); if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1) { //---- Открываете ордер // OrderSend (); //--------------------------------------------------------------------------------- {// Определяем линии поддержки\сопротивления support = 10000; resist = 0; for(int u = 1;u<=numBars;u++) { if(support>iLow(Symbol(),timeFrame,u)) support = iLow(Symbol(),timeFrame,u); if(resist<iHigh(Symbol(),timeFrame,u)) resist = iHigh(Symbol(),timeFrame,u); } ObjectSet("lineSupport",OBJPROP_PRICE1,support); ObjectSet("lineResist",OBJPROP_PRICE1,resist); } //---- { ObjectCreate("lineSupport",OBJ_HLINE,0,0,0); ObjectSet("lineSupport",OBJPROP_COLOR,Blue); ObjectCreate("lineResist",OBJ_HLINE,0,0,0); ObjectSet("lineResist",OBJPROP_COLOR,Red); }//------------------------------------------------------------- gdt_TimeSignal = 0; }//что сюда добавить что бы линии появившись, оставались на месте?//---- return(0); } [ARCHIVE]Any rookie question, so 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 编码帮助 odiseiff 2012.12.26 19:24 #423 TarasBY:这里写的是胡说八道。阅读关于iCustom()。 谢谢你,我读过了,也许我应该找一个例子,我什么都不懂。 andrey47902 2012.12.26 19:37 #424 Andrey-F:请帮助我,告诉我如何在两到三行内实现EA代码。当有信号出现时(例如,两个MAs的交叉点)1.专家顾问确定信号的时间(以小时、分钟为单位),存储它。2.倒数一分钟。 然后,专家顾问准备执行一个行动(如开立一个订单)。 谢谢你们,一切都在正常工作,我只是没有以正确的方式插入信号。 Alexey Oreshkin 2012.12.26 19:50 #425 我无法理解Codabase中指标的发布。像一个状态是可以公布的,即逻辑上要等到版主将这个火鸡放在一般的访问中,但已经几天了,没有结果。有什么问题吗?ps.这是我第一次在这里公布代码。 Kobalerro 2012.12.27 03:07 #426 madzx:是的,我想是的 !我已经真正掌握了它的窍门,我可以很容易地做到不写到磁盘上 ! 我只是把一个标准终端的缰绳系在另一个终端上而已 我只是把一个标准终端的缰绳绑在了另一个终端上)。请原谅我,但我们还是要这样做。 因为正如Freddie Mercury先生所说。 表演必须继续下去!因此,让我们把规格搞清楚。 按照我的理解。 1.在一个账户中,我打开了大量的窗口(10个),有任何一组货币对的图表。2.每个图表上都有一个工作马--专家顾问,它做一些事情。 3.该账户必须满足以下条件。 3.1 账户中公开市场订单的总数不得超过5个。 马匹类型的订单(待定)不应该被计算在内(我认为是这样,但你没有具体说明。) 3.2 根据账户上的一组图表,形成一定的符号列表。交易的金融工具的类型,每个工具在任何时候都不能有超过一个订单开放。在任何时候,都不得有超过一个未结订单。---------------------------------------------------------像这样的东西!看看一切是否正确! 那么请告诉我们应该用什么语言来完成(如mq4或mq5)。 和你交易的实例列表 - 是固定的还是每次都不同 我认为它应该是每个EA文本中的一个简短粘贴 (如果你愿意,你可以把它作为一个程序提交)将允许它决定当前任何行动的现有权限 ...我现在想告辞了,因为现在是凌晨5点 :))疯疯癫癫 谢谢你的参与。但我不认为有任何必要。 按照r772ra 的建议,问题得到了如下解决。或者也许像这样:if(NumberOfPositions("EURUSD")==0 && NumberOfPositions()<5) 而这里有一个函数 Kobalerro 2012.12.27 03:11 #427 Roman.: 不要徘徊在茫茫人海中。你可以为独特的魔法符号进行奖金交易(将你的魔法指令分配给所选符号上的奖金)。然后,使用条件性的if - else操作符,你通过符号和魔法符号连接过滤器,使用这个函数 从Kim I.V.有不同的输入值。 NumberOfOrders()函数。.就这样了。 谢谢,找到了一个更简单的解决方案。 Роман 2012.12.27 03:33 #428 Kobalerro: 谢谢你,已经找到了一个更简单的解决方案。 好的!谢谢你发布的解决方案。 削除済み 2012.12.27 05:03 #429 Kobalerro:谢谢你的参与。但我不认为有什么更多的东西。 按照r772ra 的建议,问题得到了如下解决。或者也许像这样: 而这里的功能 是 好的!顺应潮流,好好打猎!!。 疯疯癫癫 TarasBY 2012.12.27 06:29 #430 Kobalerro:谢谢你的参与。但我不认为有什么更多的东西。 按照r772ra 的建议,问题得到了如下解决。或者也许像这样: 而这里的函数 如果你喜欢这个方案,你可以进一步简化代码。if(NumberOfPositions("EURUSD")==0 && OrdersTotal()<5)但这样写可能更正确。if(NumberOfPositions(Symbol())==0 && OrdersTotal()<5)如果它不 "幼稚",那么就应该使用Magik(迟早你也会想开一个手动订单或在它附近放一个EA)。if(NumberOfPositions(Symbol(), Magic)==0 && NumberOfPositions("", Magic)<5)在这种情况下,所有的EA都应该有相同的Magik,不要忘记在对订单列表的其他操作中使用Magik和图表符号的过滤器。 for (int li_pos = OrderTotal() - 1; li_pos >= 0; li_pos--) { if (!OrderSelect (li_pos, SELECT_BY_POS, MODE_TRADES)) continue; if (OrderMagicNumber() != Magic) continue; if (Symbol() != OrderSymbol()) continue; //---- дальнейшие опреации (модификация, удаление и т.д.) }我希望你已经在外部变量中声明了magik,或者作为一个常量。#define Magic 555 1...363738394041424344454647484950...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
或者,你可以在信号到达后设置任何时间
在一个全局变量中,写入信号发生时的时间值。
然后倒数你的一分钟(你可以这样做)。
这是事件发生后跟踪时间的解决方案之一。
不幸的是,这并不奏效,一分钟后,支撑线和阻力线应该被画成一个动作,但由于某些原因,它们没有出现在图表上。请看一下代码,错误在哪里?
bool Fact_2 = false; // Глобальная перемен для бай
bool Fact_3 = false; // Глобальная перемен для бай
double support;
double resist;
int timeFrame = 5;
int numBars = 15;
datetime gdt_TimeSignal;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//---------------------------------------------------------------------------
if (Fact_3==true) //Если событие уже..
//..было, то выходим
return(0);
//----
//---- БЛОК ОТКРЫТИЯ BUY--------------------------------------------------------------
if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true; // Произошло событие 1
//-
if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
Fact_2 = true; // Произошло событие 2
//if (Signal) gdt_TimeSignal = TimeCurrent();
if (Fact_2) gdt_TimeSignal = TimeCurrent();
if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1)
{
//---- Открываете ордер
// OrderSend ();
//---------------------------------------------------------------------------------
{
// Определяем линии поддержки\сопротивления
support = 10000;
resist = 0;
for(int u = 1;u<=numBars;u++)
{
if(support>iLow(Symbol(),timeFrame,u))
support = iLow(Symbol(),timeFrame,u);
if(resist<iHigh(Symbol(),timeFrame,u))
resist = iHigh(Symbol(),timeFrame,u);
}
ObjectSet("lineSupport",OBJPROP_PRICE1,support);
ObjectSet("lineResist",OBJPROP_PRICE1,resist);
}
//----
{
ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
ObjectSet("lineResist",OBJPROP_COLOR,Red);
}
//-------------------------------------------------------------
gdt_TimeSignal = 0;
}
//что сюда добавить что бы линии появившись, оставались на месте?
//----
return(0);
}
这里写的是胡说八道。
阅读关于iCustom()。
谢谢你,我读过了,也许我应该找一个例子,我什么都不懂。
请帮助我,告诉我如何在两到三行内实现EA代码。
当有信号出现时(例如,两个MAs的交叉点)
1.专家顾问确定信号的时间(以小时、分钟为单位),存储它。
2.倒数一分钟。
然后,专家顾问准备执行一个行动(如开立一个订单)。谢谢你们,一切都在正常工作,我只是没有以正确的方式插入信号。
我无法理解Codabase中指标的发布。像一个状态是可以公布的,即逻辑上要等到版主将这个火鸡放在一般的访问中,但已经几天了,没有结果。有什么问题吗?
ps.这是我第一次在这里公布代码。
是的,我想是的 !我已经真正掌握了它的窍门,我可以很容易地做到不写到磁盘上 !
我只是把一个标准终端的缰绳系在另一个终端上而已
我只是把一个标准终端的缰绳绑在了另一个终端上)。
请原谅我,但我们还是要这样做。
因为正如Freddie Mercury先生所说。
表演必须继续下去!
因此,让我们把规格搞清楚。
按照我的理解。
1.在一个账户中,我打开了大量的窗口(10个),有任何一组货币对的图表。
2.每个图表上都有一个工作马--专家顾问,它做一些事情。
3.该账户必须满足以下条件。
3.1 账户中公开市场订单的总数不得超过5个。
马匹类型的订单(待定)不应该被计算在内(我认为是这样,但你没有具体说明。)
3.2 根据账户上的一组图表,形成一定的符号列表。
交易的金融工具的类型,每个工具在任何时候都不能有超过一个订单开放。
在任何时候,都不得有超过一个未结订单。
---------------------------------------------------------
像这样的东西!看看一切是否正确!
那么请告诉我们应该用什么语言来完成(如mq4或mq5)。
和你交易的实例列表 - 是固定的还是每次都不同
我认为它应该是每个EA文本中的一个简短粘贴
(如果你愿意,你可以把它作为一个程序提交)将允许它
决定当前任何行动的现有权限 ...
我现在想告辞了,因为现在是凌晨5点 :))
疯疯癫癫
谢谢你的参与。但我不认为有任何必要。
按照r772ra 的建议,问题得到了如下解决。
或者也许像这样:
而这里有一个函数不要徘徊在茫茫人海中。你可以为独特的魔法符号进行奖金交易(将你的魔法指令分配给所选符号上的奖金)。然后,使用条件性的if - else操作符,你通过符号和魔法符号连接过滤器,使用这个函数 从Kim I.V.有不同的输入值。
NumberOfOrders()函数。
.就这样了。
谢谢,找到了一个更简单的解决方案。
谢谢你,已经找到了一个更简单的解决方案。
好的!谢谢你发布的解决方案。
谢谢你的参与。但我不认为有什么更多的东西。
按照r772ra 的建议,问题得到了如下解决。
或者也许像这样:
而这里的功能 是好的!顺应潮流,好好打猎!!。
疯疯癫癫
谢谢你的参与。但我不认为有什么更多的东西。
按照r772ra 的建议,问题得到了如下解决。
或者也许像这样:
而这里的函数如果你喜欢这个方案,你可以进一步简化代码。
但这样写可能更正确。
如果它不 "幼稚",那么就应该使用Magik(迟早你也会想开一个手动订单或在它附近放一个EA)。
在这种情况下,所有的EA都应该有相同的Magik,不要忘记在对订单列表的其他操作中使用Magik和图表符号的过滤器。
我希望你已经在外部变量中声明了magik,或者作为一个常量。
#define Magic 555