Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 838

 
VOLDEMAR:

Не могу собрать конструкцию

Постоянно ругается на

В day я должен получить индефикатор


ENUM_DAY_OF_WEEK типа int же.
 
evillive:
ENUM_DAY_OF_WEEK типа int же.
Я пробовал и инт и стринг и дабл
 
evillive:
Вручную никак, терминал рисует эти значки только если торговать с помощью программы. Как вариант, можно потом историю ручной торговли на график скинуть, все сделки будут обозначены.

А если модифицировать цвет каждого открытого ордера таким образом, сделка будет отражаться на графике?

int i2;  

    for (i2=OrdersTotal()-1; i2>=0; i--){

    if (OrderSelect(i2, SELECT_BY_POS, MODE_TRADES)){

      if (OrderSymbol()==Symbol()){  

       if (OrderType()==OP_SELL){

        c=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),0,Red);

       }

       if (OrderType()==OP_BUY){   

        c=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),0,Green);

       }

      }

     }

    }

   }

 

Решил вывести баланс в виде индикатора при запуске визуализации

Balance=AccountBalance();
double price=iCustom(NULL,0,"AccountBalance",Balance,0,1);

 из индикатора:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  Blue       
//--- input parameters
//--- buffers
extern double       Balance=3;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(1);
   SetIndexBuffer(0,ExtMapBuffer1);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1;
   limit1=Bars-counted_bars-1;

   for(i=limit1;i>=0;i--)ExtMapBuffer1[i]=Balance;
   
   return(0);
  }
//+------------------------------------------------------------------+

 И что-то он слишком часто вызывается) Аж экран белым становится. Вопрос собственно риторический, что не в порядке?

 
Forexman77:

Решил вывести баланс в виде индикатора при запуске визуализации

 из индикатора:

 И что-то он слишком часто вызывается) Аж экран белым становится. Вопрос собственно риторический, что не в порядке?

bool balans;

string balans_S;

 

///////////////////////////////////////////////////////////////////////////////////////////////////
   balans_S=DoubleToStr(AccountBalance(),2)+" "+AccountCurrency();
   balans=ObjectCreate("Баланс", OBJ_LABEL, 0, 0, 0);
   balans=ObjectSetText("Баланс",balans_S, 14, "Arial", Orange);
   balans=ObjectSet("Баланс", OBJPROP_CORNER, 1);
   balans=ObjectSet("Баланс", OBJPROP_XDISTANCE, 20);
   balans=ObjectSet("Баланс", OBJPROP_YDISTANCE, 20);

   ///////////////////////////////////////////////////////////////////////////////////////////////////

Вставь этот код в советник и да прибудет с тобой счастье 

 
woin2110:

bool balans;

string balans_S;

 

///////////////////////////////////////////////////////////////////////////////////////////////////
   balans_S=DoubleToStr(AccountBalance(),2)+" "+AccountCurrency();
   balans=ObjectCreate("Баланс", OBJ_LABEL, 0, 0, 0);
   balans=ObjectSetText("Баланс",balans_S, 14, "Arial", Orange);
   balans=ObjectSet("Баланс", OBJPROP_CORNER, 1);
   balans=ObjectSet("Баланс", OBJPROP_XDISTANCE, 20);
   balans=ObjectSet("Баланс", OBJPROP_YDISTANCE, 20);

   ///////////////////////////////////////////////////////////////////////////////////////////////////

Вставь этот код в советник и да прибудет с тобой счастье 

Спасибо. Но, мне нужно отображение баланса в виде линии, на всем отрезке графика.
 
evillive:
Странно, у меня работает. Может ошибки какие в журнале?

Разобрался, ошибочно сохранял шаблон с именем Debug.tpl при подключенном эксперте, поэтому в конце файла шаблона была лишняя инструкция:

<expert>
name=ProbaExpert
flags=275
window_num=0
<inputs>
StrPeriod_Direct=
Pips=50
</inputs>
</expert>

 Сохранил шаблон без эксперта, все заработало, спасибо.

 
for(int i=0;i<OrdersHistoryTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {  
         if(OrderType()==OP_SELL)
          {  
           if(OrderStopLoss()>OrderOpenPrice())
            {                     
              if(OrdersTotal() == 0)
              {              
               double SELLprice=Bid;  
               int ticket =OrderSend(Symbol(), OP_SELL,Lot*=2,SELLprice, 3,SELLprice+StopLoss* Point, 0, "", MagicNumber,0, clrNONE);
                 
              }
            }            
          }              
        }
     }     

подскажите пожалуйста,я хочу сделать чтоб мой код увеличивал LOT в двое при убыточной сделки,а при прибыльной LOT возвращался в первоначальный объём !  

 

Для отображения баланса в виде линии при визуализации, взял код из статьи.

В советнике:

// сохранение последнего значения баланса в гл. переменную
   GlobalVariableSet( "vGrafBalance", AccountBalance() );

 в индикаторе:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
 
double balance[];
 
int init()
{
    IndicatorShortName( "vGrafBalance" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, balance );
    SetIndexLabel( 0, "Balance" );
}
int start()
{
    balance[0] = GlobalVariableGet( "vGrafBalance" );
    return(0);
}

 Линия не появляется. В конце в буфере есть только значение на последнем, нулевом баре.

 
Forexman77:

Для отображения баланса в виде линии при визуализации, взял код из статьи.

В советнике:

 в индикаторе:

 Линия не появляется. В конце в буфере есть только значение на последнем, нулевом баре.

Чтобы отображалось на всех барах, надо считать все бары, как обычно в индикаторах и делается.
Причина обращения: