Андрей, добрый день. Советник не открывает ордера если есть другие отложенные ордера. Имелось ввиду должен быть один отложенный ордер по цене открытого, а не в принципе один
подробнее на скринах
Андрей, добрый день. Советник не открывает ордера если есть другие отложенные ордера. Имелось ввиду должен быть один отложенный ордер по цене открытого, а не в принципе один
Советник заказывал платно. Довольно сложный алгоритм работы
//+------------------------------------------------------------------+
//| Ship.mq4 |
//| Copyright 2019, AM2 |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict
#property indicator_chart_window
input int points=200;//размер хвоста
input int bars=50;//баров для расчета
input double k=3;//соотношение тела и хвоста
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool Ship(string symb)
{
for(int i=0;i<bars;i++)
{
double op=iOpen(symb,0,i);
double cl=iClose(symb,0,i);
double hi=iHigh(symb,0,i);
double lo=iLow(symb,0,i);
double pp=MarketInfo(symb,MODE_POINT);
if(pp!=0 && (cl-op)!=0 && (op-cl)!=0)
{
//свеча бул. верхний хвост в к раз больше тела и больше поинтс
if((hi-cl)/(cl-op)>k && cl-op>0 && (hi-cl)/pp>=points) return(true);
//свеча бул. нижний хвост в к раз больше тела и больше поинтс
if((op-lo)/(cl-op)>k && cl-op>0 && (op-lo)/pp>=points) return(true);
//свеча миш. нижний хвост в к раз больше тела и больше поинтс
if((cl-lo)/(op-cl)>k && op-cl>0 && (cl-lo)/pp>=points) return(true);
//свеча миш. верхний хвост в к раз больше тела и больше поинтс
if((hi-op)/(op-cl)>k && op-cl>0 && (hi-op)/pp>=points) return(true);
}
}
return(false);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
for(int i=0;i<SymbolsTotal(1);i++)
{
if(Ship(SymbolName(i,1))) Alert(SymbolName(i,1)+" Ship!");
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
AM2