← К каталогу
Исходный код · ID 394

my_first_adviser.mq4

Похожие материалы по тегам

ea robofibo source v.11.2.mq4MetaTrader 4 · 1 общих теговᴇɴᴛʀʏ.txtTradingView · 1 общих теговzonestrategy.mqhMetaTrader 5 · 1 общих теговxauusd_simple_strategy7.mq4MetaTrader 4 · 1 общих теговxauusd_grok_presisi_scalper_v1.4 - anti detach.mq5MetaTrader 5 · 1 общих теговxauusd_gold_perfect.mq4MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Получить полный код

Поиск по коду файла

#include <stderror.mqh>
#include <stdlib.mqh>
#define MAGICMA  20070722

extern int RSI_Per = 16;           //?????? ?????????? ??? RSI
extern int MA_Per = 6;             //?????? ?????????? ??? MA
extern int Bands_Per = 60;         //?????? ?????????? ??? Bollinger Bands
extern int Band_Range = 33;        //????? ???????????????/??????????????? 
extern int SmoothType = 2;         //??? ??????????? 0..3
extern double MaximumRisk =0.777;  //??????? ????? 0..1

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {
   return(0);
  }

int GetErrorDescription()
   {
      int err=GetLastError();
      Print("error(",err,"): ",ErrorDescription(err));
      return(0);
   }

int CalculateCurrentOrders()
  {
   int buys=0,sells=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
   return (buys-sells);
}

double LotsOptimized(double Price)
{
 double LotValue = MarketInfo(Symbol(),MODE_LOTSIZE);   //????????? 1-?? ????
 double FreeMargin = AccountFreeMargin();               //????????? ???????? ?? ?????
 double Leverage = AccountLeverage();                   //?????
 double MinLot = MarketInfo(Symbol(),MODE_MINLOT);      //??????????? ?????? ????
 double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);      //???????????? ?????? ????
 double Res = (FreeMargin*Leverage*MaximumRisk)/(Price*LotValue);
 if (NormalizeDouble(MinLot,1) > NormalizeDouble(Res,1)) Res=0;
 if (NormalizeDouble(MaxLot,1) < NormalizeDouble(Res,1)) Res=MaxLot;
 return (NormalizeDouble(Res,1));
}

double Culculate_SL(int Type, double Price, double Delta)
{
double StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);      //?????????? ?????????? ???????
double Spred = MarketInfo(Symbol(),MODE_SPREAD);             //??????? ????? ????? ??????? ? ???????  
double StopLossMin = Price - Type*(Spred+StopLevel)*Point;   //?????????? ?????????? ????-???? ?? ???? 
double StopLossCur = Price*(1-Type*Delta/2000);
StopLossMin = NormalizeDouble(StopLossMin,Digits);
StopLossCur = NormalizeDouble(StopLossCur,Digits);
if (StopLossMin<StopLossCur && Type==1)
   StopLossCur = StopLossMin;
if (StopLossMin>StopLossCur && Type==-1)
   StopLossCur=StopLossMin;         
return (StopLossCur);
}

void OpenOrders(int Type, double Price, color ArrowColor, double Delta)
{
   if (CalculateCurrentOrders()!=0) return;
   double StopLoss = Culculate_SL(Type,Price,Delta);
   int TypeOrder;
   if (Type==1) TypeOrder = OP_BUY; else TypeOrder = OP_SELL;
   double Lots = LotsOptimized(Price);
   if (Lots>0)
      {
 

Показано первые 50% кода (символов: 4236)

Что вы получите после оплаты

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
424₽