Ответить
18.11.2010, 07:52
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035

Умный Вопросы по програмированию

Чтобы не засорять ветку.
18.11.2010, 07:55
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Я новичок в програмировании. Можна сказать даже не новичок, а только начал изучать учебник MQL4.
18.11.2010, 08:01
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035

По умолчанию Функция

Доброе утро. Можете подсказать какой функцией воспользоватся чтобы сделать следуещее. В советнике идёт открытие ордера по индикатору на текущей свече(пусть будет номер=9). Если после открытия ордера он(индикатор) перерисовался(и после закрытия свечи9 не появился), то мне надо чтобы ПОСЛЕ закрытия свечи9 ордер закрылся.
18.11.2010, 15:10
Аватар для SilverUA
SilverUA SilverUA вне форума Новичок форума
Регистрация: 05.10.2010 / Адрес: Киев / Сообщений: 33
Поблагодарили 9 раз(а) / Репутация: 10
  • Отправить сообщение для SilverUA с помощью ICQ
По моему эти стрелочки показывают точки входа на покупку или продажу или же где была покупка или продажа.
19.11.2010, 12:32
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Доброе утро. Можете подсказать какой функцией воспользоватся чтобы сделать следуещее. В советнике идёт открытие ордера по индикатору на текущей свече(пусть будет номер=9). Если после открытия ордера он(индикатор) перерисовался(и после закрытия свечи9 не появился), то мне надо чтобы ПОСЛЕ закрытия свечи9 ордер закрылся.
Уже не надо.

Второй вопрсос. Можно ли сделать так чтобы советник не обращался к индикаторам, а как бы ндикаторы были уже внутри советника? Если да то сложно ли это?
19.11.2010, 13:15
Аватар для Lozzoff
Lozzoff Lozzoff вне форума Местный житель
Регистрация: 20.09.2009 / Адрес: Россия, город Краснодар / Сообщений: 420
Поблагодарили 225 раз(а) / Репутация: 231
Можно, сложно))
19.11.2010, 16:47
Аватар для nikola86
nikola86 nikola86 вне форума Активный участник
Регистрация: 28.09.2009 / Сообщений: 12
Поблагодарили 2 раз(а) / Репутация: 2
Подскажите, пожалуйста что не так в коде функции
смысл: выставляются 2 отложенника с заданным магиком 222222, если сработал один ордер-второй с тем же магиком нужно удалить.
Код:
 void DeleteOrder(){
 int i,j,it, k=OrdersTotal();
 bool fd;
for (i=k-1; i>=0; i--) {
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
  if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
 if (OrderMagicNumber()==222222) {
 for (j=k-1; j>=0; j--) {
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
 if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) {
 if (OrderMagicNumber()==222222) {
 for (it=1; it<=NumberOfTry; it++) {
              if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
 while (!IsTradeAllowed()) Sleep(5000);
              fd=OrderDelete(OrderTicket());
 }
 }
 }
 }
 }
 }
 }
 }
 }
 }
25.12.2010, 07:40
Аватар для vitaleus
vitaleus vitaleus вне форума Интересующийся
Регистрация: 05.03.2010 / Сообщений: 1
Поблагодарили 0 раз(а) / Репутация: 1
Подскажите пожалуйста, где ошибка в коде

//+------------------------------------------------------------------+
//| test.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| _http://www.metaquotes.net MetaTrader 5 Trading Platform / MetaQuotes Software Corp. |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//---- input parameters
extern double TakeProfit=10.0;
extern double StopLoss=20.0;
extern double DecreaseFactor =3;
extern double Lots =0.1;
extern double MovingShift =1;
extern double MaximumRisk =0.02;
extern int MovingPeriod1=11;
extern int MovingPeriod2=21;
double SL,TP;
double ma1,ma2,ma3,ma4;
int res;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

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

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


//| Функция расчета оптимального размера лота |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0; // number of losses orders without a break
//---- select lot size
lot=NormalizeDouble(AccountFreeMargin()*MaximumRis k/1000.0,1);
//---- calculate number of losses orders without a break
if(DecreaseFactor>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==fals e)
{ Print("Error in history!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- return lot size
if(lot<0.1) lot=0.1;
return(lot);

//жжжжжжжжжжжж Функция открытия позиций жжжжжжжжжжжжжжжжжжжжжжжжж жжжж+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
{
double ma1,ma2,ma3,ma4;int res;
//---- get Moving Average

ma1==iMA(NULL,0,MovingPeriod1,MovingShift,MODE_SMA ,PRICE_CLOSE,0);
ma2==iMA(NULL,0,MovingPeriod1,MovingShift,MODE_SMA ,PRICE_CLOSE,1);
ma3==iMA(NULL,0,MovingPeriod2,MovingShift,MODE_SMA ,PRICE_CLOSE,0);
ma4==iMA(NULL,0,MovingPeriod2,MovingShift,MODE_SMA ,PRICE_CLOSE,1);
//---- go trading only for first tiks of new bar
if(Volume[0]>1), return(0);
{
//---- sell conditions
if(ma2>ma3&&ma1==ma3)
{
SL=0;TP=0;
if(StopLoss>0) SL=Bid+Point*StopLoss;
if(TakeProfit>0) TP=Bid-Point*TakeProfit;
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(), Bid,3,SL,TP,"Moving Average",0,0,Red);
if(res<0)
{
Print("Ошибка открытия ордера SELL #",GetLastError());
Sleep(10000); return(0);
}
}
//---- buy conditions
if( ma4<ma1&& ma3==ma1)
{
SL=0;TP=0;
if(StopLoss>0) SL=Ask-Point*StopLoss;
if(TakeProfit>0) TP=Ask+Point*TakeProfit;
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask, 3,SL,TP,"Moving Average",0,0,Blue);
if(res<0)
{
Print("Ошибка открытия ордера BUY #",GetLastError());
Sleep(10000); return(0);
}
}
}
//----
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void start()
{

//(если на графике есть более 100 баров и торговый поток свободен)
if(Bars<100 || IsTradeAllowed()==false) return;
CheckForOpen();

}
25.12.2010, 09:29
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Я так понял что в эту ветку програмисты не заглядывают. Так что можно сюда не писать.
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы Алексей Что обсуждают на других форумах 1 26.11.2011 17:17
Вопросы Алексей Что обсуждают на других форумах 0 25.07.2010 07:40
Вопросы Алексей Что обсуждают на других форумах 0 21.07.2010 17:40
Професиональные услуги по програмированию ! FXgorets Поиск программиста, поиск заказов 0 06.07.2009 16:54


Текущее время: 19:47. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO