거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
당사 팬 페이지에 가입하십시오
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
Lesson 9 Buy sell stop Order - MetaTrader 5용 expert
- 조회수:
- 6785
- 평가:
- 게시됨:
- 2024.05.28 21:21
- 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
I. Main function
1. Using condition buy or sell base on price action.
2. Auto caculate lot size
3. Auto trailling stop by ATR.
4. Backtest result
II. Main tick function
//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(OpenBar(Symbol())) { OrderManaging(); // Candle declaration double High[],Low[],open[],close[]; ArraySetAsSeries(High,true);ArraySetAsSeries(Low,true);ArraySetAsSeries(close,true);ArraySetAsSeries(open,true); CopyHigh(Symbol(),timeframe,0,1000,High); CopyLow(Symbol(),timeframe,0,1000,Low); CopyOpen(_Symbol,timeframe,0,100,open); CopyClose(_Symbol,timeframe,0,100,close); // Highest high and lowest low declaration int highest= ArrayMaximum(High,HL_shift,HL_period); int lowest= ArrayMinimum(Low,HL_shift,HL_period); double HH= High[highest]; //Drawline(" Kháng Cự ", clrRed,HH); double LL= Low[lowest]; //Drawline(" hỗ trợ ", clrBlue,LL); // Moving average declaration CopyBuffer(Handle_MA,0,0,100,MA_Filter); ArraySetAsSeries(MA_Filter,true); // Atr declaration ArraySetAsSeries(atr,true); CopyBuffer(hand_atr,0,0,50,atr); // Volume and MA_volume array buffe ArraySetAsSeries(Volume,true); ArraySetAsSeries(MA_volume,true); CopyBuffer(handle_volume,0,0,50,Volume); CopyBuffer(handle_MA_volume,0,0,50,MA_volume); //+------------------------------------------------------------------+ //| Broker parameter | //+------------------------------------------------------------------+ double point = SymbolInfoDouble(_Symbol,SYMBOL_POINT); double ask= SymbolInfoDouble(_Symbol,SYMBOL_ASK); double bid= SymbolInfoDouble(_Symbol,SYMBOL_BID); double spread=ask-bid; double stoplevel= (int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL); int freezerlevel= (int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_FREEZE_LEVEL); // Count bjuy and count sell int count_buy=0; int count_sell=0; count_position(count_buy,count_sell,atr); // Main condition for buy and sell if(count_buy==0 ) { if( High[highest] > MA_Filter[highest] ) { double entryprice= HH; double sl = LL; double tp = entryprice +TP_factor*atr[1]; double lotsize = calculate_lotsize(sl,entryprice); if( entryprice>ask+stoplevel && entryprice-sl>stoplevel && tp-entryprice>stoplevel) { trade.BuyStop(lotsize,entryprice,_Symbol,sl,tp,ORDER_TIME_DAY); } } } if(count_sell==0) { if( Low[lowest] < MA_Filter[lowest]) { double entryprice= LL; double sl = HH; double tp = entryprice -TP_factor*atr[1]; double lotsize = calculate_lotsize(sl,entryprice); if( entryprice<bid-stoplevel && sl-entryprice>stoplevel && entryprice-tp>stoplevel) { trade.SellStop(lotsize,entryprice,_Symbol,sl,tp,ORDER_TIME_DAY); } } } } }
Lesson 7 Price action Ket hop Volume VSA
This is a lesson on trading using price action combined with volume.
Trailing stop tutorial using ATR indicatorTrailing stop tutorial using ATR indicator
Beginner Programming: Moving Average Crossover with and without Martingale functionality
Moving averages are useless. In fact, some argue that the best way to lose money for a beginner are MA-Price crossover strategies. But is it possible to make it work?
MovingAverages.mqh Part IMovingAverages.mqh Part I A multi timeframe version is available with colors for orientation, for developers or profitable traders for free. Offer under conditions. Other multi timeframe indicators are also available.