来自一个 "傻瓜 "的问题 - 页 81

 
tol64:

你能告诉我,在哪些情况下,"√"的价值会因当前头寸处于盈利或亏损状态而有所不同?

符号_交易_点值_利润

符号_交易_点值_损失

在论坛上做一个搜索。以前也讨论过类似的问题。
 

需要得到最后一笔交易的结果。我做错了什么?:

   i = HistoryDealsTotal(); 
   
   if (i > 1)  {
   	HistorySelect(0,TimeCurrent());
   	 ticket = HistoryDealGetTicket(i);
   	 profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
   }
 
infera:

需要得到最后一笔交易的结果。我做错了什么?:

我认为它是这样的

   HistorySelect(0,TimeCurrent());

   i = HistoryDealsTotal(); 
   
   if (i > 1)  {
        
        ticket = HistoryDealGetTicket(i-1);
        profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
   }
 
sergey1294:

我认为它是这样的

谢谢你,它正在工作。
 

我正在试验删除不需要的句柄。 在一个简单的例子中,如果没有IndicatorRelease(ma_handle);行,一切都能正常工作,而且速度很快。

但在OHLC模式下,它几乎使系统挂起。

double ma2[];int ma2_handle;double ma[];int ma_handle;

int OnInit()
 {  
  return(0);
 }

void OnTick() 
{ 
    ma_handle  = iMA(_Symbol,_Period,10, 0,MODE_SMA, PRICE_CLOSE);
    ma2_handle = iMA(_Symbol,_Period,100, 0,MODE_SMA, PRICE_CLOSE);
   IndicatorRelease(ma_handle);
   IndicatorRelease(ma2_handle);
}
 
Karlson:

我正在试验删除不必要的句柄。 在一个简单的例子中,没有行 IndicatorRelease(ma_handle);一切工作正常,速度很快。

但在OHLC模式下,它几乎使系统挂起。

在每一个点上创建和删除指标手柄 是错误的。这就像在每个红绿灯前和每个行人过马路前停车和启动你的汽车。
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
 
Rosh:
在每个刻度上创建和删除指标柄 是不对的。这就像在每个红绿灯和每个斑马线前停车和启动你的汽车。

而我想更具体地了解一下手柄的情况。

如果在去初始化(IndicatorRelease)过程中没有删除手柄,而程序同时从图表中删除,那么手柄是否会自动删除?

还有一件事。参考资料说它可以节省内存。有多大?如果我可以给你一些数字,说明指标手柄消耗了多少资源。

 
tol64:

我还想澄清一下手柄的问题。

如果在去初始化过程中没有删除手柄(IndicatorRelease),但程序从图表中被删除,那么手柄是否自动删除?

是的,如果终端运行系统检测到一个没有人认领的废弃手柄,它将被自动删除。我现在不能告诉你这样一个手柄 寿命。
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
tol64:

还有一件事。参考资料说它可以节省内存。有多大?如果你能给出数字,指标手柄消耗了多少资源。

如果从10个图表中要求相同的指标,那么经济性是10倍。如果是这样,请计算计算指标的条数,然后乘以指标缓冲区 的数量,再乘以双倍的大小,如果有的话,别忘了颜色缓冲区的内存。
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Rosh:
在每个tick上创建和删除指标柄 是错误的。这就像在每个红绿灯前和每个斑马线前把你的车关掉和打开。

这是一个模型。 在专家顾问中,该功能在一个新的周线上执行,新的指标被创建,数学也完成了。 然后它必须被清理......所以,当激活IndicatorRelease行时,它几乎冻结......只要删除它,尽管有所有的垃圾,但一切都在运行。

double ma[];int ma_handle;datetime time[],lastbar;

int OnInit()
 {  
  return(0);
 }

void OnTick() 
{  
   if(CopyTime(_Symbol,PERIOD_W1,0,1,time)<=0) {Print("Error: ",GetLastError());return;}
   if (lastbar!=time[0]) {Optim();}
}


int Optim()
{
   ma_handle  = iMA(_Symbol,PERIOD_M15,20, 0,MODE_SMA, PRICE_CLOSE);
 ------------------

 ------------------
   IndicatorRelease(ma_handle);

   return (0);
}