[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 434

 

Помогите )

1.Моментальное определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника) Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача, всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер, система вновь действует с пункта 1 по пункт 2 .

Не поможете новичку в программировании?

Прошу помощи. Как можно это сделать ? Идентификация каждого нового открытого ордера, с последующий задачей на 1-н раз,именно для этого ордера .И так до бесконечности,для каждого вновь открытого ордера.

Спасибо.

Есть набросок, но он не индефицирует ордера .

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{


//----

for (int k=OrdersTotal()-1;k>=0;k--)//Начинаем перебор всех открытых ордеров начиная с конца
{
RefreshRates();//Обновляем котировки, необходимо при модификации или закрытии ордеров
if (OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol())//Выбираем ордер с номером из цикла, и проверяем, совпадает ли символ ордера с текущим
{
int cmd=OrderType();//В переменной cmd будем хранить тип ордера
if(cmd>1)//Нас интересуют только отложенные ордеры
{
//Что-то делаем
}
if (cmd==OP_BUY)//А вдруг на покупку ордер?
{
Alert (GetLastError());
}
if (cmd==OP_SELL)//Или на продажу?
{
Alert (GetLastError());
}
}
}
//----
return(0);
}

 

Привет всем!

скажиет почему данный индикатор не прорисовает сам каждый бар, приходиться переставлять его чтоб увидеть граффик?

//+------------------------------------------------------------------+
//|                                                Ср.отклонение.mq4 |
//|                                                Copyright © 2011. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2011, Dimon"
#property  link      "todem5@gmail.com"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Lime
#property  indicator_level1  100
#property  indicator_style1  1
#property  indicator_level2  20
#property  indicator_style2  1
//#property  indicator_color2  Red
#property  indicator_width1  2
//---- indicator parameters
//---- indicator buffers
extern int period=24;
double     MacdBuffer[];
double     SignalBuffer[];
int tf, k;
string S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   tf=Period();
   S=Symbol();
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   //SetIndexStyle(1,DRAW_LINE);
   
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   //SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Ср.отклонение.: "+period+", в %: ");
   SetIndexLabel(0,"MACD");
   //SetIndexLabel(1,"Signal");
//---- initialization done
      
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   if (!IsOptimization() && !IsTesting() && !IsVisualMode()) {
   k=WindowFind("Ср.отклонение.: "+period+", в %: ");
   ObjectDelete("OrdCr2");
   ObjectCreate("OrdCr2", OBJ_LABEL, k, 0, 0);
   ObjectSet("OrdCr2", OBJPROP_CORNER, 2);
   ObjectSet("OrdCr2", OBJPROP_XDISTANCE, 5);
   ObjectSet("OrdCr2", OBJPROP_YDISTANCE, 22);
   ObjectSet("OrdCr2", OBJPROP_COLOR, Red);
   ObjectSetText("OrdCr2", "Ср.откл.1", 10, "Arial Black", Moccasin);
   }      
   double sum, f;
   int limit;
   int P;
   if (Digits==5) {P=100000;}
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit-period; i++){
      sum=0;
      for (int k=i+1;k<=i+period;k++){
      if (iHigh(Symbol(),tf,k)>iLow(Symbol(),tf,k)) {f=(iHigh(Symbol(),tf,k)-iLow(Symbol(),tf,k));}
      if (iHigh(Symbol(),tf,k)<iLow(Symbol(),tf,k)) {f=(iLow(Symbol(),tf,k)-iHigh(Symbol(),tf,k));}
      sum=sum+(f*P);
      }   
      MacdBuffer[i]=sum/24; 
      }
   
   return(0);
  }
//+------------------------------------------------------------------+
Файлы:
 
Roman.:
Ребята, подскажите, как в Экселе заменить разделение (распознавание прогой) дробной части числа с запятой на точку? Благодарю за помощь.


Панель управление - Языи к региональные стандарты

Меняете стандарт, нпаример, на английский - запятая становится точкой.
Решаете проблемы с переносом данных - затем возвращаете стандарт назад

 
Roman.:
Ребята, подскажите, как в Экселе заменить разделение (распознавание прогой) дробной части числа с запятой на точку? Благодарю за помощь.

второй вариант - изменить разделитель в настройке самого экселя
 
abolk:


Панель управление - Языи к региональные стандарты

Меняете стандарт, нпаример, на английский - запятая становится точкой.
Решаете проблемы с переносом данных - затем возвращаете стандарт назад


Благодарю
 
sergeev:


второй вариант - изменить разделитель в настройке самого экселя

Благодарю... Я уже сделал по совету Президента клуба... :-))) Как менять разделитель в настройках самого эксель - я не нашел.
 
Roman.:

эксель - я не нашел.
версия экселя?
 
sergeev:
версия экселя?


2003г
 
Roman.:

2003г

Сервис-Параметры-Международные
 
sergeev:

Сервис-Параметры-Международные

Ага, все, понял. Благодарю. Поменял и там тоже.
Причина обращения: