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

 
first_may:
Добрый день. В MT4 есть индикатор Volumes, он поаказывает объем тиковый или нет?

тиковый
 
CLAIN:

самое интересное, что депозита хватает - у меня там большой запас.
Сразу после открытия позиции выводите ошибку в Print() и смотрите причину.
 

Вопрос.

Написал индикатор. Основные используемые функции Order и Account ВЕЗДЕ е iClose iOpen стоит Symbol(). НО почему-то индикатор работает ТОЛЬКО на EURUSD............ Пробовал другие инструменты виснет((( .

Суть индикатора: выводит на экран информацию по Счету, Свободным средствам, ко-ву лотов для открытия, скока открыто, отношение Прибыль\Риск в деньгах, настроен ТОЛЬКО на if (OrderSymbol()!=Symbol()) continue;

Пересмотрел причину в 10-20 раз. Непонимаю...((((

Заранее спасибо

 
sergeev:

тиковый

Получается, что все индикаторы в МТ4 из группы объемы показывают тиковый объем?
 
paladin80:
Сразу после открытия позиции выводите ошибку в Print() и смотрите причину.


самое интересное, что на тестере никаких проблем нет. С 2000 года по сегодняшний день работает без слива.

может, код поможет?

//+------------------------------------------------------------------+ 
//| StMartin.mq4 | 
//| Sergey Kodolov | 
//| 84232676421@mail.ru | 
//+------------------------------------------------------------------+ 
#property copyright "Sergey Kodolov" 
#property link "84232676421@mail.ru" 

    extern int TP = 1000; 
    extern int TS = 1000; 
    extern double lots = 1.0; 

    double volumz; 
    int ticket,total; 
    int slip = 3; 
    int Magic = 7; 

 


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

        ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"First order",Magic,0,Yellow); //открываем первый ордер 
 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

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

OrderOpenFunction(); 
StrahBuy();
StrahSell();

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

void OrderOpenFunction()
{
   OrderSelect(ticket,SELECT_BY_TICKET);
   if(OrderCloseTime()>0)
   {
      
      total = OrdersTotal();
      Comment("OrderCloseTime = ",OrderCloseTime()," ms");
      if(total < 1) 
      { 
         OrderSelect(ticket,SELECT_BY_TICKET); 
         volumz = OrderLots(); 
         Print("Orderlots = ", OrderLots());
         if(OrderType() == OP_BUY)
         {
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               double lot1 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
            }
         }
         if(OrderType() == OP_SELL)
         {
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
            }
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               double lot2 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
         }
      }
   }    
}      
  
void StrahBuy()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_BUY)
      {
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            double lot1 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
         }
      }      
   }
}

void StrahSell()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_SELL)
      {
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
         }
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            double lot2 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
      }
   }   
}

то есть у меня тут одна основная функция, а две другие просто ее дублируют. Сделал для страховки, но все равно перестает работать

 
CLAIN:


самое интересное, что на тестере никаких проблем нет. С 2000 года по сегодняшний день работает без слива.

может, код поможет?

то есть у меня тут одна основная функция, а две другие просто ее дублируют. Сделал для страховки, но все равно перестает работать

Очень странный код. Очень уж смущает меня то, что в инициализации открываете позицию и перебор ордеров без оператора for. Такого ещё не видел. Вставьте всё-таки Print () в ваш код. Поверьте помогает.
 
CLAIN:


самое интересное, что на тестере никаких проблем нет. С 2000 года по сегодняшний день работает без слива.

может, код поможет?

то есть у меня тут одна основная функция, а две другие просто ее дублируют. Сделал для страховки, но все равно перестает работать

Tester: stop loss #68 at 1.2887 (1.2885 / 1.2887)
16:56:31 2010.07.15 15:04 martin EURUSD,M30: Orderlots = 1
16:56:31 2010.07.15 15:04 Tester: not enough money for buy 2.00 EURUSD at 1.2887 sl: 1.1885 tp: 1.2905 [2010.07.15 15:04]
16:56:31 2010.07.15 15:04 Tester: PrevBalance: 1838.36, PrevPL: 0.00, PrevEquity 1838.36, PrevMargin: 0.00, NewMargin: 2577, FreeMargin: -738.84
16:56:31 2010.07.15 15:04 martin EURUSD,M30: OrderSend error 134

я думаю что TP=1000 и SL=1000 это уж очень много при том что lots=1.0 банк нужен бездонный))

попробуйте поставить лот поменьше ну TP соответственно и думаю что будет вам счастье

 

ЛЮДИ!!!!!!!!! Помогите! Прошу повторно!!! ВОПРОС ТОТЖЕ: ПОЧЕМУ индикатор открывается в МТ4 ТОЛЬКО на EURUSD!!!!!!!!!!!!!!! Ребус какой то. В индикаторе нет ограничения на пары везде стоит Symbol(), основные функции по счету Order и Account . Когда удаляю индикатор, на другой паре тоже негрузится, точнее МТ4 виснет совсем до отключения. Индикатор написал сам. Не могу понять такого поведения с другими парами. Поскольку индикатор длинный не выкладываю. НО уверяю в нем нет ничего противоестественно, что бы работать без проблем ТОЛЬКО на евродолларе???????????????????????

ПРОФИ РАЗГАДАЙТЕ РЕБУС)))))))))))))))))))))))))))))))) У меня никак.................

Вот отрывок по используемым функциям

++++++++++++++++++++++++++++++++++++ Пропуск кода

//--- Delet Totals Objects
Del_comment("MN1 Trend");
Del_comment("W1 Trend");
Del_comment("D1 Trend");
Del_comment("H4 Trend");
Del_comment("H1 Trend");
Del_comment("ord .№: ");
Del_comment("ord .№: ");
//---
TRENDS("MN1 Trend",PERIOD_MN1, 1,86, 33, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 42);
TRENDS("W1 Trend", PERIOD_W1, 1,111, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);
TRENDS("D1 Trend", PERIOD_D1, 1,97, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);
TRENDS("H4 Trend", PERIOD_H4, 1,111, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj,12);
TRENDS("H1 Trend", PERIOD_H1, 1,97, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);

str=StringLen(AccountCompany());
if(str<=31) shf=31-str;
else
if(str>=31) shf=0;
Commen("NameCo",AccountCompany(), 1, shf, 40, "Times New Roman", color_Fon,7);
Commen("in", "ABC v2", 1, 36, 51, "Times New Roman", color_Fon,11);
Commen("txt_symb",Symbol(), 1, 3, 64, "Times New Roman", color_Fon,16);

if(OffABC==true)
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);

if(OffABC==false)
{
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
int OneLot= MarketInfo(Symbol(),MODE_MARGINREQUIRED);
int TickValue= MarketInfo(Symbol(),MODE_TICKVALUE);

if(Digits==2) pips=100;
else
if(Digits==3) pips=1000;
else
if(Digits==4) pips=10000;
else
if(Digits==5) pips=100000;

if(!IsConnected())
{
ObjectDelete("in+");
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("noconnect", "No connected", 1, 7, 85, "Times New Roman", color_Loss,14);
}
else
if(IsConnected())
{
ObjectDelete("off+");
ObjectDelete("noconnect");
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
}

if(AccountCurrency()=="RUB")
{
EQ_USD= AccountEquity()/iClose("USDRUB",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUB",PERIOD_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUB",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo");
}
else
if(AccountCurrency()=="RUR")
{
EQ_USD= AccountEquity()/iClose("USDRUR",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUR",PERIOD_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUR",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo");
}
else
if(AccountCurrency()=="EUR")
{
EQ_USD= AccountEquity()*iClose("EURUSD",PERIOD_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())*iClose("EURUSD",PERIOD_M1,0);
PRF_USD= AccountProfit()*iClose("EURUSD",PERIOD_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())*(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())*OneLot;
ObjectDelete("nodepo");
}
else
if(AccountCurrency()=="USD")
{
EQ_USD= AccountEquity();
FreeMargin_USD= AccountFreeMargin()-AccountStopoutLevel();
PRF_USD= AccountProfit();
LOT_01= FreeMargin_USD/(OneLot/10);
LOT_1= FreeMargin_USD/OneLot;
ObjectDelete("nodepo");
}

if(IsConnected() && AccountCurrency()!="RUB" && AccountCurrency()!="RUR" && AccountCurrency()!="EUR" && AccountCurrency()!="USD")
{
ObjectDelete("in+");
ObjectDelete("noconnect");
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("depo_symbl",AccountCurrency(), 1, 112, 85, "Times New Roman", color_Equity_Account,14);
Commen("nodepo"," impracticable", 1, 7, 85, "Times New Roman", color_Free,14);
}
//---

if(Orders_OK==false) order=1;
else order=0;

if(OrdersTotal()>=order)
{
for(int pos=OrdersTotal(); pos>=0; pos--)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
{
SUMM= SUMM+OrderLots();
SWAP=SWAP+OrderSwap();
COMMIS=COMMIS+OrderCommission();
OpenPrice=OpenPrice+OrderOpenPrice();

//--- //BAY ORDERS
if(OrderType()==OP_BUY)
{
baylot= OrderLots();
if(baylot>=1 && baylot<99.0)
{
bSL1= bSL1+(OrderStopLoss());
bTP1= bTP1+(OrderTakeProfit());
bOPN1= bOPN1+OrderOpenPrice();
if(bSL1>0) bsumL1=bsumL1+1;
if(bTP1>0) bsumP1=bsumP1+1;
if(bOPN1>0) bsumO1=bsumO1+1;
}
if(baylot>=0.1 && baylot<0.99)
{
bSL01= bSL01+(OrderStopLoss());
bTP01= bTP01+(OrderTakeProfit());
bOPN01= bOPN01+OrderOpenPrice();
if(bSL01>0) bsumL01=bsumL01+1;
if(bTP01>0) bsumP01=bsumP01+1;
if(bOPN01>0) bsumO01=bsumO01+1;
}
} //OP_BUY

++++++++++++++++++++++++++++++++++++++++++++++++++ Пропуск кода

Функция

void TRENDS(string name, int PER, int n, int X, int Y, color Lab_Trend_Bull, color Lab_Trend_Bear, color Lab_Trend_Doj, int rsm)
{
int A,B,a,b,cod;
double Fup,Fdw;
double OPEN= iOpen(Symbol(),PER,1);
double CLOSE= iClose(Symbol(),PER,1);
double EMA21= iMA(Symbol(),PER,21,0,MODE_EMA,PRICE_CLOSE,1);
double EMA89= iMA(Symbol(),PER,89,0,MODE_EMA,PRICE_CLOSE,1);
string name2;
color color_trend;
bool FLEAT=false;

while(A<1)
{
double FUPPER= iFractals(Symbol(),PER,MODE_UPPER,a);
if(FUPPER>0) { Fup=FUPPER; A++; }
a++;
}
while(B<1)
{
double FLOWER= iFractals(Symbol(),PER,MODE_LOWER,b);
if(FLOWER>0) { Fdw=FLOWER; B++; }
b++;
}
if((CLOSE>=OPEN && CLOSE<Fup) || (CLOSE<=OPEN && CLOSE>Fdw))
FLEAT=true;

if(EMA21>EMA89 && FLEAT==true)
{ cod= 114; color_trend=Lab_Trend_Doj; name2= "EMA21>eme89"; } // bull
else
if(EMA21<EMA89 && ((CLOSE>=OPEN && CLOSE>=Fup) || (CLOSE<=OPEN && CLOSE>=Fup)))
{ cod= 111; color_trend=Lab_Trend_Bull; name2= "Fractal UPPER"; } // bull
else
if(EMA21>EMA89 && ((CLOSE>=OPEN && CLOSE>=Fup) || (CLOSE<=OPEN && CLOSE>=Fup)))
{ cod= 110; color_trend=Lab_Trend_Bull; name2= "EMA21>ema89 + FRACTAL UPPER"; } // bull
else
if(EMA21<EMA89 && FLEAT==true)
{ cod= 113; color_trend=Lab_Trend_Doj; name2= "ema21<EMA89"; } // bear
else
if(EMA21>EMA89 && ((CLOSE<=OPEN && CLOSE<=Fdw) || (CLOSE>=OPEN && CLOSE<=Fdw)))
{ cod= 111; color_trend=Lab_Trend_Bear; name2= "Fractal LOWER"; } // bear
else
if(EMA21<EMA89 && ((CLOSE<=OPEN && CLOSE<=Fdw) || (CLOSE>=OPEN && CLOSE<=Fdw)))
{ cod= 110; color_trend=Lab_Trend_Bear; name2= "ema21<EMA89 + FRACTAL LOWER"; } // bear
else
if(EMA21==EMA89 || FLEAT==true)
{ cod= 110; color_trend=Lab_Trend_Doj; name2= "ema21==ema89 || Fractal"; } // doj

name=name+" "+name2;
if(PER==PERIOD_MN1) cod= 111;
if(cod==110)
{ rsm=rsm+3; X=X-1; Y=Y-3; }

ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet(name, OBJPROP_CORNER, n);
ObjectSet(name, OBJPROP_XDISTANCE,X);
ObjectSet(name, OBJPROP_YDISTANCE,Y);
ObjectSetText(name,CharToStr(cod), rsm,"Wingdings",color_trend);
}
void Commen(string name, string txt, int n, int X, int Y, string shrift, color clr, int rsm)
{
ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet(name, OBJPROP_CORNER, n);
ObjectSet(name, OBJPROP_XDISTANCE,X);
ObjectSet(name, OBJPROP_YDISTANCE,Y);
ObjectSetText(name,txt, rsm,shrift,clr);
}

+++++++++++++++++++++++++++++++++++++++++++ и вывод на экран

 
nlp2311:

...

+++++++++++++++++++++++++++++++++++++++++++ и вывод на экран


"+++++++++++++++++++++++++++++++++++++++++++ и вывод на экран"

И научитесь вставлять код правильно. Ваша простынь никому не интересна...

Читайте здесь всё.

 
Забыл пароль на метатрейдере, как можно создать новый, кому обратиться?
Причина обращения: