Test_Market_Sell





//+------------------------------------------------------------------+
//|                                             Test_Market_Sell.mq4 |
//|                                         Copyright © 2006, lukas1 |
//|                                         http://www.alpari-idc.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, lukas1."

#property show_inputs
#include <stdlib.mqh>
#include <WinUser32.mqh>
extern int Sell_tprofit     =3;
extern int Sell_stloss      =0;
extern string order_comment= "lukas1";  
bool   UseSound            = True;           // Èñïîëüçîâàòü çâóêîâîé ñèãíàë
string NameFileSound       = "expert.wav";   // Íàèìåíîâàíèå çâóêîâîãî ôàéëà
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  { 
   if (!IsCondition()) return;
   int    ticket;                                         // íîìåð òèêåòà 
   int    digits   =MarketInfo(Symbol(),MODE_DIGITS);     // ñîõðàíèì êîëè÷åñòâî çíàêîâ
   double volume   =MarketInfo(Symbol(),MODE_MINLOT);     // ñîõðàíèì ìèíèìàëüíûé ëîò
   double stoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);  // ñîõðàíèì ìèíèìàëüíûé îòñòóï
   double spred    =MarketInfo(Symbol(),MODE_SPREAD);  
//---- ïîêàæåì íàñòðîéêè
   Print("Ìèíèìàëüíûé ëîò: ",volume," ìèíèìàëüíûé îòñòóï: ",stoplevel);
//---- ðàñ÷èòàåì ñòîïû, ó÷èòûâàÿ ìèíèìàëüíûé îòñòóï îò BID 
   if(Sell_stloss+spred>=stoplevel) int st=stoplevel; else st=Sell_stloss+spred;
//---- ïîïðîáóåì îòêðûòü ïîçèöèþ ïî ðûíêó ñ ìàêñèìàëüíî áëèçêî 
//---- óñòàíîâëåííûìè StopLoss è TakeProfit, ïîêóïàåì ïî áèäó
//---- ïîêàçûâàåì, ÷òî îòêðûâàòüñÿ ìîæíî ñ îòñòóïîì â stoplevel ïóíêòîâ
   ticket=OrderSend(Symbol(),OP_SELL,volume,Bid,2,
                    NormalizeDouble(Ask+st*Point,digits),                                    // SL
                    NormalizeDouble(Ask-stoplevel*Point-spred*Point,digits),order_comment,   // TP
                    0,0,CLR_NONE);
   ShowError();
   if(ticket<1) 
     {
      Print("Oøèáêà ",ErrorDescription(GetLastError())); 
      return(-1); 
     }
   else 
   if (UseSound) PlaySound(NameFileSound);
   Print("Îðäåð SELL óñïåøíî óñòàíîâëåí!");
   return(0);
  }
bool IsCondition()
{
   bool result=true;
   string field="     ";
   string msg;
   string title="Îøèáêà";
   if (AccountNumber()>0) title=AccountNumber()+": "+title;
   if (!IsConnected())
   {
      msg=msg+"Ñâÿçü ñ ñåðâåðîì îòñóòñòâóåò"+field;
      result=false;
   }
   if (!IsTradeAllowed())
   {
      if (!result) msg=msg+"\n";
      msg=msg+"Òîðãîâëÿ çàïðåùåíà"+field;
      result=false;
   }
   double freemargin=AccountFreeMargin();
   if(freemargin<=0)
   {
      if (!result) msg=msg+"\n";
      msg=msg+"Íåò ñâîáîäíûõ ñðåäñòâ"+field;
      result=false;
   }
   if (!result) MessageBox(msg,title,MB_OK|MB_ICONERROR);
   return (result);
   }
void ShowError()
   {
   string description;
   int err=GetLastError();
   switch (err)
   {
      case   0: return;
      case   1: description="Íåò îøèáêè, íî ðåçóëüòàò íåèçâåñòåí"; break;
      case   2: description="Îáùàÿ îøèáêà"; break;
      case   3: description="Íåïðàâèëüíûå ïàðàìåòðû"; break;
      case   4: description="Òîðãîâûé ñåðâåð çàíÿò"; break;
      case   5: description="Ñòàðàÿ âåðñèÿ êëèåíòñêîãî òåðìèíàëà"; break;
      case   6: description="Íåò ñâÿçè ñ òîðãîâûì ñåðâåðîì"; break;
      case   7: description="Íåäîñòàòî÷íî ïðàâ"; break;
      case   8: description="Ñëèøêîì ÷àñòûå çàïðîñû"; break;
      case   9: description="Íåäîïóñòèìàÿ îïåðàöèÿ íàðóøàþùàÿ ôóíêöèîíèðîâàíèå ñåðâåðà"; break;
      case  64: description="Ñ÷åò çàáëîêèðîâàí"; break;
      case  65: description="Íåïðàâèëüíûé íîìåð ñ÷åòà"; break;
      case 128: description="Èñòåê ñðîê îæèäàíèÿ ñîâåðøåíèÿ ñäåëêè"; break;
      case 129: description="Íåïðàâèëüíàÿ öåíà"; break;
      case 130: description="Íåïðàâèëüíûå ñòîïû"; break;
      case 131: description="Íåïðàâèëüíûé îáúåì"; break;
      case 132: description="Ðûíîê çàêðûò"; break;
      case 133: description="Òîðãîâëÿ çàïðåùåíà"; break;
      case 134: description="Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè"; break;
      case 135: description="Öåíà èçìåíèëàñü"; break;
      case 136: description="Íåò öåí"; break;
      case 137: description="Áðîêåð çàíÿò"; break;
      case 138: description="Íîâûå öåíû"; break;
      case 139: description="Îðäåð çàáëîêèðîâàí è óæå îáðàáàòûâàåòñÿ"; break;
      case 140: description="Ðàçðåøåíà òîëüêî ïîêóïêà"; break;
      case 141: description="Ñëèøêîì ìíîãî çàïðîñîâ"; break;
      case 145: description="Ìîäèôèêàöèÿ çàïðåùåíà, òàê êàê îðäåð ñëèøêîì áëèçîê ê ðûíêó"; break;
      case 146: description="Ïîäñèñòåìà òîðãîâëè çàíÿòà"; break;
      case 147: description="Èñïîëüçîâàíèå äàòû èñòå÷åíèÿ îðäåðà çàïðåùåíî áðîêåðîì"; break;
      default : description="Íåèçâåñòíàÿ îøèáêà"; break;
   }
   string field="     ";
   string msg="Îøèáêà #"+err+" "+description+field;
   string title="Îøèáêà";
   if (AccountNumber()>0)title=AccountNumber()+": "+title;
   MessageBox(msg,title,MB_OK|MB_ICONERROR);
}
// End
/*
Ñêðèïò "Îòêðûòü ïîçèöèþ". Ïîñòàðàëèñü èçáåæàòü íåîòêðûòèÿ îðäåðà ïî÷òè âñåìè âîçìîæíûìè ñïîñîáàìè.
 ñëó÷àå îòñóòñòâèÿ ñîåäèíåíèÿ, çàïðåòà òîðãîâëè, îòñóòñòâèÿ ñâîáîäíûõ ñðåäñòâ èëè íåóäà÷è ïðè îòêðûòèè ïîçèöèè 
âûñêàêèâàåò îêîøêî ñ îïèñàíèåì îøèáêè. Ñòîï ëîññ ïî óìîë÷àíèþ âûñòàâëÿåòñÿ ìèíèìàëüíî âîçìîæíûì íà äàííîì
èíñòðóìåíòå. Åãî âåëè÷èíà ñ÷èòàåòñÿ îò Bid, íî ó÷èòûâàåò ñïðýä. Òåéêïðîôèò âñåãäà óñòàíàâëèâàåòñÿ è ìîæåò
ïîëó÷èòü çíà÷åíèå ñ ðûíêà ìåíüøå ÷åì òåêóùèé Ask. Òîðãîâëÿ èäåò ìèíèìàëüíûì ëîòîì.
*/
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

It plays sound alerts

It opens Message Boxes to the user