[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 196

 
torah01:

buy


int start()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid-50*Point,Bid+50*Point);

return(0);
}

помогите пожалуйста...

Поменял + на -. И уточни какие тебе стопы и тейки надо, сейчас у тебя стоп =70 + спред, тейк=+30 минус спред
 
TheXpert:
Пожалуйста, не несите ересь в люди. Идите занудствуйте куда-нить в другое место, благо хватает...

Спасибо, я как раз хотел с Вами посоветоваться.
 
NickXXX:

1. Ну здесь double был применен только для сложения минут и часов. чтобы можно было обозначать контрольные точки в виде HH.MM (например 16.23).

2. Посмотрел последние страницы, там конечно есть про datetime, но не совсем то. Там просто делают вывод в формате HH.MM время последнего ордера.



Плохо искали. Стр.190, время поста 18.09.2011 23:03
 
nemo811:

Здравствуйте.

Помогите, пожалуйста, откорректировать код.

Обе приведённые ниже строчки глючат.

Заранее благодарю.

Сама прога:


if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

Логичнее было-бы MODE_HISTORY

 
tara:

< 0.6, или что-нибудь еще в этом роде. Остаток от деления всегда меньше единицы :)

Это почему?) Остаток от деления 12 на 10 = 2.
NickXXX:

А если всё-таки через большое количество переменных наподобие:

Сильно это плохо? или покатит?

И ещё маленький вопрос, если допустим я задам интервал (например 16.00-16.03) для выполнения условия. Как сделать так, чтобы он его выполнял только один раз, несмотря на приход новых тиков???

Покатит. А что бы один раз, введите дополнительную служебную переменную, как-то так:

bool flag=true;

int start()
{
  if (ваше уловие по времени && flag)
  {
    тра-та-та
    flag=false;
  }
}
 
Figar0:

Это почему?) Остаток от деления 12 на 10 = 2.

Покатит. А что бы один раз, введите дополнительную служебную переменную, как-то так:


Да, заглючило малость :)
 
tara:


if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

Логичнее было-бы MODE_HISTORY

Полностью поддерживаю. Ночью соображалка подтормаживает.

Однако и с этой поправкой заметил, что вышеуказый глюк (неразбериха между переменной магик и числом) в скрипте возникает, когда повторно объявляешь переменную int MAGIC; (почему-то блокируется этот самый магик). Убираешь int MAGIC; (остаётся extern int MAGIC = 1;) - всё работает как часы.

Закономерный вопрос - зачем мне это нуна? Убрал int MAGIC; и живи спокойно. НО.

Мне этот код нужно засунуть в библиотеку. А без объявления int MAGIC; - будет ошибка.

Вот и думаю - как быть. Будет ли это всё у меня в советнике работать? И почему на работе скрипта так сказывается эта int MAGIC; ??

Скрипт привожу ниже:

extern int MAGIC = 1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
int OrdTicket=OrdTicket_b();
  Alert (OrdTicket);

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
int OrdTicket_b()
 {
  string SMB=Symbol();
  int OrdTicket;
  int i;
  for(i=0;i<OrdersTotal();i++)
   {
    if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderSymbol()==SMB)
       {
        if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777)
         {
          if(OrderType()==OP_BUY || OrderType()==OP_SELL)
           {
            OrdTicket=OrderTicket();
           }  
         }  
       }          
     }
   }
  return(OrdTicket);
 
В какую папку сохраняются настройки почтового сервера в терминале мт-4?
 

Товарищи, помогите плз... написал простенький код, но при компиляции говорит, что скобки не уравновешены, а я их уже по 300 раз пересчитал - все на месте

Идея проще некуда - если MACD побыл выше(или ниже) 0 не более 7 минут, то позиция открывается

//+------------------------------------------------------------------+
//| MACD ^^^.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern int TP = 100;
extern int TS = 100;
extern double lots = 0.1;
int slip = 3;
int Magic = 1;

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

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

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

int total,ticket; //объявил тотал и тикет
int signal = signal_MACD(); //сигнал МАКД передает значение в сигнал
AnalyzeSignal(signal); //аналайз сигнал анализирует сигнал
int MACD[8] = {0,1,2,3,4,5,6,7}; //создал одномерный массив МАКД
MACD[0] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7);
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);

total = OrdersTotal(); //тотал считает ордера

int signal_MACD() //расписываю сигнал МАКД
{
if(total<1) //если ордеров меньше 1, то рассматриваем условия
{
if(MACD[0]<0)
{
if(MACD[1]>0)
{
if(MACD[2]>0)
{
if(MACD[3]>0)
{
if(MACD[4]>0)
{
if(MACD[5]>0)
{
if(MACD[6]>0)
{
if(MACD[7]<0)
{
return(-100);
}
}
}
}
}
}
}
}
if(MACD[0]>0)
{
if(MACD[1]<0)
{
if(MACD[2]<0)
{
if(MACD[3]<0)
{
if(MACD[4]<0)
{
if(MACD[5]<0)
{
if(MACD[6]<0)
{
if(MACD[7]>0)
{
return(100);
}
}
}
}
}
}
}
}
}
}

void AnalyzeSignal(int signal)
{
if(signal == 100)
{
ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"покупаем",Magic,0,Green);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("открылись на покупку по цене:" OrderOpenPrice());
}
else
{
Print("открыться не удалось по причине:" GetLastError());
return(0);
}
}
if(signal == -100)
{
ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"Продаем",Magic,0,Green);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("открылись на продажу по цене:" OrderOpenPrice());
}
else
{
Print("открыться не удалось по причине:" GetLastError());
return(0);
}
}
}

//----
return(0);
}
//+------------------------------------------------------------------+

 
p.s. как рисовать скрипт так красиво, как у вас?
Причина обращения: