Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Tuesday, 1 January 2019

MetaTrader vs. cTrader: Forex Trading Platform Comparison

MetaTrader by Metaquotes has dominated the forex markets for quite a long period. Recently, it also launched its new version MetaTrader 5 (MT5). However, it is not the only software which you can use to trade the forex markets. A formidable contender is cTrader by Spotware.

Choosing the right software for forex trading can make the difference between profit and loss. You cannot compromise on the trading platform when it comes to forex trading. We will today compare both of these trading platforms to provide you with a clear perspective. We will compare the companies on uniform factors which will help you clearly understand which one is better.

  1. Charts and Indicators:

MetaTrader:

MetaTrader 5 offers 21 different chart timeframes. The number of charts which you can view is unlimited. It provides 38 trading indicators and 68 analytical tools. The number of indicators and analytical tools in MetaTrader 5 is much higher than its predecessor. You can trade in one click from the tick charts. Thus, when it comes to charts and indicators, it is a formidable contender.

cTrader:

cTrader comes with 70 indicators and 54 timeframes to choose as per your requirements. Thus, it is neck to neck when it comes to indicators and analytical tools with MetaTrader 5. It might even have a slight advantage, but MetaTrader 5 edges past it with one click trading in tick charts.

cTrader and MetaTrader are on an equal footing as far as charts and indicators are concerned. It’s a tie!

Score:

MetaTrader: 1

cTrader: 1

  1. Backtesting and automated testing:

MetaTrader has been able to dominate the forex industry for a very long time. The primary reason for that is it supports the use of EAs. Thus, automated trading to a certain extent is possible. With the launch of cTrader, the industry has an alternative.

MetaTrader:

MetaTrader 5 supports forex robot or Expert Advisors (EAs) and automated algorithms. These can be used to trade on your behalf as well as your clients. These algorithms help to conclude the entire trade easily. There is even an elaborate language in which you can write these automated trading algorithms. It is called MQL5. It is similar to C. The dedicated scripting language makes MetaTrader 5 much more potent as compared to the other trading platforms.

The scripting language, however, is not that easy to master. You will have to spend quite a few hours to learn the scripting language. It will help if you know C programming language. Nonetheless, it has a definite advantage. The only downside is that MetaTrader 4 worked on MQL4. MetaTrader 5 works on MQL5. If you have an algorithm to determine the older language, it is not compatible with MetaTrader 5. You will have to write the entire algorithm from scratch.

Since MetaTrader has been around for quite some time, there are quite a few tools which you can use to create algorithms and EAs without programming knowledge. There are pre-existing expert advisors and algorithms which you can buy directly off the market.

MetaTrader 5 allows you to backtest your algorithms as well as expert advisor. You can calculate the probability of your success by taking into account the past data.

cTrader:

cTrader also supports automatic trading and backtesting. The algorithms and the bots for cTrader are coded in C#. It is an object-oriented programming language. It is very common. As a result, writing bots is easier in cTrader.

The developer community for cTrader has also grown exponentially. Thus, you can take help from their bots. There are however no tools available for creating bots without programming knowledge in cTrader. There are a few tools however which allow you to convert MetaTrader EAs to work with cTrader. Automated trading is possible with the help of cTrader.

The backtesting feature of cTrader is very similar to that of MetaTrader. You can expand the historical data as per your requirement. You can backtest your algorithms and bots as per your requirement.

On the face of it, both MetaTrader and cTrader might offer same automated algorithm and backtesting features, but MetaTrader certainly has an edge. The edge is the vast developer community. The availability to create bots without programming knowledge is a definite advantage for MetaTrader. Thus, MetaTrader edges past cTrader in this regard.

 

Score:

MetaTrader: 2

cTrader: 1

  1. The depth of Market:

The futures market has made the depth of market feature famous. The popularity led to the advent of this feature in the forex markets. We will compare MetaTrader and cTrader on this below.

MetaTrader:

MetaTrader 5 is the first forex trading platform to introduce depth of market functionality. Earlier it was available but not as a default option. MetaTrader allowed you to view it using a third-party plug-in. The plug-in access was to be provided by the broker. MetaTrader 5 has made it a standard option. You can easily check the liquidity with the help of this feature. It will help you understand the market conditions.

cTrader:

cTrader has a definite advantage when it comes to depth of market feature. It is much more sophisticated in this regard. It provides you with the full details of executable prices. It allows you to view the VWAP which helps you execute the trade at a much faster pace. You can even gain an idea regarding the price at which the large orders will get executed. The elaborate data for the depth of market functionality works in favor of cTrader.

Thus, when it comes to depth of market functionality, cTrader has a definite advantage.

Score:

MetaTrader: 2

cTrader: 2

  1. Accessibility:

Ultimately, it is the accessibility of the software which will decide its usability. We will compare both of these trading platforms on this factor.

MetaTrader:

MetaTrader has a distinct advantage. MetaTrader 4 is almost the default trading platform offered by most of the forex brokers. MetaTrader 5 is also gaining wider acceptance at a fast pace. Most of the brokers offer either MetaTrader 4 or MetaTrader 5. Thus, availability and accessibility is not an issue when you are looking for MetaTrader. MetaTrader is available for Tablets, Windows, and Mac. It is available in the web-based version as well.

cTrader:

The number of brokerages offering cTrader is increasing. With that being said, it still lags behind MetaTrader on accessibility. It will take some time before it matches the accessibility and availability of MetaTrader.

cTrader is available for tablets along with Windows. It has a web-based version as well.

The availability of MetaTrader helps it score over cTrader in this regard.

Score:

MetaTrader: 3

cTrader: 2
Verdict: MetaTrader Wins!

Thus, head-to-head, MetaTrader scores over cTrader. The accessibility and availability of MetaTrader 4 and 5 help it edge past cTrader quite easily. Even with the elaborate depth of market functionality, cTrader still lags behind the MetaTrader trading platform in some aspects which we have highlighted above. According to us, MetaTrader 5 should be your weapon of choice in the forex markets.

The post MetaTrader vs. cTrader: Forex Trading Platform Comparison appeared first on TheTechNews.



from TheTechNews http://bit.ly/2SqOlu6
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support