[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 298

 
档案中包含两个指标和我正在做的专家顾问(test-cifr),指标本身可以工作,但我不能把它们粘贴到专家顾问中(专家顾问的唯一目的是输出数值),请帮助我理解为什么它们不能,以及如何粘贴它们。
附加的文件:
 
谢谢你,祝你好运artmedia70
 
palomnik:
谢谢你,祝你好运artmedia70
对...健康:它是一种不可再生的资源。谢谢你 :)
 
ed3sss:

你好。

我怎样才能在图表上显示当前工具的铭文 未结订单的利润/损失。

在专家顾问中很难检查是否已经开仓(终端开/关),也很难在关闭终端前捡到最后一手的量。

谢谢你。


你好,没有人知道吗?
 

如果我做了任何过去的交易,那么就使用orderprofit功能,然后总结整个交易的历史

我不知道是否有人对我的问题有任何答案。

 
artmedia70:

该代码有一个缺陷。这里,断章取义


整个问题的关键在于,表达

因此,批价将被四舍五入到小数点后一位。


请继续阅读,它可能会有所帮助。



我当然希望如此。谢谢你。我将通读上述主题以加强这一点。不想留下任何空隙。
 
ed3sss:

你好,请问有谁知道吗?


好吧,根据我的理解,一切都很简单。你所需要的只是基本的知识。

1.你做了一个超额的订单。

2.检查订单是否开放,即订单关闭时间相对于零。

3.如果该订单是开放的,显示其需要的数据,利润,类型等。

 
palomnik:

如果我做了任何过去的交易,那么就使用orderprofit函数,然后把所有的交易历史加起来。

我不知道是否有人对我的问题有答案。

将整个代码复制到你的专家顾问中

像这样

//+------------------------------------------------------------------+
//|                                                        Xrust.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern int    TimeFrame=0;//Если=0, то текуший
extern string FrApNam="Ap";//Имя линии соотв.Фракталу вверх
extern string FrDnNam="Dn";//Имя линии соотв.Фракталу вниз
extern color  ClAp=Blue;//Цвет линии соотв.Фракталу вверх
extern color  ClDn=Red;//Цвет линии соотв.Фракталу вниз
//-----------------------------------------------------------------------------+
double FrApPrise,FrDnPrise;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  if(TimeFrame==0){TimeFrame=Period();}
  IndicatorShortName("Factal_Level_Xrust"+TimeFrame);
  FrApNam=StringConcatenate(FrApNam,TimeFrame);
  FrDnNam=StringConcatenate(FrDnNam,TimeFrame); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  ObjectDelete(FrDnNam);
  ObjectDelete(FrApNam);
  Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   LineAp();
   LineDn();
   
   int diap=MathRound((FrApPrise-FrDnPrise)/Point);
   
   Comment("\n"," LineDn  = ",FrDnPrise,
           "\n", " LineAp  = ",FrApPrise,
           "\n"," diap  = ",diap );

//----
   return(0);
  }
//+------------------------------------------------------------------+
//-----------------------------------------------------------------------------+
// Ищет горизонтальную линию по имени перерисовывает если изменилась цена      |   
//-----------------------------------------------------------------------------+
   void  LineDn(){
   FrDnPrise=0;
   double  FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
   FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
   //Comment(FrPrise);
   if(ObjectFind(FrDnNam)==0){
     if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
   FrDnPrise=FrPrise;  
   ObjectDelete(FrDnNam);
   SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
   WindowRedraw();
   return;} 
//-----------------------------------------------------------------------------+
// Ищет горизонтальную линию по имени перерисовывает если изменилась цена      | 
//-----------------------------------------------------------------------------+
   void  LineAp(){
   FrApPrise=0;
   double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
   FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
   if(ObjectFind(FrApNam)==0){
     if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
   FrApPrise=FrPrise; 
   ObjectDelete(FrApNam); 
   SetHLine(ClAp,FrApNam,FrApPrise,0,1);
   WindowRedraw();
   return;}
//-----------------------------------------------------------------------------+   
//   Киму Респект и уважуха !!!                                                |       
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень.         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy   - наименование инструмента      ("" или NULL - текущий символ)     |
//|    tf   - таймфрейм                     (    0       - текущий ТФ)         |
//|    mode - тип фрактала                  (MODE_LOWER|MODE_UPPER)            |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
  if (sy=="" || sy=="0") sy=Symbol();
  double f=0;
  int    d=MarketInfo(sy, MODE_DIGITS), s;
  if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;

  for (s=2; s<100; s++) {
    f=iFractals(sy, tf, mode, s);
    if (f!=0) return(NormalizeDouble(f, d));
  }
  Print("FindNearFractal(): Фрактал не найден");
  return(0);
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}

或使用函数

int ObjectFind( string name) //Поиск объекта с указанным именем

double ObjectGet( string name, int prop_id) //Функция возвращает значение указанного свойства объекта

来寻找一个物体。没有其他办法。
 
不,它是插入的,但价值完全不在图表上。
 
palomnik:
不,它可以工作,但价值来自于天花板 。


尝试删除EA代码中的指标设置。然后,设置将取自指标中规定的代码。

我也得到了左边的值,我从代码中删除了设置,它是好的。