//+------------------------------------------------------------------+ //| Haiken Ashi-2.mq4 | //| Copyright © 2009, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int Okrug = 2; // Округление числа с плавающей запятой до указанной точности extern int ProcentOtSvobDepo = 1; // процент риска от депозита extern double MinLot = 0.10; // минимальный лот для торговли, если расчетный меньше минимального лота (зависит от счета) extern int MagicNumber = 888; // По этому номеру о4рентируется эксперт, // каждый эксперт открывает, модифицирует, удаляет свои ордера со своим MagicNumber extern double Porog = 0.00050; // Порог не ближе которого можно выставить отложенный ордер extern double SL = 0.00050; // StopLoss extern double TP = 0.00100; // TakeProfit extern double P = 0.00020; // Количество пунктов на прорыв //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int ticket; int err; int q=0; double L=iLow(NULL,NULL,1); double H=iHigh(NULL,NULL,1); double C=iClose(NULL,NULL,0); double O=iOpen(NULL,NULL,0); double Spred=MarketInfo(Symbol(),MODE_SPREAD)*Point; double SvobDepo=NormalizeDouble(AccountBalance()-AccountMargin(),Okrug); double Risk=NormalizeDouble((SvobDepo*ProcentOtSvobDepo/100),Okrug); double Lot=NormalizeDouble(Risk/(SL/0.0001)*0.1,Okrug); double Proverka1=H-C; double Proverka2=C-L; //===================== Определения лота и риска =================================== if ( Lot < MinLot ) { Lot=MinLot; } Comment( "\n","Допустимый риск ",ProcentOtSvobDepo, "% = ",Risk," от свободных средств ",SvobDepo," в лотах = ",Lot); //====================== проверяем ордера на открытие for( q=0;q= Porog && Proverka2 >= Porog && O= Porog && Proverka2 >= Porog && O>L) { ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,L-P,0,L-P+SL,L-P-TP,NULL,0,iTime( Symbol(), PERIOD_D1, 0 ) + 86400); if (ticket==-1) { err=GetLastError(); Print("error(",err,")"); } } else { Comment("\n","Не возможно выставить OP_SELLSTOP", "\n","Цена не соответствует условию входа в рынок"); } } //+------------------------------------------------------------------+