| / | Articles |
Articles
Trading Systems
Ten "Errors" of a Newcomer in Trading?
To post a new article, please log in or register
|
Ten "Errors" of a Newcomer in Trading? [ ru ]IntroductionA newcomer in trading is told over and over again: "trend is your friend, don't you move against the trend"
or "place your stop orders as short as possible, but allow your profit to grow" (see, for instance,
[1]). There seems not to be any room for doubt of validity of these statements, especially where this validity
is demonstratively proved by many researches (see, for example, [2, pp. 35-40]). Who would mind to place a position
"by trend" and gain profits?! But what if we have made a mistake and it has turned out to be "non-trend"?
Then the initial statements begin to be developed: to reduce risks, it is necessary to utilize hedging since
we can be mistaken in defining the trend or in forecasting random change in prices at a market with great volatility,
etc. It means we should take some measures – a danger foreseen is half avoided – in case prices goes in a
direction we didn't foreseen. Thus, we have to consider price movements to be of random nature. So all attempts
to act "as taught" do not guarantee positive results. Otherwise, why
do those "errors of newcomers in trading" occur? They are newcomers,
so they did not have time to forget the copy-book maxims, which have been presented
as practically the "Ten Commandments". The author by no means wants to upbraid my esteemed colleague Collector. He conscientiously gave in his article [1] a brief description of well-known, recognized by many people and often repeated statements.The ideas are so widely spread because many press towards getting positive results being at the market with only one open position. It means they think it is necessary to close a position before opening a new one. I would compare this to fishing with one single rod - a nice recreational activity for amateurs, but professionals normally use quite different hooks and lines. When the matter concerns a trading system, it is better not to limit the analysis by one single order. The possibility to use a number of orders opened and closed both consecutively and simultaneously according to the situation for positions already opened together with usual alerts should, in the author's opinion, be immediately considered as the basic opportunity to adapt oneself to the price behavior, as the basic "range of discretion" of the trading system developer, not only as an instrument of saving. Ten "Errors" of a Newcomer in Trading?Suppose we are "at minus" with a long position. According to the accepted rules, we should close it as soon as possible – "make your losses smallest". But, I say, we have just decided to buy, it means we were sure that the price would go up – for example, a "checked" oscillator had drawn divergence in the oversold zone. Why now, when the price is lower and the buying is more than preferable, should we exit the market? It is more logical to enter in the same direction in order to reinforce the long position. This, at least, looks more consequent. Now the total positive result will be the total plus on two positions, not one by one. The author sometimes opens the third position in such cases, but a short one. Then the total result depends on three orders. It is control over a finite collection of orders (including rules of opening, closing,
choosing a volume, modifying the StopLoss and TakeProfit levels in time regarding
price changes and other conditions) that, in general, must form the basis of a
trading system. Limitation of the amount of orders by one, two or three is a particular
case for this general approach. Thus, nobody minds following the trend. The matter is: How can we recognize it properly
and on time? We may say that this is "to be or not to be?" of the most
trading systems known. If Bollinger bands are compared at different averaging periods, it is easy to see
that they are broader for longer periods (se Figure below: the smaller period is
70 minutes, the larger one is 370 minutes). Dispersion on a larger period is contributed
by that what is mean value on a smaller period. ![]()
The mean line (moving average) when shifted back by a half of the selected period can be considered the trendline
(a posteriori). Assuming that we know a priori how that next value of the short-period average will change, the
random price changing can be considered to have dispersion as on the smaller time frame, but determined changing
mean value (drift, trend). Looking at the obviously nonstationary process of price changing (short period is
equal to the bar length), everybody 'sees' (just because everybody wants to see!) the sum of the random process
(characterized by dispersion on a short interval, visually within the range – by the difference between high
and low, i.e., by a rather small value) and an unknown, but nonrandom, a predefined process (trend) with a significantly
larger range. This creates the illusion of possibility and the mass wish to guess the trend direction in the
nearest future. We 'see' objects of technical analysis in the price chart on time in the same way as we do see
animals or things looking at clouds. We see only the things we want and ready to see - this is how our perception
works. Statistics knows all. It states that, in average, the probability to gues properly
approaches to 0.5, also for very successful traders. But the latter ones don't
earn their profits due to guessing. they do it due to their experiences, ability
to control an open position, hadging, portfolio, etc., as well as due to their
luck - just read their interviews. Would not it be easier for a beginner to refuse
those attempts and just recognize that the process is fully random and practically
stationary? What will it yield for us? First, it will be clear that any deviation from the average will most probably result
in returning to the initial state and, therefore, one should not be afraid of placing
orders against the trend. There is no need, either, to be afraid of losing with
one open position or to be in a hurry to close it. Second, Forex trading will become a stabilizing factor for the world economy – trading against the trend will
create a negative feedback and considerably reduce the exchange rate fluctuations. By the way, the economy itself
is known to have such a self-regulation – the growing exchange rate will raise the prices of exporting and
stimulate importing which brings the rate to lower values, and so on. Sorry for possible oversimplifying (and
for tautology). There is no need to overestimate the situation and be afraid that the rate will be fixed if everybody
starts trading against the trend - this is a very distant prospect and, which is the most important, there are
other (fundamental) factors that influence prices (this is when the fundamental analysis starts working!). Third, ten "errors" of a newcomer in trading described in [1] turn not to be errors at all, but proper steps. Let us look through them one by one [1].
Explanation of Trading StrategyHowever, it would be reasonable to check the trading strategy based on the proposed approach – "no nightingales live on fairytales!", we are lucky to have all those wonderful tools in MT4. To check it excluding influences of any additional factors (selection of entering time and leaving by alerts), we will not use alerts at all in the Expert Advisor [4] – we will do without "to be or not to be". We will open two opposite orders at the same time to be executed instantly, i.e., we make mistakes #1 and #7.kk=0; tic=-1; if (sob) { if(max_lot_b==0.0)lotsi=0.1;else lotsi=2.0*max_lot_b; while(tic==-1 && kk<3) { tic=OrderSend(Symbol(),OP_BUY,lotsi,Ask,slip,0,Ask+(tp+25)*Point," ",m,0,Yellow); Print("tic_buy=",tic); if (tic==-1) { gle=GetLastError(); kk++; Print("Error #",gle," at buy ",kk); Sleep(6000); RefreshRates(); } } lastt=CurTime(); return; } tic=-1; kk=0; if (sos) { if(max_lot_s==0.0)lotsi=0.1;else lotsi=2.0*max_lot_s; while(tic==-1 && kk<3) { tic=OrderSend(Symbol(),OP_SELL,lotsi,Bid,slip,0,Bid-(tp+25)*Point," ",m,0,Red); Print("tic_sell=",tic); if (tic==-1) { gle=GetLastError(); kk++; Print("Error #",gle," at sell ",kk); Sleep(6000); RefreshRates(); } } lastt=CurTime(); return; }If one of them touches the TakeProfit level, open it again after the profit has been fixed, i.e., we make "mistakes" ## 2, 4 and 8 one by on. sob=(kol_buy()<1 || buy_lev_min-sh*Point>Ask) && AccountFreeMargin()>AccountBalance()*0.5; sos=(kol_sell()<1 || sell_lev_max+sh*Point<Bid) && AccountFreeMargin()>AccountBalance()*0.5;The second, losing order will be strengthened with doubled volume after the price has changed at a certain interval, then - after the same interval - strengthen it again, and so on until it reaches the preset profit level and we close all order in the same direction – make "mistakes" ##3 and 6 in succession. if(M_ob[kb_max][2]>0.0)scb=M_ob[kb_max][7]/(M_ob[kb_max][2]*10)>tp; if(M_os[ks_max][2]>0.0)scs=M_os[ks_max][7]/(M_os[ks_max][2]*10)>tp; kk=0; ii=0; if (scb) { while(kol_buy()>0 && kk<3) { kk++; for(i=1;i<=kb;i++) { if(M_ob[i][0]==0)break;else ii=M_ob[i][0]; if (!OrderClose(ii,M_ob[i][2],Bid,slip,White)) { gle=GetLastError(); Print("Error #",gle," at close buy ",ii," (",kk,")"); Sleep(6000); RefreshRates(); } } } } kk=0; ii=0; if (scs) { while(kol_sell()>0 && kk<3) { kk++; for(i=1;i<=ks;i++) { if(M_os[i][0]==0)break;else ii=M_os[i][0]; if (!OrderClose(ii,M_os[i][2],Ask,slip,White)) { gle=GetLastError(); Print("Error #",gle," at close sell ",ii," (",kk,")"); Sleep(6000); RefreshRates(); } } } }We do all this permanently making "mistake" #10. The only "mistake" of those listed above that we have not made yet is "mistake" #9, but it was not a real "mistake" from the very beginning. We protected ourselves from "mistake" #5 having given control to our PC. In arrays M_ob and M_os, the current information about open positions is stored: int kb,kb_max=0; kb=kol_buy()+1; double M_ob[11][8]; ArrayResize(M_ob,kb); int ks=0,ks_max=0; ks=kol_sell()+1; double M_os[11][8]; ArrayResize(M_os,ks); ArrayInitialize(M_ob,0.0); int kbi=0; for(i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) { kbi++; M_ob[kbi][0]=OrderTicket(); M_ob[kbi][1]=OrderOpenPrice(); M_ob[kbi][2]=OrderLots(); M_ob[kbi][3]=OrderType(); M_ob[kbi][4]=OrderMagicNumber(); M_ob[kbi][5]=OrderStopLoss(); M_ob[kbi][6]=OrderTakeProfit(); M_ob[kbi][7]=OrderProfit(); } } M_ob[0][0]=kb; double max_lot_b=0.0; for(i=1;i<kb;i++) { if(M_ob[i][2]>max_lot_b) { max_lot_b=M_ob[i][2]; kb_max=i; } } double buy_lev_min=M_ob[kb_max][1]; ArrayInitialize(M_os,0.0); int ksi=0; for(i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) { ksi++; M_os[ksi][0]=OrderTicket(); M_os[ksi][1]=OrderOpenPrice(); M_os[ksi][2]=OrderLots(); M_os[ksi][3]=OrderType(); M_os[ksi][4]=OrderMagicNumber(); M_os[ksi][5]=OrderStopLoss(); M_os[ksi][6]=OrderTakeProfit(); M_os[ksi][7]=OrderProfit(); } } M_os[0][0]=ks; double max_lot_s=0.0; for(i=1;i<ks;i++) { if(M_os[i][2]>max_lot_s) { max_lot_s=M_os[i][2]; ks_max=i; } } double sell_lev_max=M_os[ks_max][1]; There can be a certain amount of intervals moving against the trend, so one has to have a sufficient deposit (in
the example above – not less than $50000). However, the system works at smaller initial deposits, only the
interval of sl should be greater. If the deposit is $1000, the interval should be 300, the profit will be a bit
smaller, as well, in this case. Test ResultsWe conducted testing on USDCHF. One-minute chart was chosen to exclude the modelling quality influence. We got similar results on other symbols, but sl and tp inputs should be matched for better results.Strategy Tester Report Expert Advisor Франк_уд
![]()
etc. The author of this present article having started trading practices in 2002 and still considering himself to be a beginner in trading is sure of only two postulations (axioms, truths, as you prefer) on FOREX:
Better safe than sorry! List of References:
Translated from Russian by MetaQuotes Software Corp.
Warning:
All rights to these materials are reserved by MetaQuotes Software Corp.
Copying or reprinting of these materials in whole or in part is prohibited.
Great articel rsi, thank you very much for it! One thing is just wondered; you say that "...however, the system works at smaller initial deposits, only the
interval of sl should be greater. If the deposit is $1000, the interval should be 300...". I just couldn't find any "interval" for stoploss from your code, so could you please explain a bit more what you mean with this? Thanks in advance!
2008.04.28 20:51 AlliumPorrum
2 comments
|