Как нарисовать Фибоначчи от одной точки зигзага до другой - PullRequest
2 голосов
/ 05 февраля 2020

Я сделал советник, который просто отображает линию индикатора ZigZag. Пожалуйста, смотрите код ниже. Я хотел бы добавить откат Фибоначчи (как видно из ссылки на изображение ниже) от нарисованного одного конца к другому зигзагу в противоположном направлении. Как я могу нарисовать эту коррекцию Фибоначчи программно и получить доступ к значениям 100,0, 61,8 и т. Д.?

enter image description here ZigZagWithFibonacci

#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\AccountInfo.mqh>
#include <Trade\OrderInfo.mqh>
#include <Expert\Money\MoneyFixedMargin.mqh>

CPositionInfo  m_position;                   // trade position object
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
CAccountInfo   m_account;                    // account info wrapper
COrderInfo     m_order;                      // pending orders object
CMoneyFixedMargin *m_money;

int            handle_iCustom;               // variable for storing the handle of the iCustom indicator

int OnInit()
  {
//---

//---

   //--- create handle of the indicator iCustom
   handle_iCustom=iCustom(m_symbol.Name(),Period(),"Examples\\ZigZag");
//--- if the handle is not created
   if(handle_iCustom==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
                  m_symbol.Name(),
                  EnumToString(Period()),
                  GetLastError());
      if(m_money!=NULL)
         delete m_money;
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }
//---
   // --- 
   ChartIndicatorAdd ( 0 , 0 , handle_iCustom); 
// --- 


   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+


...