新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 742

 
psyman:


非常感谢,明天我将想办法取代iTime和iClose,因为我正坐在XP上。

//+------------------------------------------------------------------+ 
//| Get Time for specified bar index                                 | 
//+------------------------------------------------------------------+ 
datetime iTime(const int index,string symbol=NULL,ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT)
  {
   if(symbol==NULL)
      symbol=m_symbol.Name();
   if(timeframe==0)
      timeframe=Period();
   datetime Time[1];
   datetime time=0;
   int copied=CopyTime(symbol,timeframe,index,1,Time);
   if(copied>0) time=Time[0];
   return(time);
  }
//+------------------------------------------------------------------+
 

我如何编译一个单独的函数,例如拖网,以便它可以被调用--从EA导入

类似于.mqh或dll

 
demonRDV:

大家好!

你能告诉我为什么在EA工作时我不能进入它的属性吗?我以前是这样,但现在我无法打开属性。有一次,重启终端的时候有帮助,但一分钟后问题又出现了。专家顾问是新鲜的,终端也是最近在工作。EA属性的问题是什么?

谢谢你!

最有可能的是,它是在没有检查中断的情况下循环进行的。
你有源代码吗? 这个EA以前有问题吗?

 
Ghabo:

如何编译一个单独的函数,例如拖网,以便它可以被调用--从EA导入

类似于.mqh的调用方式

像这样。

在EA中
#include <trall.mqh>.

并直接在代码中调用函数 trall,例如

int trall_size = 20;
int trall_start = 30;
int trall_step = 5;


trall("",0,-1, trall_size, trall_start, trall_step); // trall("); // 用设定的参数对账户上的所有订单进行追踪。

int magic = 345;
trall(_Symbol,magic, OP_BUY, trall_size, trall_start, trall_step); // trall只在当前符号上购买指定慢速的订单。

附加的文件:
trall.mqh  27 kb
 
Maxim Kuznetsov:

按热键F7 :-)

鼠标在EA图标上并不总是工作 - 图标可能被其他对象重叠,EA加载消息队列和100500其他原因

我知道它是什么。它没有帮助 )
 
Nikolay Khrushchev:

类似这样的事情。

在顾问
#include <trall.mqh>.

我的意思是,拖网文件应该单独编译,扩展名为ex4。

#include <trall.ex4>

#import "trall.ex4"
    ...
    ...
    ...
#import
应该在拖网函数本身 里面插入什么?
 
Ghabo:

我的意思是拖网文件必须被编译。

应该在拖网函数本身 里面插入什么?

为什么需要这种变态的东西?在EA中写函数或像建议的那样用.mqh文件不是更容易吗?

还是有一个专家顾问与拖网,但没有来源?但是,如果函数名称后面没有导出 修饰符,就不可能 其导入另一个EA。

这种库的另一个缺点是,它们必须和EA一起被拖入新的终端。而如果你使用include .mqh文件,那么你可以只复制已编译的EA到另一个终端。

Экспортирование функций - Функции - Основы языка - Справочник MQL4
Экспортирование функций - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Экспортирование функций - Функции - Основы языка - Справочник MQL4
 
Alexey Viktorov:

怎么会有这样的变态行为?

这是一种恋物癖)。

好了,这应该可以了。

#property strict
void trall(string tr_symbol, int tr_magic, int tr_type, double tr_trall_size, double tr_trall_start, double tr_trall_step=1) export {
   if(tr_type>1) return;
   int ti;
   for(ti=OrdersTotal()-1;ti>=0;ti--) if(OrderSelect(ti,SELECT_BY_POS,MODE_TRADES)) {
      if(OrderSymbol()!=tr_symbol && tr_symbol!="") continue;
      if(OrderMagicNumber()!=tr_magic && tr_magic>0) continue;
      if(tr_type>=0 && OrderType()!=tr_type) continue;
      double work_price;
      double work_pp = SymbolInfoDouble(_Symbol,SYMBOL_POINT);
      int    work_dig = SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
      if(tr_trall_size>0) {
         if(OrderType()==0) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if(NormalizeDouble(work_price-(tr_trall_size+tr_trall_step)*work_pp, work_dig)>NormalizeDouble(OrderStopLoss(), work_dig) && 
               NormalizeDouble(work_price-tr_trall_start*work_pp, work_dig)>=NormalizeDouble(OrderOpenPrice(), work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble( work_price-tr_trall_size*work_pp, work_dig),-1,-1);
            }
         if(OrderType()==1) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if((NormalizeDouble(work_price+(tr_trall_size+tr_trall_step)*work_pp,work_dig)<NormalizeDouble(OrderStopLoss(),work_dig) || OrderStopLoss()==0) && 
               NormalizeDouble(work_price+tr_trall_start*work_pp,work_dig)<=NormalizeDouble(OrderOpenPrice(),work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble(work_price+tr_trall_size*work_pp, work_dig),-1,-1);
         }
      }
   }
}

还是我 把它 放在了 错误的地方

 
Ghabo:

这是一种恋物癖)。

好了,这应该可以了。

还是我 把它 放在了 错误的地方

它似乎在错误的地方。你需要弄清楚如何把进口放在引号或角括号里。这取决于该文件在Libraries文件夹中的位置,或与该库的Expert Advisor导入功能 在同一位置。很久以前我做过这个实验,现在不记得了,现在很抱歉,我懒得去找怎么做了。
 
psyman:


非常感谢,明天我会想出一些东西来取代iTime和iClose,因为我正坐在XP上。

这里,纯代码的标签。以任何方式在买入价之后运行,以任何方式在滚动图表时运行,以任何方式在切换图表后运行。它在十字准线后面运行,并记住以这种方式设置的偏移量,之后继续导航到Bid。

PS甚至我最近已经换了HP,因为所有的东西都开始失效了,有些网站需要浏览器更新,而HP上无法更新。

我也厌倦了将内存限制在3.7GB的做法。

xp不支持在所有CPU核心上测试猫头鹰

附加的文件:
原因: