MultiCharts Automated trading

...because there are things that can happen - totally out of our control - that can cause Full Auto to - FAIL.
Today's software is damn reliable....but the datafeeds are not. That will cause a fail.
 
So we have about 3 different options with MC:
1) manual trading
2) semi-automated trading (Require Trade Confirmation = On)
3) fully-automated trading

Unfortunately, with #2, you can't specify confirmation for both entries and exits independently.
I have put in an enhancement request for this.
It would be great if the signal puts you into the trade automatically and then you manage the exit manually....and vise-versa.
 
Automated trading with MultiCharts is a crap. You cannot do anything beyond market orders with global variables to be sure you get filled. It is far better to do manual trading with MC only. They do not have any sophisticated execution algorithms at all so far. I told them many years ago but nothing happened.

Now TradingView, from the same company, has a $3 billion valuation they might not be in a rush to fix it.
 
thanks for the input it helps talking to traders doing similar things.

classic range bars 4-32 tick range (or points as mc calls them)

mostly i trade on the close of the range bar or open of the next range bar and that's how i test also so i don't really have a need for the inside bar look. but on classic regular range bars i have seen a bar form and place an order only to have that price tick it traded disappear, leaving my entry arrow with no bar showing where it traded.​

standard range bars 4-32 tick range (or points as mc calls them)

using the standard range bars, like others have stated the gaps will be filled in with fake price bars.​

kase range bars set to 1 tick update resolution 4-32 tick range (or points as mc calls them)

this combination gives no fake bars and no repainted price bars, at least i have not observed any yet.
net daily goal

i like to trade 8:30am to 9:30am and maybe from 2:00pm to 3:00pm chicago time

bar magnifier

just wondering what size bars you using for that?

About your - Classic and Standard Range Bars - I have NEVER seen "fake price bars" in MC - and I have been using MC for a many years. Also - I just consider Range Bars - as Range Bars - NOT Classic or Standard. Are you going Full Auto - when you see the bars form - and "that price tick it traded disappear"?

For me - I see absolutely NO advantage to using Kase Range Bars. As far as my Algos goes - it really doesn't matter what type of bar - could be a Tick chart - or Minute - or other types - my Code doesn't care.

I have a Net Daily Goal in Dollars - that I try to make in a 2 hour period. I just set the Time to trade - so it only trades during those 2 hours. I do have some Code - that can be Set - to the Times you mentioned - and trade only during those Time Periods - really NOT complicated. For me - I have other things to do during the day - totally unrelated to trading (mainly related to Family - Grandkids) - so many years ago - I set the 2 hour Time Period. As I get older - I try to use my time - for things that are more important to me - than Trading. That may sound crazy - saying this in a Trading Forum.

These days - I mainly trade the ES and MES - using a 7 Tick Range Bar - I keep things as Simple as possible. I won't go into detail here - but it is Simple.

I also have a one more Workspace - with an Algo - currently for the NQ - using a 200 Tick Range Bar. The NQ can really be a Fast mover. The main reason for this Workspace - is for Testing and Trading Algos.

By the way - for me - the "Intrabarordergeneration" - is very important, providing you Code with that in mind. Also - the "Bar Magnifier" is important and it works great - providing it is Set Correctly. Having said that - there are some things about MC - that I would like to see fixed - or added - but it is what it is - and it works great for me.

-------------------------------------------------
-------------------------------------------------

Contact me with a Private Message in ET - will give some help - NO CHARGE. Each School day - I go to get the younger grandson - on the bus - to make sure he is safe. I drive 25 to 30 miles round trip - depending on which way I go - due to traffic early in the morning. I usually get home before 9:30 am - West Coast time. If you want - I will let you watch the Algo Signals - in Real Time.

Wish you and other traders - all the best with trading.
 
Having said that - there are some things about MC - that I would like to see fixed - or added - but it is what it is - and it works great for me.
Please get a sign-in for MC Project Management and submit some enhancement requests. I do it all of the time. You must have a special login id....so ask tech support for one.
 
so i made a exit system that will automate the risk and reward for a manually entered trade.

it works well until you add on to the position then it freaks out. m

i called it: Stops Test 1




[intrabarordergeneration = true];
[RecoverDrawings = false];

DEFINEDLLFUNC: "kernel32.dll", int, "GetTickCount";

// Existing issues - inaccurately sync order's prices:
// 1) entry prices - only in pyramiding mode
// 2) exit prices - always (used close price as close position price)

Input :
TimeOutMS(250), // time spent since BrokerMarketPosition changed and we start correct position
LatencyMS(500); // time spent since we start correct StrategyMarketPosition and return to monitoring mode

variables:
textID( text_new_s(d, time_s, c,"CurrentState") ),
intrabarpersist sync_state("MP is synchronized!"),
intrabarpersist diff_state("MP syncronization. Wait "),

_rightest(0),
_highest(0),

inner_mp(0),
broker_mp(0),

intrabarpersist mp_diff(false),
intrabarpersist mp_diff_time_start(0),

intrabarpersist mp_corrected(false),
intrabarpersist mp_corrected_time_start(0),

intrabarpersist place_correction_marketorder(false),

intrabarpersist _get_tick_count(0),
intrabarpersist _exit_price(0),

correct_contracts(0),
is_buy(false),
is_entry(true);


if getappinfo(airealtimecalc) = 1 and getappinfo(aistrategyauto) = 1 then begin

once begin
print( text_setstyle(textID, 1, 0) );
diff_state += text(TimeOutMS*.001, " seconds.");
end;

inner_mp = currentcontracts*marketposition;
broker_mp = MarketPosition_at_Broker;

_rightest = getappinfo(airightdispdatetime);
_highest = getappinfo(aihighestdispvalue);

text_setlocation_s(
textID,
juliantodate(_rightest),
datetime2eltime_s(_rightest),
_highest
);

if broker_mp <> inner_mp then begin


_get_tick_count = GetTickCount ;

// market position differs state
if not mp_diff and not mp_corrected then begin
mp_diff = true;
mp_diff_time_start = _get_tick_count ;
text_setstring(textID, diff_state);
end;

// enter correction state after TimeOut
if mp_diff and not mp_corrected then begin
_exit_price = c; // assume that position can closed at close price
if _get_tick_count - mp_diff_time_start > TimeOutMS then begin
place_correction_marketorder = true ;
mp_corrected = true ;
mp_corrected_time_start = _get_tick_count ;
end;
end;

// correction state
if mp_corrected then begin
if _get_tick_count - mp_corrected_time_start > LatencyMS then begin
mp_corrected_time_start = _get_tick_count ;
mp_diff = false;
mp_corrected = false;
end;
end;

// place correction order
if place_correction_marketorder then begin
place_correction_marketorder = false ;
if 0 <> broker_mp then _exit_price = AvgEntryPrice_at_Broker;
ChangeMarketPosition(broker_mp - inner_mp, _exit_price, "Sync Order");
end;

end
else begin
text_setstring(textID, sync_state);
mp_corrected = false ;
mp_diff = false;
end;

end; // is real time and strategy auto


/////////////////////////////// below code for bracket trading ////////////////////////////


//Exit

input:los(20),pft(20);

if marketposition=1 then begin

setstoploss_pt(los);

setprofittarget_pt(pft);

end;

if marketposition=-1 then begin

setstoploss_pt(los);

setprofittarget_pt(pft);

end;
 
Back
Top