仕事が完了した
実行時間3 日
開発者からのフィードバック
Great customer, nice feedbacks. It is a pleasure to help him.
依頼者からのフィードバック
He is a very kind and genuine person and has completed work on time. Skillful and Trustworthy developer!
指定
PLEASE SEE THE BELOW TABLE AND ADD THESE AS ADDITIONAL FEATURE OF THE EXISTING EA

//+------------------------------------------------------------------+
//| HedgeEA_V1.mq4 |
//| Copyright 2021, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
enum ENUM_OPEN_TYPE {TYPE1, //Type1: Instant Hedging
TYPE2 //Type2: Price Entry
};
enum ENUM_TRADE_DIRECTION {BUY,SELL,BOTH};
//+------------------------------------------------------------------+
//| Trades |
//+------------------------------------------------------------------+
extern string Trades="<<=== TRADES ===>>"; //.
extern int Magic=54126548; //Magic Number
extern string TradeComment="VtranscriptionEA"; //Trade Comment
extern ENUM_TRADE_DIRECTION Direction=BOTH; //Trade Direction
extern ENUM_OPEN_TYPE OpenType=TYPE1; //Trade Open Type
extern double EntryPrice=1.20000; //Enter Price
extern double MaxSpread=3; //Max Spread(Pips)
extern string Vols="<<=== Lot Size ===>>";
extern double FixedLotSize=0.1; //Fixed Lot Size [0:Auto]
extern double LotRisk=1; //Risk % of Equity
extern string Param="<<=== SETTINGS ===>>"; //.
extern double UserSL=20; //Stop Loss(Pips) [0:off]
extern double UserTP=20; //Take Profit(Pips)[0:off]
extern double Distance=10; //Distance(Pips)[0:off]
//+------------------------------------------------------------------+
//| Global Variables |
//+------------------------------------------------------------------+
int Bar=0;
int DBar=0;
string Description;
double Pip=Point()*10;
datetime TimeIndex=0;
//+------------------------------------------------------------------+
//| Structer |
//+------------------------------------------------------------------+
struct OrderStr
{
int Step;
double Lot;
string Start;
double TP_Price;
double SL_Price;
};
//---
OrderStr Buy,Sell,Order;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetTimer(60);
//---
if(OpenType==TYPE1)
Take_Instant_Positions();
if(OpenType==TYPE2)
Place_Initial_Pending();
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
// datetime NY=D'2021.12.15';
//if(TimeCurrent()>=NY )
// {
// Comment("Product Expired,Contact the Author");
// ExpertRemove();
// }
//---
if(Distance==0)
{
if(Is_Hit_SL())
Take_Another_Positions();
//---
if(Is_Hit_TP())
Take_Another_Positions();
}
if(Distance>0)
{
Place_Pending();
}
//---
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
}
//+------------------------------------------------------------------+
//| Taking Positions |
//+------------------------------------------------------------------+
void Take_Instant_Positions()
{
double spread=MarketInfo(_Symbol,MODE_SPREAD);
if(spread<=MaxSpread*10)
if(Direction==BUY || Direction==BOTH)
if(Positions_Buy_Num()==0)
{
Order.Step=1;
//---
Buy.Lot=LotSize();
//---
Buy.Lot=NormalizeLots(Buy.Lot,Symbol());
//---
int BuyTicket=0;
//---
if(CheckMoneyForTrade(_Symbol,Buy.Lot,OP_BUY))
if(CheckVolumeValue(Buy.Lot,Description))
BuyTicket=OrderSend(_Symbol,OP_BUY,Buy.Lot,Ask,10,0,0,TradeComment,Magic,0,clrBlue);
//---
Order.Start="Begin";
//---
if(UserTP>0)
Buy.TP_Price=Ask+UserTP*Pip;
else
Buy.TP_Price=0;
//---
if(UserSL>0)
Buy.SL_Price=Ask-UserSL*Pip;
else
Buy.SL_Price=0;
//---
Order_SLTP_Modification(Buy.SL_Price,Buy.TP_Price,BuyTicket);
//---
TimeIndex=TimeCurrent();
}
//---
if(spread<=MaxSpread*10)
if(Direction==SELL|| Direction==BOTH)
if(Positions_Sell_Num()==0)
{
Order.Step=1;
//---
Sell.Lot=LotSize();
//---
Sell.Lot=NormalizeLots(Sell.Lot,Symbol());
//---
int SellTicket=0;
if(CheckMoneyForTrade(_Symbol,Sell.Lot,OP_SELL))
if(CheckVolumeValue(Sell.Lot,Description))
SellTicket=OrderSend(_Symbol,OP_SELL,Sell.Lot,Bid,10,0,0,TradeComment,Magic,0,clrRed);
//---
Order.Start="Begin";
//---
if(UserTP>0)
Sell.TP_Price=Bid-UserTP*Pip;
else
Sell.TP_Price=0;
//---
if(UserSL>0)
Sell.SL_Price=Bid+UserSL*Pip;
else
Sell.SL_Price=0;
//---
Order_SLTP_Modification(Sell.SL_Price,Sell.TP_Price,SellTicket);
//---
TimeIndex=TimeCurrent();
}
//---
}
//+------------------------------------------------------------------+
//| Taking Positions |
//+------------------------------------------------------------------+
void Take_Another_Positions()
{
double spread=MarketInfo(_Symbol,MODE_SPREAD);
if(spread<=MaxSpread*10)
if(Direction==BUY || Direction==BOTH)
{
Order.Step++;
//---
Buy.Lot=LotSize();
//---
Buy.Lot=NormalizeLots(Buy.Lot,Symbol());
//---
int BuyTicket=0;
//---
if(CheckMoneyForTrade(_Symbol,Buy.Lot,OP_BUY))
if(CheckVolumeValue(Buy.Lot,Description))
BuyTicket=OrderSend(_Symbol,OP_BUY,Buy.Lot,Ask,10,0,0,TradeComment,Magic,0,clrBlue);
//---
Order.Start="Begin";
//---
if(UserTP>0)
Buy.TP_Price=Ask+UserTP*Pip;
else
Buy.TP_Price=0;
//---
if(UserSL>0)
Buy.SL_Price=Ask-UserSL*Pip;
else
Buy.SL_Price=0;
//---
Order_SLTP_Modification(Buy.SL_Price,Buy.TP_Price,BuyTicket);
//---
TimeIndex=TimeCurrent();
}
//---
if(spread<=MaxSpread*10)
if(Direction==SELL|| Direction==BOTH)
{
Order.Step=1;
//---
Sell.Lot=LotSize();
//---
Sell.Lot=NormalizeLots(Sell.Lot,Symbol());
//---
int SellTicket=0;
if(CheckMoneyForTrade(_Symbol,Sell.Lot,OP_SELL))
if(CheckVolumeValue(Sell.Lot,Description))
SellTicket=OrderSend(_Symbol,OP_SELL,Sell.Lot,Bid,10,0,0,TradeComment,Magic,0,clrRed);
//---
Order.Start="Begin";
//---
if(UserTP>0)
Sell.TP_Price=Bid-UserTP*Pip;
else
Sell.TP_Price=0;
//---
if(UserSL>0)
Sell.SL_Price=Bid+UserSL*Pip;
else
Sell.SL_Price=0;
//---
Order_SLTP_Modification(Sell.SL_Price,Sell.TP_Price,SellTicket);
//---
TimeIndex=TimeCurrent();
}
//---
}
//+------------------------------------------------------------------+
//| Place Initial Pending Order |
//+------------------------------------------------------------------+
void Place_Initial_Pending()
{
if(Direction==BUY || Direction==BOTH)
if(Order_Buy_Num()==0)
{
int BuyTicket=0;
if(Ask>EntryPrice)
BuyTicket=OrderSend(_Symbol,OP_BUYLIMIT,LotSize(),EntryPrice,5,0,0,TradeComment,Magic,0,clrBlue);
if(Ask<EntryPrice)
BuyTicket=OrderSend(_Symbol,OP_BUYSTOP,LotSize(),EntryPrice,5,0,0,TradeComment,Magic,0,clrBlue);
//---
if(UserTP>0)
Buy.TP_Price=EntryPrice+UserTP*Pip;
else
Buy.TP_Price=0;
//---
if(UserSL>0)
Buy.SL_Price=EntryPrice-UserSL*Pip;
else
Buy.SL_Price=0;
//---
Order_SLTP_Modification(Buy.SL_Price,Buy.TP_Price,BuyTicket);
}
//---
if(Direction==SELL || Direction==BOTH)
if(Order_Sell_Num()==0)
{
int SellTicket=0;
if(Bid>EntryPrice)
SellTicket=OrderSend(_Symbol,OP_SELLSTOP,LotSize(),EntryPrice,5,0,0,TradeComment,Magic,0,clrRed);
if(Bid<EntryPrice)
SellTicket=OrderSend(_Symbol,OP_SELLLIMIT,LotSize(),EntryPrice,5,0,0,TradeComment,Magic,0,clrRed);
//---
if(UserTP>0)
Sell.TP_Price=EntryPrice-UserTP*Pip;
else
Sell.TP_Price=0;
//---
if(UserSL>0)
Sell.SL_Price=EntryPrice+UserSL*Pip;
else
Sell.SL_Price=0;
//---
Order_SLTP_Modification(Sell.SL_Price,Sell.TP_Price,SellTicket);
}
}
//+------------------------------------------------------------------+
//| Place Pending Order |
//+------------------------------------------------------------------+
void Place_Pending()
{
if(Direction==BUY || Direction==BOTH)
{
if(Order_Num(OP_BUYSTOP)==0)
{
int BuyTicket=0;
//---
double Price=Ask+Distance*Point()*10;
BuyTicket=OrderSend(_Symbol,OP_BUYSTOP,LotSize(),Price,5,0,0,TradeComment,Magic,0,clrBlue);
//---
if(UserTP>0)
Buy.TP_Price=Price+UserTP*Pip;
else
Buy.TP_Price=0;
//---
if(UserSL>0)
Buy.SL_Price=Price-UserSL*Pip;
else
Buy.SL_Price=0;
//---
Order_SLTP_Modification(Buy.SL_Price,Buy.TP_Price,BuyTicket);
}
//---
if(Order_Num(OP_BUYLIMIT)==0)
{
double Price=Ask-Distance*Point()*10;
int BuyTicket=OrderSend(_Symbol,OP_BUYLIMIT,LotSize(),Price,5,0,0,TradeComment,Magic,0,clrBlue);
//---
if(UserTP>0)
Buy.TP_Price=Price+UserTP*Pip;
else
Buy.TP_Price=0;
//---
if(UserSL>0)
Buy.SL_Price=Price-UserSL*Pip;
else
Buy.SL_Price=0;
//---
Order_SLTP_Modification(Buy.SL_Price,Buy.TP_Price,BuyTicket);
}
}
//---
if(Direction==SELL || Direction==BOTH)
{
if(Order_Num(OP_SELLLIMIT)==0)
{
int SellTicket=0;
//---
double Price=Bid+Distance*Point()*10;
SellTicket=OrderSend(_Symbol,OP_SELLLIMIT,LotSize(),Price,5,0,0,TradeComment,Magic,0,clrRed);
//---
if(UserTP>0)
Sell.TP_Price=Price-UserTP*Pip;
else
Sell.TP_Price=0;
//---
if(UserSL>0)
Sell.SL_Price=Price+UserSL*Pip;
else
Sell.SL_Price=0;
//---
Order_SLTP_Modification(Sell.SL_Price,Sell.TP_Price,SellTicket);
}
//---
if(Order_Num(OP_SELLSTOP)==0)
{
double Price=Bid-Distance*Point()*10;
int SellTicket=OrderSend(_Symbol,OP_SELLSTOP,LotSize(),Price,5,0,0,TradeComment,Magic,0,clrRed);
//---
if(UserTP>0)
Sell.TP_Price=Price-UserTP*Pip;
else
Sell.TP_Price=0;
//---
if(UserSL>0)
Sell.SL_Price=Price+UserSL*Pip;
else
Sell.SL_Price=0;
//---
Order_SLTP_Modification(Sell.SL_Price,Sell.TP_Price,SellTicket);
}
}
}
//+------------------------------------------------------------------+
//| Position Number |
//+------------------------------------------------------------------+
int Positions_Num()
{int Num=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
Num++;
}
return(Num);
}
//+------------------------------------------------------------------+
//| Position Number |
//+------------------------------------------------------------------+
int Positions_Sell_Num()
{int Num=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
if(OrderType()==OP_SELL)
Num++;
}
return(Num);
}
//+------------------------------------------------------------------+
//| Position Buy Number |
//+------------------------------------------------------------------+
int Positions_Buy_Num()
{int Num=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
if(OrderType()==OP_BUY)
Num++;
}
return(Num);
}
//+------------------------------------------------------------------+
//| Position Number |
//+------------------------------------------------------------------+
int Order_Sell_Num()
{
int Num=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
if(OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
Num++;
}
return(Num);
}
//+------------------------------------------------------------------+
//| Position Buy Number |
//+------------------------------------------------------------------+
int Order_Buy_Num()
{int Num=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
if(OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP)
Num++;
}
return(Num);
}
//+------------------------------------------------------------------+
//| Order Numbers By Type |
//+------------------------------------------------------------------+
int Order_Num(ENUM_ORDER_TYPE Type)
{int Num=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
if(OrderType()==Type)
Num++;
}
return(Num);
}
//+------------------------------------------------------------------+
//| Normalize |
//+------------------------------------------------------------------+
double NormalizeLots(double lots, string pair="")
{
if (pair == "") pair = Symbol();
double lotStep = MarketInfo(pair, MODE_LOTSTEP),
minLot = MarketInfo(pair, MODE_MINLOT);
lots = MathRound(lots/lotStep) * lotStep;
if (lots < minLot) lots = minLot; // or minLot
return(lots);
}
//+------------------------------------------------------------------+
//| Check if there is enough money |
//+------------------------------------------------------------------+
bool CheckMoneyForTrade(string symb, double lots,int type)
{
double free_margin=AccountFreeMarginCheck(symb,type, lots);
//-- if there is not enough money
if(free_margin<0)
{
string oper=(type==OP_BUY)? "Buy":"Sell";
Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError());
return(false);
}
//--- checking successful
return(true);
}
//+------------------------------------------------------------------+
//| Check the correctness of the order volume |
//+------------------------------------------------------------------+
bool CheckVolumeValue(double volume,string &description)
{
//--- minimal allowed volume for trade operations
double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
{
description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume);
return(false);
}
//--- maximal allowed volume of trade operations
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
{
description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume);
return(false);
}
//--- get minimal step of volume changing
double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f",
volume_step,ratio*volume_step);
return(false);
}
description="Correct volume value";
return(true);
}
//+------------------------------------------------------------------+
//| LotSize Calculator |
//+------------------------------------------------------------------+
double LotSize()
{
if(FixedLotSize>0)
return(FixedLotSize);
//---
if(FixedLotSize==0 && UserSL>0)
{
double Current_PointValue= (MarketInfo(Symbol(),MODE_TICKSIZE)!=0) ? MarketInfo(Symbol(),MODE_TICKVALUE)*MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE)*1 : 0;
double Target_PointValue= (UserSL != 0) ? (AccountEquity()*LotRisk/100)/ (UserSL*10) : 0 ;
double Vol= (Current_PointValue!=0) ? Target_PointValue/Current_PointValue : 0;
// Print("Sym: ",Sym," Vol: ",Vol," Target_PointValue: ",Target_PointValue," Current_PointValue: ",Current_PointValue);
if(MarketInfo(Symbol(),MODE_MINLOT)==0.1)
Vol=NormalizeDouble(Vol,1);
else if(MarketInfo(Symbol(),MODE_MINLOT)==0.01)
Vol=NormalizeDouble(Vol,2);
if(Vol<MarketInfo(Symbol(),MODE_MINLOT)) Vol=MarketInfo(Symbol(),MODE_MINLOT);
if(Vol>MarketInfo(Symbol(),MODE_MAXLOT)) Vol=MarketInfo(Symbol(),MODE_MAXLOT);
return(Vol);
}
return 0;
}
//+------------------------------------------------------------------+
//| Order SL & TP Modification for ECN Accounts |
//+------------------------------------------------------------------+
void Order_SLTP_Modification(double StopLoss,double TakeProfit,int Ticket)
{
if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES))
{
bool Modify_Order=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,TakeProfit,0,clrNONE);
if(!Modify_Order)
Print("Cannot Modify Order. Error: ",GetLastError()," SL: ",StopLoss," TP: ",TakeProfit," Type: ",OrderType());
}
}
//+------------------------------------------------------------------+
//| Check if trade hit TP |
//+------------------------------------------------------------------+
bool Is_Hit_TP()
{
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magic)
if(OrderCloseTime()>TimeIndex)
if(StringSubstr(OrderComment(),StringLen(OrderComment())-4,4)=="[tp]")
{
TimeIndex=TimeCurrent();
return(true);
}
}
return(false);
}
//+------------------------------------------------------------------+
//| Check if trade hit SL |
//+------------------------------------------------------------------+
bool Is_Hit_SL()
{
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magic)
if(OrderCloseTime()>TimeIndex)
if(StringSubstr(OrderComment(),StringLen(OrderComment())-4,4)=="[sl]")
{
TimeIndex=TimeCurrent();
return(true);
}
}
return(false);
}
応答済み
1
評価
プロジェクト
416
30%
仲裁
74
19%
/
72%
期限切れ
52
13%
仕事中
2
評価
プロジェクト
73
47%
仲裁
2
50%
/
50%
期限切れ
2
3%
暇
3
評価
プロジェクト
269
29%
仲裁
1
100%
/
0%
期限切れ
3
1%
仕事中
パブリッシュした人: 2 codes
類似した注文
Modification of Trade_Panel_7 7.05 Objective . I have this utility “Trade_Panel_7 7.05” with which I open and close positions. Please refer to attached “Trade Panel Modification.jpg”. It shows an input parameter “Volume Step”. This parameter has the initial value of 0.02 as shown. This feature needs to be amended. Present Status . Value of lot size is increased by this “Volume Step”. I have built a whole series of
Maximas e Minimas + Super Trend
35+ USD
Indicador Maximas e Minimas + Super Trend O Indicador MAX/MIN é um indicador de análise técnica para o MetaTrader 5 , desenvolvido para ajudar você a identificar regiões importantes de preço e possíveis oportunidades de compra e venda. O que ele faz MAX/MIN: identifica máximas e mínimas relevantes do mercado e mostra os preços no gráfico. HH / HL / LH / LL: ajuda a visualizar a estrutura do mercado, mostrando quando
Hello Traders, Have a trading strategy or idea you want to automate? I specialize exclusively in MQL5 development, helping traders turn their concepts into professional trading solutions. Custom Expert Advisors — automate your strategy and reduce manual execution Custom Indicators — transform your market ideas into powerful trading tools Fix & Debug — identify errors and get your existing code working properly
I DO NOT need any programming or strategy development. I already have a working NinjaTrader 8 automated strategy based on a 3/5 EMA crossover. I need you to run my existing strategy through NinjaTrader Strategy Analyzer/Optimizer, test the existing adjustable parameters, and find robust settings with the best profit factor and lowest reasonable drawdown. I will provide the existing NinjaScript ZIP. I do not want the
I'm looking for an experienced developer to create an automated gold trading bot. The bot should be compatible with MetaTrader 4/5 and TradingView. Key Requirements: - Automated trading bot - Compatible with MetaTrader 4/5 and TradingView - Implement scalping and swing trading strategies Ideal Skills and Experience: - Proficiency in trading algorithms - Experience with gold trading - Familiarity with MetaTrader and
I need a robust optimization of my MT5 EA, mainly for XAUUSD (Gold). Please optimize the existing adjustable parameters such as entry/exit settings, SL/TP, trailing/break-even settings, and any other strategy parameters that are appropriate. I want the optimization focused on stable profitability, low/moderate drawdown, and robustness rather than simply the highest possible profit. Please use out-of-sample testing
NinjaTrader 8 / NinjaScript Phase 1 build: convert an existing Auction Market Theory (AMT) strategy into objective, alert-only decision-support logic. Not a bot, no auto-execution — trades stay manual. Covers NQ/MNQ, ES, CL, MGC using 30-min TPO/Volume Profile context with 5-min confirmation: one 5-min close outside VAH/VAL = acceptance, close back inside = rejection. Dashboard shows bias, auction state, location
Hello, I need a custom NON-REPAINT MT5 indicator that gives sell/buy arrow signals 1–2 candlesticks before a spike on Crash and boom indices respectively occurs. Requirements: Works perfectly on MT5 Shows arrows before the spike (1–2 candles earlier). Non-repaint – once the arrow appears, it must stay. Should be accurate, not quantity — only quality signals. Must work on both demo and live accounts. I want the
Trading view to thinkorswim
30+ USD
Hello, I saw an indicator on TradingView and would like to know if you will be able to convert it for use on Thinkorswim platform? Thanks. if anyone can help me with it kindly do well to bid it urgent thanks looking forward too see you
Simthandile sim new indicator
40 - 300 USD
calcVolume( void ) { //--- MqlRates rates[]; if ( CopyRates ( _Symbol , PERIOD_CURRENT , startTime, endTime, rates) > 0 ) { double rangeHigh = rates[ 0 ].high, rangeLow = rates[ 0 ].low; int count = MathAbs ( iBarShift ( _Symbol , PERIOD_CURRENT , startTime) - iBarShift ( _Symbol , PERIOD_CURRENT , endTime)) + 1 ; //---VERTICAL PRICE RANGE for ( int b = 0
プロジェクト情報
予算
30+ USD