mt4 clickable button in indicator Forex Factory

My home-made bar replay for MT4

I made a home-made bar replay for MT4 as an alternative to the tradingview bar replay. You can change timeframes and use objects easily. It just uses vertical lines to block the future candles. Then it adjusts the vertical lines when you change zoom or time frames to keep the "future" bars hidden.
I am not a professional coder so this is not as robust as something like Soft4fx or Forex Tester. But for me it gets the job done and is very convenient. Maybe you will find some benefit from it.

Here are the steps to use it:
1) copy the text from the code block
2) go to MT4 terminal and open Meta Editor (click icon or press F4)
3) go to File -> New -> Expert Advisor
4) put in a title and click Next, Next, Finish
5) Delete all text from new file and paste in text from code block
6) go back to MT4
7) Bring up Navigator (Ctrl+N if it's not already up)
8) go to expert advisors section and find what you titled it
9) open up a chart of the symbol you want to test
10) add the EA to this chart
11) specify colors and start time in inputs then press OK
12) use "S" key on your keyboard to advance 1 bar of current time frame
13) use tool bar buttons to change zoom and time frames, do objects, etc.
14) don't turn on auto scroll. if you do by accident, press "S" to return to simulation time.
15) click "buy" and "sell" buttons (white text, top center) to generate entry, TP and SL lines to track your trade
16) to cancel or close a trade, press "close order" then click the white entry line
17) drag and drop TP/SL lines to modify RR
18) click "End" to delete all objects and remove simulation from chart
19) to change simulation time, click "End", then add the simulator EA to your chart with a new start time
20) When you click "End", your own objects will be deleted too, so make sure you are done with them
21) keep track of your own trade results manually
22) use Tools-> History center to download new data if you need it. the simulator won't work on time frames if you don't have historical data going back that far, but it will work on time frames that you have the data for. If you have data but its not appearing, you might also need to increase max bars in chart in Tools->Options->Charts.
23) don't look at status bar if you are moused over hidden candles, or to avoid this you can hide the status bar.


Here is the code block.
//+------------------------------------------------------------------+ //| Bar Replay V2.mq4 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #define VK_A 0x41 #define VK_S 0x53 #define VK_X 0x58 #define VK_Z 0x5A #define VK_V 0x56 #define VK_C 0x43 #define VK_W 0x57 #define VK_E 0x45 double balance; string balance_as_string; int filehandle; int trade_ticket = 1; string objectname; string entry_line_name; string tp_line_name; string sl_line_name; string one_R_line_name; double distance; double entry_price; double tp_price; double sl_price; double one_R; double TP_distance; double gain_in_R; string direction; bool balance_file_exist; double new_balance; double sl_distance; string trade_number; double risk; double reward; string RR_string; int is_tp_or_sl_line=0; int click_to_cancel=0; input color foreground_color = clrWhite; input color background_color = clrBlack; input color bear_candle_color = clrRed; input color bull_candle_color = clrSpringGreen; input color current_price_line_color = clrGray; input string start_time = "2020.10.27 12:00"; input int vertical_margin = 100; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { Comment(""); ChartNavigate(0,CHART_BEGIN,0); BlankChart(); ChartSetInteger(0,CHART_SHIFT,true); ChartSetInteger(0,CHART_FOREGROUND,false); ChartSetInteger(0,CHART_AUTOSCROLL,false); ChartSetInteger(0,CHART_SCALEFIX,false); ChartSetInteger(0,CHART_SHOW_OBJECT_DESCR,true); if (ObjectFind(0,"First OnInit")<0){ CreateStorageHLine("First OnInit",1);} if (ObjectFind(0,"Simulation Time")<0){ CreateTestVLine("Simulation Time",StringToTime(start_time));} string vlinename; for (int i=0; i<=1000000; i++){ vlinename="VLine"+IntegerToString(i); ObjectDelete(vlinename); } HideBars(SimulationBarTime(),0); //HideBar(SimulationBarTime()); UnBlankChart(); LabelCreate("New Buy Button","Buy",0,38,foreground_color); LabelCreate("New Sell Button","Sell",0,41,foreground_color); LabelCreate("Cancel Order","Close Order",0,44,foreground_color); LabelCreate("Risk To Reward","RR",0,52,foreground_color); LabelCreate("End","End",0,35,foreground_color); ObjectMove(0,"First OnInit",0,0,0); //--- create timer EventSetTimer(60); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if (id==CHARTEVENT_CHART_CHANGE){ int chartscale = ChartGetInteger(0,CHART_SCALE,0); int lastchartscale = ObjectGetDouble(0,"Last Chart Scale",OBJPROP_PRICE,0); if (chartscale!=lastchartscale){ int chartscale = ChartGetInteger(0,CHART_SCALE,0); ObjectMove(0,"Last Chart Scale",0,0,chartscale); OnInit(); }} if (id==CHARTEVENT_KEYDOWN){ if (lparam==VK_S){ IncreaseSimulationTime(); UnHideBar(SimulationPosition()); NavigateToSimulationPosition(); CreateHLine(0,"Current Price",Close[SimulationPosition()+1],current_price_line_color,1,0,true,false,false,"price"); SetChartMinMax(); }} if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="New Sell Button") { distance = iATR(_Symbol,_Period,20,SimulationPosition()+1)/2; objectname = "Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1],foreground_color,2,5,false,true,true,"Sell"); objectname = "TP for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]-distance*2,clrAqua,2,5,false,true,true,"TP"); objectname = "SL for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]+distance,clrRed,2,5,false,true,true,"SL"); trade_ticket+=1; } } if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="New Buy Button") { distance = iATR(_Symbol,_Period,20,SimulationPosition()+1)/2; objectname = "Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1],foreground_color,2,5,false,true,true,"Buy"); objectname = "TP for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]+distance*2,clrAqua,2,5,false,true,true,"TP"); objectname = "SL for Trade # "+IntegerToString(trade_ticket); CreateHLine(0,objectname,Close[SimulationPosition()+1]-distance,clrRed,2,5,false,true,true,"SL"); trade_ticket+=1; } } if(id==CHARTEVENT_OBJECT_DRAG) { if(StringFind(sparam,"TP",0)==0) { is_tp_or_sl_line=1; } if(StringFind(sparam,"SL",0)==0) { is_tp_or_sl_line=1; } Comment(is_tp_or_sl_line); if(is_tp_or_sl_line==1) { trade_number = StringSubstr(sparam,7,9); entry_line_name = trade_number; tp_line_name = "TP for "+entry_line_name; sl_line_name = "SL for "+entry_line_name; entry_price = ObjectGetDouble(0,entry_line_name,OBJPROP_PRICE,0); tp_price = ObjectGetDouble(0,tp_line_name,OBJPROP_PRICE,0); sl_price = ObjectGetDouble(0,sl_line_name,OBJPROP_PRICE,0); sl_distance = MathAbs(entry_price-sl_price); TP_distance = MathAbs(entry_price-tp_price); reward = TP_distance/sl_distance; RR_string = "RR = 1 : "+DoubleToString(reward,2); ObjectSetString(0,"Risk To Reward",OBJPROP_TEXT,RR_string); is_tp_or_sl_line=0; } } if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="Cancel Order") { click_to_cancel=1; Comment("please click the entry line of the order you wish to cancel."); } } if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam!="Cancel Order") { if(click_to_cancel==1) { if(ObjectGetInteger(0,sparam,OBJPROP_TYPE,0)==OBJ_HLINE) { entry_line_name = sparam; tp_line_name = "TP for "+sparam; sl_line_name = "SL for "+sparam; ObjectDelete(0,entry_line_name); ObjectDelete(0,tp_line_name); ObjectDelete(0,sl_line_name); click_to_cancel=0; ObjectSetString(0,"Risk To Reward",OBJPROP_TEXT,"RR"); } } } } if (id==CHARTEVENT_OBJECT_CLICK){ if (sparam=="End"){ ObjectsDeleteAll(0,-1,-1); ExpertRemove(); }} } //+------------------------------------------------------------------+ void CreateStorageHLine(string name, double value){ ObjectDelete(name); ObjectCreate(0,name,OBJ_HLINE,0,0,value); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_COLOR,clrNONE); ObjectSetInteger(0,name,OBJPROP_BACK,true); ObjectSetInteger(0,name,OBJPROP_ZORDER,0); } void CreateTestHLine(string name, double value){ ObjectDelete(name); ObjectCreate(0,name,OBJ_HLINE,0,0,value); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite); ObjectSetInteger(0,name,OBJPROP_BACK,true); ObjectSetInteger(0,name,OBJPROP_ZORDER,0); } bool IsFirstOnInit(){ bool bbb=false; if (ObjectGetDouble(0,"First OnInit",OBJPROP_PRICE,0)==1){return true;} return bbb; } void CreateTestVLine(string name, datetime timevalue){ ObjectDelete(name); ObjectCreate(0,name,OBJ_VLINE,0,timevalue,0); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_COLOR,clrNONE); ObjectSetInteger(0,name,OBJPROP_BACK,false); ObjectSetInteger(0,name,OBJPROP_ZORDER,3); } datetime SimulationTime(){ return ObjectGetInteger(0,"Simulation Time",OBJPROP_TIME,0); } int SimulationPosition(){ return iBarShift(_Symbol,_Period,SimulationTime(),false); } datetime SimulationBarTime(){ return Time[SimulationPosition()]; } void IncreaseSimulationTime(){ ObjectMove(0,"Simulation Time",0,Time[SimulationPosition()-1],0); } void NavigateToSimulationPosition(){ ChartNavigate(0,CHART_END,-1*SimulationPosition()+15); } void NotifyNotEnoughHistoricalData(){ BlankChart(); Comment("Sorry, but there is not enough historical data to load this time frame."+"\n"+ "Please load more historical data or use a higher time frame. Thank you :)");} void UnHideBar(int barindex){ ObjectDelete(0,"VLine"+IntegerToString(barindex+1)); } void BlankChart(){ ChartSetInteger(0,CHART_COLOR_FOREGROUND,clrNONE); ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,clrNONE); ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,clrNONE); ChartSetInteger(0,CHART_COLOR_CHART_DOWN,clrNONE); ChartSetInteger(0,CHART_COLOR_CHART_UP,clrNONE); ChartSetInteger(0,CHART_COLOR_CHART_LINE,clrNONE); ChartSetInteger(0,CHART_COLOR_GRID,clrNONE); ChartSetInteger(0,CHART_COLOR_ASK,clrNONE); ChartSetInteger(0,CHART_COLOR_BID,clrNONE);} void UnBlankChart(){ ChartSetInteger(0,CHART_COLOR_FOREGROUND,foreground_color); ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,bear_candle_color); ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,bull_candle_color); ChartSetInteger(0,CHART_COLOR_BACKGROUND,background_color); ChartSetInteger(0,CHART_COLOR_CHART_DOWN,foreground_color); ChartSetInteger(0,CHART_COLOR_CHART_UP,foreground_color); ChartSetInteger(0,CHART_COLOR_CHART_LINE,foreground_color); ChartSetInteger(0,CHART_COLOR_GRID,clrNONE); ChartSetInteger(0,CHART_COLOR_ASK,clrNONE); ChartSetInteger(0,CHART_COLOR_BID,clrNONE);} void HideBars(datetime starttime, int shift){ int startbarindex = iBarShift(_Symbol,_Period,starttime,false); ChartNavigate(0,CHART_BEGIN,0); if (Time[WindowFirstVisibleBar()]>SimulationTime()){NotifyNotEnoughHistoricalData();} if (Time[WindowFirstVisibleBar()]=0; i--){ vlinename="VLine"+IntegerToString(i); ObjectCreate(0,vlinename,OBJ_VLINE,0,Time[i],0); ObjectSetInteger(0,vlinename,OBJPROP_COLOR,background_color); ObjectSetInteger(0,vlinename,OBJPROP_BACK,false); ObjectSetInteger(0,vlinename,OBJPROP_WIDTH,vlinewidth); ObjectSetInteger(0,vlinename,OBJPROP_ZORDER,10); ObjectSetInteger(0,vlinename,OBJPROP_FILL,true); ObjectSetInteger(0,vlinename,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,vlinename,OBJPROP_SELECTED,false); ObjectSetInteger(0,vlinename,OBJPROP_SELECTABLE,false); } NavigateToSimulationPosition(); SetChartMinMax();} }//end of HideBars function void SetChartMinMax(){ int firstbar = WindowFirstVisibleBar(); int lastbar = SimulationPosition(); int lastbarwhenscrolled = WindowFirstVisibleBar()-WindowBarsPerChart(); if (lastbarwhenscrolled>lastbar){lastbar=lastbarwhenscrolled;} double highest = High[iHighest(_Symbol,_Period,MODE_HIGH,firstbar-lastbar,lastbar)]; double lowest = Low[iLowest(_Symbol,_Period,MODE_LOW,firstbar-lastbar,lastbar)]; ChartSetInteger(0,CHART_SCALEFIX,true); ChartSetDouble(0,CHART_FIXED_MAX,highest+vertical_margin*_Point); ChartSetDouble(0,CHART_FIXED_MIN,lowest-vertical_margin*_Point); } void LabelCreate(string labelname, string labeltext, int row, int column, color labelcolor){ int ylocation = row*18; int xlocation = column*10; ObjectCreate(0,labelname,OBJ_LABEL,0,0,0); ObjectSetString(0,labelname,OBJPROP_TEXT,labeltext); ObjectSetInteger(0,labelname,OBJPROP_COLOR,labelcolor); ObjectSetInteger(0,labelname,OBJPROP_FONTSIZE,10); ObjectSetInteger(0,labelname,OBJPROP_ZORDER,10); ObjectSetInteger(0,labelname,OBJPROP_BACK,false); ObjectSetInteger(0,labelname,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetInteger(0,labelname,OBJPROP_ANCHOR,ANCHOR_LEFT_UPPER); ObjectSetInteger(0,labelname,OBJPROP_XDISTANCE,xlocation); ObjectSetInteger(0,labelname,OBJPROP_YDISTANCE,ylocation);} double GetHLinePrice(string name){ return ObjectGetDouble(0,name,OBJPROP_PRICE,0); } void CreateHLine(int chartid, string objectnamey, double objectprice, color linecolor, int width, int zorder, bool back, bool selected, bool selectable, string descriptionn) { ObjectDelete(chartid,objectnamey); ObjectCreate(chartid,objectnamey,OBJ_HLINE,0,0,objectprice); ObjectSetString(chartid,objectnamey,OBJPROP_TEXT,objectprice); ObjectSetInteger(chartid,objectnamey,OBJPROP_COLOR,linecolor); ObjectSetInteger(chartid,objectnamey,OBJPROP_WIDTH,width); ObjectSetInteger(chartid,objectnamey,OBJPROP_ZORDER,zorder); ObjectSetInteger(chartid,objectnamey,OBJPROP_BACK,back); ObjectSetInteger(chartid,objectnamey,OBJPROP_SELECTED,selected); ObjectSetInteger(chartid,objectnamey,OBJPROP_SELECTABLE,selectable); ObjectSetString(0,objectnamey,OBJPROP_TEXT,descriptionn); } //end of code 
submitted by Learning_2 to Forex [link] [comments]

【翻译Quora上一篇问答】中国是否正在面临一次银行危机(谈到房地产) by phoebeDD on 2016-10-04

Is China really facing a banking crisis? What are its origins?
(中国是否正在面对一次银行危机?其根源又是什么?)



According to a recent article titled China facing full-blown banking crisis, world's top financial watchdog war
ns published in the Telegraph:
(根据近期电讯文章报道:“世界顶级金融观察者发出警告:中国正在面临全面的银行危机”)
China has failed to curb excesses in its credit system and faces mounting risks of a full-blown banking crisis
(中国已对债务违约失去控制,他们正在面对随之而来的全面性银行危机)
(中国债务/GDP 占比图)


Financial Crises

International Economics

The Economy

China

Answer
Request
Follow187
Comment1
Share
Downvote


9 Answers
以下为回答部分:





Robin Daverman, Dealmaker
Written Sep 27


Ah, but maybe you want to look around a bit and see how China’s total debt is compared with other economies, like this?
(你可能想看看其他经济体与中国的债务情况相比是怎么样的,如下图)

(G10债务分布图)
If you put China’s data on this chart, it will be somewhere around Canada and New Zealand. Guess Which Country Has Debt Of Nearly 1000% Of GDP... Shocking, isn’t it?
如果你将中国的数据插入上图进行比较的话,中国的数据大约会在加拿大和新西兰之间。猜猜看哪个国家债务大约是自己GDP的10倍....(英国)非常震惊吧
UK has almost 1000% Debt-to-GDP ratio, compared with China’s < 300% Debt-to-GDP ratio, mostly because of that over-sized financial debt - at the end of the day, the government must stand behind it. On top of that, the UK has no resource to sell, hardly any industry left, going through a divorce with EU, and almost never ever meets her fiscal targets. And yet, UK, with its near 1000% debt-to-GDP ratio, is still viewed as the gold standard among safe havens. PRESENTING: The Rosetta Stone Of The Entire Sovereign Debt Crisis Why? Because UK issues debt in her own currency. And who prints the pound? The UK government.
英国的债务/GDP占比将近1000%而中国只是小于300%,其原因是其过于庞大的金融债务——政府最终将不得不为之站台。在此之上,英国没用可出售的资源,没有任何本国工业,正在脱离欧盟,而且英国基本上从来没有达成其财务目标。即使如此,英国仍然被某些传媒视为安全经济体的黄金标准。其原因就是英债都以英镑的方式结算。那么是谁印英镑的呢?英国政府。
Then you take a look at Japan, wow that’s 600%+ debt-to-GDP ratio! But - Japan’s debt is not only mostly internal, in Japanese Yen, but also with 0% or even negative interest. You can roll this kind of debt over practically forever. That’s why people have been yelling about Japanese debt for the last 20 years, and nothing happens.
然后你看看日本,将近600%的债务/GDP占比!但是,日本的债务几乎都是内部的,以日元的形式出售的债务,而且日本是0利率甚至是负利率。实际上这种债务你可以无限积累下去(经济常识:如果是负利率,政府只要保持债务不变,多出来的部分会自行消失)。这就是为啥人们对日债担心了20年但屁事没有发生。
Then you take a look at those economies that have blown up on debt:
Argentina: Government/Sovereign debt in USD, with jurisdiction in New York!Greece: Government/Sovereign debt in Euro, with jurisdiction in Brussels!Iceland: External financial debt → nationalized into Government/Sovereign debt in USD and Euro alone was 700%+ GDP in 2008, with jurisdiction in New York and Brussels.
然后你看看那些因债务问题毁掉的经济体:
阿根廷:政府/主权债务以美元形式结算,其裁判权在纽约!希腊:政府/主权债务以欧元方式结算,其裁判权在布鲁塞尔!冰岛:外部金融债务→债务国有化后2008年政府/主权债务以美元和欧元的形式达到GDP的700%,其裁判权在纽约和布鲁塞尔
Then you look at China, with her debt almost entirely internal, in Chinese RMB to Chinese citizens, government debt at 55%, lower than the US, Japan, and EU average, in her own currency. China’s external debt is about 9% of GDP, globally ranked 184th (less than North Korea, similar to Kosovo) - anyway you look at it, it’s hardly the kind of material to make a banking crisis. China is borrowing a little bit from her own piggy bank. Argentina/Greece/Iceland were borrowing a lot from the Mafia.
然后你看看中国,中国的债务基本都是内部以人民币结算的。中国政府债务只占总债务的55%,比美国,日本和欧盟都要低,再次强调,其债务以人民币结算。中国外部债务只占GDP的9%,全球排行184位(比朝鲜低,比科索沃高)。无论怎么看,你都不会看到中国有任何银行危机的迹象。中国只是向其国内贪心的银行借钱。阿根廷/希腊/冰岛可是像美国欧盟这些黑手党借钱。
PS: The most significant increase in China’s debt is in the financial sector, driven by rising real estate price (which means higher value of housing loans). Right now, the Chinese government is basically using it as a tool to do macro-economic engineering. The goal is to cap urban growth in top tier cities (Beijing, Shanghai, etc.) and push the economic growth to second- and third- tier cities (Hangzhou, the city that just hosted G20, is an example.http://www.g20.org/English/Hangzhou/About/index.html Now you can look back and see why the Chinese government decided to host G20 in a city nobody has ever heard of). This is clearly stated by the Chinese government like 100 times since last year in the official news channels. The reason? Top tier Chinese cities like Shanghai (25 million) already have more city residents than the whole nation of Australia! The metropolitan area of Shanghai (44 million) has more people than the entire population of Canada! In one city! Beijing’s population grew by 8 million within the last decade! The place is simply full.List of cities in China by population and built-up area
PS: 中国最显著的债务增长是在其金融领域内不断升高的房价造成的(不断增高的房贷造成债务问题)。现在中国政府正在利用房价作为宏观经济调控的工具。其目的是限制一线城市的城市化进程和加速二三线城市的发展(刚刚举办了G20的杭州就是个例子,现在你就能知道为啥中国政府将G20放在一个没人听说过的城市举行了)。这些政策中国政府已经在官媒上宣布了无数次。原因就是一线城市,例如上海(2500万人口),其居民数量比阿根廷全国人口还要多!上海都市圈(4400万人口)的人口数量比加拿大全国还要多!北京人口数量在过去的10年内增长了800万!这些城市的人口数量已经饱和了。
In addition to real estate prices, the Chinese government is also doing stuff like restricting residents permits, disallowing second or third homes, even restricting jobs to local residents, everything to say “this place is full. We have these other nice choices, with lower housing prices. Go there.” Young people complaining about housing prices in tier-one cities? But that’s the whole point. The debt you have to take on to live in tier-one cities SHOULD SCARE YOU OFF. The Chinese government is trying to stop the influx of people pouring into tier-one cities, and get these smart and energetic youths to go build two, three, four, five. … more Shanghai’s in other parts of China. 1.4 billion people can’t all fit into tier-one cities.
除了以房地产为手段,中国政府也加强控制了居住证的发放,禁止第二/三套房买入甚至对本地居民的工作种类进行限制,这些都是为了表达一个意思:这些地方都人满为患了。二三线城市有更低的房价和更好的生活条件,快点去那里吧!年轻人都在抱怨一线城市的高房价?但这就是中国政府想要的。你在一线城市生存需要的代价会把你吓退。中国政府正在尝试控制一线城市的人口流入而让有技术和充满活力的年轻人去建设二三四五线城市——让更多的上海出现在国家的其他地方。14亿人口是没可能全部都聚集在一线城市的。
5.9k Views · View Upvotes
Upvote91Downvote
Comments4+

Share





Paul Denlinger, Involved in China economics study
Written Sep 27


There is too much debt, and a lot of it is likely to turn into bad debt, but that does not equal a banking crisis.
是因为中国贷款太多了,而这些贷款大多数会变成不良贷款,但这些都不等银行危机
Banking crisis may be a nice term to bandy around and get clicks and headlines, but does not really explain what is going on.
银行危机或许是一个十分吸引眼球的头条,但是根本就不能解释实际的情况
There was a lot of debt financing, especially after the 2008 subprime mortgage crisis in the US. In order to keep the economy on a steady keel, the Chinese government, through its banks, pumped money to Chinese state-owned enterprises, in order to keep high employment and maintain an image of “growth”. A lot of this money then found its way into the underground banking system through “wealth management products” and other means. A lot of this has turned into bad debt.
中国政府有过很多次债务融资,特别是08年美国次贷危机之后。为了稳住经济增长,中国政府通过银行将大量人民币注入到国企内以维持就业率和高增长的形象。但这些钱最终大都以理财产品和其他形式流进了地下钱庄。这些大部分都变成了不良贷款。
Another problem area, which frequently overlaps with the “wealth management products” is the local government financing vehicle used to fund local property development, which I have discussed here: Paul Denlinger's answer to Why does China have so many ghost towns?
另一个有问题的领域,和“理财产品”有莫大关联的,就是地方政府为当地基础建设所采用的金融工具(我在这个地方有详细的分析:https://www.quora.com/Why-does-China-have-so-many-ghost-towns/answePaul-Denlinger?srid=tR&share=22b99cfc
What is likely to happen in China is that growth will slow down in some areas, while there will be certain newer parts of the economy which will continue to grow. If the Chinese government is able to support the newer parts of the economy and help them to grow, while cutting back on loans to the weaker parts of the economy, it may be able to handle this transition better.
最可能发生的情况就是中国的经济增长将会放缓,但是肯定会用新的增站点。如果中国政府能支持新的增长点而且能减低夕阳工业的不良贷款率,那么或许能更好地度过过渡期。
This is exactly what the Chinese government is trying to do and you can read about it here:Here is how China is going to quietly save its economy
这些正是中国政府正在尝试去做的,你可以读读这个文章了解一下:http://www.scmp.com/news/china/economy/article/2022491/china-deploys-policy-banks-stealth-mission-stimulate-growth
So, if you are expecting there to be a dramatic run on the banks, and the Chinese people to take to the streets and overthrow the Chinese Communist Party, and become a full-blown democracy like Taiwan, Japan or South Korea, you are very likely to be disappointed.
所以,如果你是期待一次强烈的bank run(自行百度啥是bank run),然后中国人民上街推翻TG,中国大陆变成与台湾,日本韩国一样的政体,那么你要失望了。
4.3k Views · View Upvotes
Upvote62Downvote
Comments2+

Share





Nikhil Ambhorkar, Self studied Finance.
Written Sep 26


Is China facing a Banking crisis?
中国是在面临一个银行危机吗?
Yes.

Is it facing a full blown Banking crisis?
中国正在面临一个全面性的银行危机吗?
No.

Combined debt of China is almost 300% of its GDP. But the the categorized in 4 parts as it is shown in the image with the question too.
中国的总债务大概是GDP的300%。但是分在了如图所示的4个领域内。
The corporate debt has the lion's portion of the total debt. The household debt and non corporate debt are nothing to worry about because it is less many other developed countries and has some room to grow.
公司债务在总债务中占了大头。个人债务和非公司债务根本没啥可担心的因为这些比大多数发达国家还要低所以还有增长的空间。
Government Debt is not too big when compared to standards set by many global institutions like IMF, World Bank, etc.
政府债务以多数国际组织,例如世行和IMF,设定得标准来看其实不高。
The only major concern which is of a serious magnitude is the corporate debt. This is also reiterated by many economists.
最主要的关注点就是公司债务了。许多经济学家都重申了这点无数次了。
Now the problem with China is that data that comes out of major Chinese institutions is murky so their are many different types of estimates by many different institutions but the common theme in it is corporate debt and its size.
中国最大的问题就是中国国内组织公布的数据来源不清晰所以不同的国际组织对中国经济的实际情况估算会不一样。但所有组织最关心的都是中国的公司债务与其规模。
Corporate debt consists of debt owned by state owned corporations and private corporations. Private corporations in China are generally crowded out by the state owned corporations because of connections and political agenda.
公司债务又分成了国企和私企的债务。中国私企大多数收到国企排挤,这是有政体造成的。
Many state owned corporations have invested into unproductive projects as a result of excess boost given by government after 2008 to prop up the economy. This has resulted in a huge amount of NPAs. So, in all the major problem is state owned corporations piling up huge amount of debt. To solve this problem, the government tried to convert the debt into shares which the bank owns and can recover money through profit dividends but this was one of the causes for last year's stock market crash.
在08年过度的经济刺激政策下,很多国企在许多无效益项目上投了许多钱。这造成了大量的无效能资产。所以,最大的问题是国企堆积了大量债务。为了解决这个问题,政府正在尝试将国企的债务转化为股份,那么银行就能将债务转化为红利而最终将债务收回了。但这造成了上年的股灾.....
Hence, it is a big crisis but not the one government cannot handle with so much trade surplus and forex reserves. But actions are definitely needed to stop it from growing into a bigger problem.
所以,这是一个危机但仍然是政府能控制的,毕竟中国政府有大量贸易顺差和外汇储备。但是仍然需要实际行动来防止事态的扩展。
906 Views · View Upvotes
Upvote18Downvote
Comments1+

Share



submitted by robot301_01 to kfq [link] [comments]

Nucoda / Phoenix - Using GUI Buttons Forex - The Most Powerful System On The Market (III Arrow ... Сharts in MT4 (Europe) How To Share A Forex Chart Screenshot Add/Remove buttons from the MetaTrader 4 platform - MT4 tutorials ▶ Trader on Chart The 1 Click Forex Trading EA for Metatrader 4 How to check spread in MT4  See the Forex Live spread in MT4 Chart Type (MetaTrader 4) - FXCM Technical Support SIMPLE FOREX TRADE & DAY TRADING QUESTION ANSWERED in simple terms One-Click-Trader Installation on MT4 (English)

Forex Market Pulse. Forex Market ... Click on the red icon to the left of the Chart Template Name. You will be asked to confirm your request to delete. Edit a Template. Click on the Chart Template Name. You will be brought to the Edit Template page. Chart Preferences. Clicking this button will take you to your Site Preferences page, where you can identify a default Chart and Flipcharts ... Chart Icons - Download 295 Free Chart icons @ IconArchive. Search more than 600,000 icons for Web & Desktop here. Using right-mouse click the on the row with a note (or on the icon on the chart) you can see the menu which allowing you to edit or delete it. Another way to delete a note is to click on the Delete button. To hide notes icons on the chart, please use right-mouse click on any place of chart and uncheck Show Notes menu item. Space to the right (Mt4) more than chart shift button 1 reply. MT4 - Getting status of Expert Advisor button 4 replies. How to set chart objects as background/non-clickable in MT4? 2 replies. Program Buy/Sell button with MT4 12 replies. Is it possible to have a command button in mt4? 23 replies FOREX.com may, from time to time, offer payment processing services with respect to card deposits through its affiliate, GAIN Capital UK Ltd, Devon House, 58 St Katharine’s Way, London, E1W 1JP, United Kingdom. Vector logo with candlestick trading chart analyzing in forex Candlestick trading emblem Candlestick in trading on stock and currency markets Colorful Candlestick vector Logo Template Illustration Design. Vector EPS 10 Candlestick chart, trade advisor logo concept. Logo template - candlestick Outline of decorative candlestick Display with Candlestick Trading Chart, Stock Market symbol. Line Chart – display the chart as a broken line connecting close prices of bars. Execution of this command is the same as pressing of the button of the "Charts" toolbar or accelerating keys of Alt+3; Foreground Chart – put the chart as a "foreground". If this function is enabled, all analytical objects (technical indicators and graphical ... FOREX.com is a trading name of GAIN Capital UK Limited. GAIN Capital UK Ltd is a company incorporated in England and Wales with UK Companies House number 1761813 and with its registered office at Devon House, 58 St Katharine’s Way, London, E1W 1JP. GAIN Capital UK Ltd is authorised and regulated by the Financial Conduct Authority in the UK, with FCA Register Number 113942. GAIN Capital UK ... The first icon saves a current chart as a file. The cloud down arrow icon is for fast upload of a chart. The cloud up arrow icon saves the work environment with all changes with various tools over different periods. Now let's examine the main toolbar. From left to right: Time frame. The platform provides 9 periods, starting from 1 minute to 1 ... Forex traders construct plans and patterns based on this concept, using only inside bars on the day based chart time frame. The 1-Minute Forex Scalping Strategy. The basic idea behind scalping is opening a large number of trades that usually last seconds or minutes. Some scalping strategies developed by professional traders have become very popular with traders. For example, the famous trader ...

[index] [14645] [10840] [11602] [29394] [15581] [831] [26585] [7446] [7009] [17195]

Nucoda / Phoenix - Using GUI Buttons

https://www.forexreviews.info - Short video guide on how to take a screenshot, edit it and save a image in order to be able to upload or share online using gimp. Only takes a few minutes. Website ... FXCM Technical Support Video Tutorial - Changing Chart Type in MT4 Step 1: Open the chart that you would like to use Step 2: Locate these buttons in the top toolbar. Use them to select a chart ... Trader On Chart is a very useful tool in Forex trading. This application will sit on your MT4 chart(s) and wait for your command to open trades with your preset settings. It is more than easy to ... In this video, we’ll talk about the key part of the trading terminal – price charts. In the previous video, we saw that there are several ways to open a new chart in MT4. You can either click ... The toolbars at the top of the trading platform can be customized to remove unwanted or unused tools, and add tools you may find useful. Introduction to buttons and icons on the GUI. How to build a Well-Designed and Interactive Excel Dashboard with Pivot Tables and Pivot Charts - Duration: 30:52. The Office Lab Recommended for you Installation guide on how to install the One-Click-Trader on MT4. For more information go to: www.metatrader-experts.com The One-Click-Trader Tool for the Me... Spread Display live in chart window - Forex Indicator for Meta Trader - Duration: 4:44. The Invest Bay 3,458 views. 4:44. 3 Simple Ways To Use Candlestick Patterns In Trading; SchoolOfTrade.com ... FYI - The Triple Arrow system has been updated. It is now called Simplicity and is more Powerful then before.. See links below and email me if you have quest... Simple questions answered from a full time trader , Post your question in the comments below , hit the subscribe button and the bell icon to see your question answered with a shout to you in the video

http://binary-optiontrade.misjohnsa.tk