초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1326 1...131913201321132213231324132513261327132813291330133113321333...1503 새 코멘트 SanAlex 2021.07.14 17:03 #13251 Aleksandr Egorov : 각 쌍에 대해 MT5에서 미결 주문에 대한 수수료를 별도로 계산하는 방법은 무엇입니까? 누구든지 해결책이 있습니까 어떤 이유로 원하지 않습니다 - 0이 표시됩니다 //+------------------------------------------------------------------+ //| Commission.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link " https://www.mql5.com " #property version "1.00" #include <Trade\PositionInfo.mqh> CPositionInfo m_position; // : trade position object //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //--- double Commission= 0.00 ; int total= PositionsTotal (); for ( int i=total- 1 ; i>= 0 ; i--) { string position_GetSymbol= PositionGetSymbol (i); // if (position_GetSymbol== Symbol ()) { Commission=Commission+m_position.Commission(); } } string msg= DoubleToString (Commission, 2 ); Print (msg); } //+------------------------------------------------------------------+ transcendreamer 2021.07.14 17:22 #13252 SanAlex : 어떤 이유로 원하지 않습니다 - 0이 표시됩니다 내가 기억하는 한, 이것은 한 번도 작동하지 않았으며 포지션에 대한 커미션을 받을 수 없습니다. 히스토리에서 모든 거래를 살펴보고 선택한 포지션 에 속하는지 확인하고 요약해야 합니다. 꽤 까다롭지만 어딘가에 코드 예제가 있었는데 fxsaber에서 온 것 같습니다. Aleksandr Egorov 2021.07.14 17:26 #13253 transcendreamer : 내가 기억하는 한, 이것은 한 번도 작동하지 않았으며 포지션에 대한 커미션을 받을 수 없습니다. 히스토리에서 모든 거래를 살펴보고 선택한 포지션 에 속하는지 확인하고 요약해야 합니다. 꽤 까다롭지만 어딘가에 코드 예제가 있었는데 fxsaber에서 온 것 같습니다. fxsaber 는 잘 버텼고 모든 열린 쌍에 대한 계산이있었습니다. 토비시 총 수수료 transcendreamer 2021.07.14 17:26 #13254 Aleksandr Egorov : fxsaber 는 잘 버텼고 모든 열린 쌍에 대한 계산이있었습니다. 토비시 총 수수료 정확히는 여기 링크가 있습니다: https://www.mql5.com/en/forum/93879/page5 Трудности перевода :) 2016.09.05www.mql5.com Хочу рассказать, как я перевел свой проект с MQL4 на 5-ку за одну ночь... Aleksandr Egorov 2021.07.14 17:30 #13255 글쎄, 여기에 질문 자체가 있습니다)) 회전율이 아닌 단순한 것을 단순하게 만드는 것이 실제로 불가능하지 않습니까? 커미션 PPC를 계산해야 팽창합니다 transcendreamer 2021.07.14 17:35 #13256 Aleksandr Egorov : 글쎄, 여기에 질문 자체가 있습니다)) 회전율이 아닌 단순한 것을 단순하게 만드는 것이 실제로 불가능하지 않습니까? 팽창하려면 PPC 수수료를 계산해야합니다 글쎄, 네, 왜 개발자들이 기성품 기능을 만들지 않는지 불명확합니다... 언젠가 그들이 그것을 작성할 것입니다... i-function이 없었고 모두가 너무 어리둥절하기 전에 ... 이제 . .. 아마도 우리는 커미션을 기다릴 것입니다 ... Aleksandr Egorov 2021.07.14 17:41 #13257 transcendreamer : 글쎄, 네, 왜 개발자들이 기성품 기능을 만들지 않는지 불명확합니다... 언젠가 그들이 그것을 작성할 것입니다... i-function이 없었고 모두가 너무 어리둥절하기 전에 ... 이제 . .. 아마도 우리는 커미션을 기다릴 것입니다 ... 네, 직접 하는 것이 더 빠를 것입니다. SanAlex 2021.07.14 17:50 #13258 SanAlex : 어떤 이유로 원하지 않습니다 - 0이 표시됩니다 여전히 0이고 커미션을 표시하고 싶지 않습니다. //+------------------------------------------------------------------+ //| Commission.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link " https://www.mql5.com " #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //--- double Commission=:: PositionGetDouble ( POSITION_COMMISSION ); // На случай, если POSITION_COMMISSION не работает if (Commission== 0 ) { const ulong Ticket=GetPositionDealIn(); if (Ticket> 0 ) { const double LotsIn=:: HistoryDealGetDouble (Ticket, DEAL_VOLUME ); if (LotsIn> 0 ) Commission=:: HistoryDealGetDouble (Ticket, DEAL_COMMISSION )*:: PositionGetDouble ( POSITION_VOLUME )/LotsIn; } } //--- string msg_1= DoubleToString (Commission, 2 ); string msg= DoubleToString (GetPositionCommission(), 2 ); Print (msg_1, " " ,msg); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double GetPositionCommission( void ) { double Commission=:: PositionGetDouble ( POSITION_COMMISSION ); // На случай, если POSITION_COMMISSION не работает if (Commission== 0 ) { const ulong Ticket=GetPositionDealIn(); if (Ticket> 0 ) { const double LotsIn=:: HistoryDealGetDouble (Ticket, DEAL_VOLUME ); if (LotsIn> 0 ) Commission=:: HistoryDealGetDouble (Ticket, DEAL_COMMISSION )*:: PositionGetDouble ( POSITION_VOLUME )/LotsIn; } } return (Commission); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ulong GetPositionDealIn( const ulong HistoryTicket= 0 ) { ulong Ticket= 0 ; if ((HistoryTicket== 0 ) ? :: HistorySelectByPosition (:: PositionGetInteger ( POSITION_TICKET )) : :: HistorySelectByPosition (HistoryTicket)) { const int Total=:: HistoryDealsTotal (); for ( int i= 0 ; i<Total; i++) { const ulong TicketDeal=:: HistoryDealGetTicket (i); if (TicketDeal> 0 ) if (( ENUM_DEAL_ENTRY ):: HistoryDealGetInteger (TicketDeal, DEAL_ENTRY )== DEAL_ENTRY_IN ) { Ticket=TicketDeal; break ; } } } return (Ticket); } //+------------------------------------------------------------------+ Eugen8519 2021.07.14 18:32 #13259 바가 EMA 라인 아래 또는 위에서 닫힐 때 포지션을 여는 또 다른 질문이 있습니다. iClose를 삽입했지만 오류가 있습니다. 각 막대 뒤에 새 위치가 열립니다. 나는 이것을 가지고있다 bool Buy_Condition = (close1 > EMA0[ 0 ]); { if (Buy_Condition) //Buy { if (!RefreshRates()) return ; TimeBar=time_0; my_TP = m_symbol.Ask() + ExtTakeProfit* Point (); my_SL = m_symbol.Ask() - ExtStopLoss* Point (); my_lot = Lots; OPENORDER( "Sell" ); } } bool Sell_Condition = (close1 < EMA0[ 0 ]); { if (Sell_Condition ) { if (!RefreshRates()) return ; TimeBar=time_0; my_TP = m_symbol.Bid() - ExtTakeProfit* Point (); my_SL = m_symbol.Bid() + ExtStopLoss* Point (); my_lot= Lots; OPENORDER( "Buy" ); } } } if (colorBuffer[m_bar_current+ 1 ]>colorBuffer[m_bar_current] ) //Buy { if (!RefreshRates()) return ; TimeBar=time_0; CLOSEORDER( "Sell" ); } if (colorBuffer[m_bar_current+ 1 ]<colorBuffer[m_bar_current] ) //Sell { if (!RefreshRates()) return ; TimeBar=time_0; CLOSEORDER( "Buy" ); } return ; } //-------------------------------------------------------------------- void CLOSEORDER( string ord) { for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--) // returns the number of open positions if (m_position.SelectByIndex(i)) if (m_position. Symbol ()== Symbol () && m_position.Magic()==m_magic) { if (m_position.PositionType()== POSITION_TYPE_BUY && ord== "Buy" ) m_trade.PositionClose(m_position.Ticket()); // Close Buy if (m_position.PositionType()== POSITION_TYPE_SELL && ord== "Sell" ) m_trade.PositionClose(m_position.Ticket()); // Close Sell } } //-------------------------------------------------------------------- void OPENORDER( string ord) { if (ord== "Sell" ) if (all_positions== 1 ) for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--) // returns the number of open positions if (m_position.SelectByIndex(i)) if (m_position.PositionType()== POSITION_TYPE_SELL ) //if(m_position.PositionType()==POSITION_TYPE_SELL) return ; // Если buy, то не открываемся if (!m_trade.Sell(my_lot, Symbol (),m_symbol.Bid(),my_SL,my_TP, "" )) Print ( "Buy -> false. Result Retcode: " ,m_trade.ResultRetcode(), ", description of result: " ,m_trade.ResultRetcodeDescription(), ", ticket of deal: " ,m_trade.ResultDeal()); if (ord== "Buy" ) if (all_positions== 1 ) for ( int i= PositionsTotal ()- 1 ;i>= 0 ;i--) // returns the number of open positions if (m_position.SelectByIndex(i)) //if(m_position.PositionType()==POSITION_TYPE_BUY) if (m_position.PositionType()== POSITION_TYPE_BUY ) return ; // Если buy, то не открываемся if (!m_trade.Buy(my_lot, Symbol (),m_symbol.Ask(),my_SL,my_TP, "" )) Print ( "BUY_STOP -> false. Result Retcode: " ,m_trade.ResultRetcode(), ", description of Retcode: " ,m_trade.ResultRetcodeDescription(), ", ticket of order: " ,m_trade.ResultOrder()); return ; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Refreshes the symbol quotes data | //+------------------------------------------------------------------+ bool RefreshRates() { //--- refresh rates if (!m_symbol.RefreshRates()) return ( false ); //--- protection against the return value of "zero" if (m_symbol.Ask()== 0 || m_symbol.Bid()== 0 ) return ( false ); //--- return ( true ); } //+------------------------------------------------------------------+ //| Get Time for specified bar index | //+------------------------------------------------------------------+ datetime iTime ( const int index, string symbol= NULL , ENUM_TIMEFRAMES timeframe= PERIOD_CURRENT ) { if (symbol== NULL ) symbol= Symbol (); if (timeframe== 0 ) timeframe= Period (); datetime Time[]; datetime time= 0 ; ArraySetAsSeries (Time, true ); int copied= CopyTime (symbol,timeframe,index, 1 ,Time); if (copied> 0 ) time=Time[ 0 ]; return (time); } //+------------------------------------------------------------------+ //| Get value of buffers | //+------------------------------------------------------------------+ bool iGetArray( const int handle, const int buffer, const int start_pos, const int count, double &arr_buffer[]) { bool result= true ; if (! ArrayIsDynamic (arr_buffer)) { PrintFormat ( "ERROR! EA: %s, FUNCTION: %s, this a no dynamic array!" , __FILE__ , __FUNCTION__ ); return ( false ); } ArrayFree (arr_buffer); //--- reset error code ResetLastError (); //--- fill a part of the iBands array with values from the indicator buffer int copied= CopyBuffer (handle,buffer,start_pos,count,arr_buffer); if (copied!=count) { //--- if the copying fails, tell the error code PrintFormat ( "ERROR! EA: %s, FUNCTION: %s, amount to copy: %d, copied: %d, error code %d" , __FILE__ , __FUNCTION__ ,count,copied, GetLastError ()); //--- quit with zero result - it means that the indicator is considered as not calculated return ( false ); } return (result); } 미결제 주문이 있는지 확인이 충분하지 않다는 뜻인가요? 파일: Unbenannt5.PNG 28 kb SanAlex 2021.07.14 18:59 #13260 Eugen8519 : 바가 EMA 라인 아래 또는 위에서 닫힐 때 포지션을 여는 또 다른 질문이 있습니다. iClose를 삽입했지만 오류가 있습니다. 각 막대 뒤에 새 위치가 열립니다. 지표에서 신호를 생성한 다음 Expert Advisor에 입력하는 것이 가장 좋습니다. //+------------------------------------------------------------------+ //| Fx10.mq5 | //| Copyright © 2000-2007, palanka | //| http://www.metaquotes.ru | //+------------------------------------------------------------------+ //---- авторство индикатора #property copyright "Copyright © 2000-2007, palanka" //---- ссылка на сайт автора #property link "" //---- номер версии индикатора #property version "1.02" //---- отрисовка индикатора в главном окне #property indicator_chart_window //---- для расчета и отрисовки индикатора использовано два буфера #property indicator_buffers 2 //---- использовано всего два графических построения #property indicator_plots 2 //+----------------------------------------------+ //| Объявление констант | //+----------------------------------------------+ #define RESET 0 // константа для возврата терминалу команды на пересчет индикатора //+----------------------------------------------+ //| Параметры отрисовки медвежьего индикатора | //+----------------------------------------------+ //---- отрисовка индикатора 1 в виде символа #property indicator_type1 DRAW_ARROW //---- в качестве цвета индикатора использован цвет Magenta #property indicator_color1 Magenta //---- толщина линии индикатора 1 равна 4 #property indicator_width1 4 //---- отображение метки индикатора #property indicator_label1 "Fx10 Sell" //+----------------------------------------------+ //| Параметры отрисовки бычьего индикатора | //+----------------------------------------------+ //---- отрисовка индикатора 2 в виде символа #property indicator_type2 DRAW_ARROW //---- в качестве цвета индикатора использован цвет Lime #property indicator_color2 Lime //---- толщина линии индикатора 2 равна 4 #property indicator_width2 4 //---- отображение метки индикатора #property indicator_label2 "Fx10 Buy" //+----------------------------------------------+ //| Входные параметры индикатора | //+----------------------------------------------+ input double ParmMult= 1.0 ; // multiply the standard parameters by this scale factor //+----------------------------------------------+ //---- объявление динамических массивов, которые в дальнейшем //---- будут использованы в качестве индикаторных буферов double SellBuffer[]; double BuyBuffer[]; //---- объявление целочисленных переменных начала отсчета данных int min_rates_total; //---- объявление целочисленных переменных для хендлов индикаторов int MA5_Handle,MA10_Handle,RSI_Handle,STO_Handle,MACD_Handle,ATR_Handle; int OldTrend; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit () { //---- инициализация глобальных переменных min_rates_total= int (ParmMult* 26 + 1 ); //---- получение хендла индикатора MA5 MA5_Handle= iMA ( NULL , 0 , int (ParmMult* 5 ), 0 , MODE_LWMA , PRICE_CLOSE ); if (MA5_Handle== INVALID_HANDLE ) Print ( " Не удалось получить хендл индикатора iMA5" ); //---- получение хендла индикатора MA10 MA10_Handle= iMA ( NULL , 0 , int (ParmMult* 10 ), 0 , MODE_SMA , PRICE_CLOSE ); if (MA10_Handle== INVALID_HANDLE ) Print ( " Не удалось получить хендл индикатора iMA10" ); //---- получение хендла индикатора RSI RSI_Handle= iRSI ( NULL , 0 , int (ParmMult* 14 ), PRICE_CLOSE ); if (RSI_Handle== INVALID_HANDLE ) Print ( " Не удалось получить хендл индикатора iRSI" ); //---- получение хендла индикатора Stochastic STO_Handle= iStochastic ( NULL , 0 , int ( 5 *ParmMult), int ( 3 *ParmMult), int ( 3 *ParmMult), MODE_SMA , STO_LOWHIGH ); if (STO_Handle== INVALID_HANDLE ) Print ( " Не удалось получить хендл индикатора iStochastic" ); //---- получение хендла индикатора MACD MACD_Handle= iMACD ( NULL , 0 , int ( 12 *ParmMult), int ( 26 *ParmMult), int ( 9 *ParmMult), PRICE_CLOSE ); if (MACD_Handle== INVALID_HANDLE ) Print ( " Не удалось получить хендл индикатора iMACD" ); //---- получение хендла индикатора ATR ATR_Handle= iATR ( NULL , 0 , 15 ); if (ATR_Handle== INVALID_HANDLE ) Print ( " Не удалось получить хендл индикатора ATR" ); //---- превращение динамического массива SellBuffer[] в индикаторный буфер SetIndexBuffer ( 0 ,SellBuffer, INDICATOR_DATA ); //---- осуществление сдвига начала отсчета отрисовки индикатора 1 PlotIndexSetInteger ( 0 , PLOT_DRAW_BEGIN ,min_rates_total); //---- символ для индикатора PlotIndexSetInteger ( 0 , PLOT_ARROW , 119 ); //---- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0 ); //---- индексация элементов в буфере, как в таймсерии ArraySetAsSeries (SellBuffer, true ); //---- превращение динамического массива BuyBuffer[] в индикаторный буфер SetIndexBuffer ( 1 ,BuyBuffer, INDICATOR_DATA ); //---- осуществление сдвига начала отсчета отрисовки индикатора 2 PlotIndexSetInteger ( 1 , PLOT_DRAW_BEGIN ,min_rates_total); //---- символ для индикатора PlotIndexSetInteger ( 1 , PLOT_ARROW , 119 ); //---- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , 0 ); //---- индексация элементов в буфере, как в таймсерии ArraySetAsSeries (BuyBuffer, true ); //---- установка формата точности отображения индикатора IndicatorSetInteger ( INDICATOR_DIGITS , _Digits ); //---- имя для окон данных и метка для подокон string short_name= "Fx10" ; IndicatorSetString ( INDICATOR_SHORTNAME ,short_name); //---- } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- проверка количества баров на достаточность для расчета if ( BarsCalculated (MA5_Handle)<rates_total || BarsCalculated (MA10_Handle)<rates_total || BarsCalculated (RSI_Handle)<rates_total || BarsCalculated (STO_Handle)<rates_total || BarsCalculated (MACD_Handle)<rates_total || BarsCalculated (ATR_Handle)<rates_total || rates_total<min_rates_total) return (RESET); //---- объявления локальных переменных int to_copy,limit,bar; double MA5[],MA10[],RSI[],STO[],MACD[],STOS[],MACDS[],ATR[]; bool RsiUp,RsiDn,StochUp,StochDn,MacdUp,MacdDn; //---- расчеты необходимого количества копируемых данных и //---- и стартового номера limit для цикла пересчета баров if (prev_calculated>rates_total || prev_calculated<= 0 ) // проверка на первый старт расчета индикатора limit=rates_total-min_rates_total; // стартовый номер для расчета всех баров else limit=rates_total-prev_calculated; // стартовый номер для расчета новых баров to_copy=limit+ 1 ; //---- копируем вновь появившиеся данные в массивы if ( CopyBuffer (MA5_Handle, 0 , 0 ,to_copy,MA5)<= 0 ) return (RESET); if ( CopyBuffer (MA10_Handle, 0 , 0 ,to_copy,MA10)<= 0 ) return (RESET); if ( CopyBuffer (RSI_Handle, 0 , 0 ,to_copy,RSI)<= 0 ) return (RESET); if ( CopyBuffer (STO_Handle, 0 , 0 ,to_copy,STO)<= 0 ) return (RESET); if ( CopyBuffer (STO_Handle, 1 , 0 ,to_copy,STOS)<= 0 ) return (RESET); if ( CopyBuffer (MACD_Handle, 0 , 0 ,to_copy,MACD)<= 0 ) return (RESET); if ( CopyBuffer (MACD_Handle, 1 , 0 ,to_copy,MACDS)<= 0 ) return (RESET); if ( CopyBuffer (ATR_Handle, 0 , 0 ,to_copy,ATR)<= 0 ) return (RESET); //---- индексация элементов в массивах, как в таймсериях ArraySetAsSeries (MA5, true ); ArraySetAsSeries (MA10, true ); ArraySetAsSeries (RSI, true ); ArraySetAsSeries (STO, true ); ArraySetAsSeries (STOS, true ); ArraySetAsSeries (MACD, true ); ArraySetAsSeries (MACDS, true ); ArraySetAsSeries (ATR, true ); ArraySetAsSeries (high, true ); ArraySetAsSeries (low, true ); //---- основной цикл расчета индикатора for (bar=limit; bar>= 0 && ! IsStopped (); bar--) { BuyBuffer[bar]= 0.0 ; SellBuffer[bar]= 0.0 ; if (MA5[bar]>MA10[bar]) { RsiUp=RSI[bar]>= 55.0 ; StochUp=STO[bar]>STOS[bar]; MacdUp=MACD[bar]>MACDS[bar]; if (StochUp && RsiUp && MacdUp) { if (OldTrend< 0 ) BuyBuffer[bar]=low[bar]-ATR[bar]* 3 / 8 ; if (bar!= 0 ) OldTrend=+ 1 ; } } if (MA5[bar]<MA10[bar]) { RsiDn=RSI[bar]<= 45.0 ; StochDn=STO[bar]<STOS[bar]; MacdDn=MACD[bar]<MACDS[bar]; if (StochDn && RsiDn && MacdDn) { if (OldTrend> 0 ) SellBuffer[bar]=high[bar]+ATR[bar]* 3 / 8 ; if (bar!= 0 ) OldTrend=- 1 ; } } } //---- return (rates_total); } //+------------------------------------------------------------------+ 파일: Exp_Fx10.mq5 16 kb 1...131913201321132213231324132513261327132813291330133113321333...1503 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
각 쌍에 대해 MT5에서 미결 주문에 대한 수수료를 별도로 계산하는 방법은 무엇입니까? 누구든지 해결책이 있습니까
어떤 이유로 원하지 않습니다 - 0이 표시됩니다
어떤 이유로 원하지 않습니다 - 0이 표시됩니다
내가 기억하는 한, 이것은 한 번도 작동하지 않았으며 포지션에 대한 커미션을 받을 수 없습니다. 히스토리에서 모든 거래를 살펴보고 선택한 포지션 에 속하는지 확인하고 요약해야 합니다. 꽤 까다롭지만 어딘가에 코드 예제가 있었는데 fxsaber에서 온 것 같습니다.
내가 기억하는 한, 이것은 한 번도 작동하지 않았으며 포지션에 대한 커미션을 받을 수 없습니다. 히스토리에서 모든 거래를 살펴보고 선택한 포지션 에 속하는지 확인하고 요약해야 합니다. 꽤 까다롭지만 어딘가에 코드 예제가 있었는데 fxsaber에서 온 것 같습니다.
fxsaber 는 잘 버텼고 모든 열린 쌍에 대한 계산이있었습니다. 토비시 총 수수료
fxsaber 는 잘 버텼고 모든 열린 쌍에 대한 계산이있었습니다. 토비시 총 수수료
정확히는 여기 링크가 있습니다: https://www.mql5.com/en/forum/93879/page5
글쎄, 여기에 질문 자체가 있습니다)) 회전율이 아닌 단순한 것을 단순하게 만드는 것이 실제로 불가능하지 않습니까? 팽창하려면 PPC 수수료를 계산해야합니다
글쎄, 네, 왜 개발자들이 기성품 기능을 만들지 않는지 불명확합니다... 언젠가 그들이 그것을 작성할 것입니다... i-function이 없었고 모두가 너무 어리둥절하기 전에 ... 이제 . .. 아마도 우리는 커미션을 기다릴 것입니다 ...
글쎄, 네, 왜 개발자들이 기성품 기능을 만들지 않는지 불명확합니다... 언젠가 그들이 그것을 작성할 것입니다... i-function이 없었고 모두가 너무 어리둥절하기 전에 ... 이제 . .. 아마도 우리는 커미션을 기다릴 것입니다 ...
네, 직접 하는 것이 더 빠를 것입니다.
어떤 이유로 원하지 않습니다 - 0이 표시됩니다
여전히 0이고 커미션을 표시하고 싶지 않습니다.
나는 이것을 가지고있다
미결제 주문이 있는지 확인이 충분하지 않다는 뜻인가요?
지표에서 신호를 생성한 다음 Expert Advisor에 입력하는 것이 가장 좋습니다.