* * Get the children of a comment. * * @since 4.4.0 * * @param array $args { * Array of arguments used to pass to get_comments() and determine format. * * @type string $format Return value format. 'tree' for a hierarchical tree, 'flat' for a flattened array. * Default 'tree'. * @type string $status Comment status to limit results by. Accepts 'hold' (`comment_status=0`), * 'approve' (`comment_status=1`), 'all', or a custom comment status. * Default 'all'. * @type string $hierarchical Whether to include comment descendants in the results. * 'threaded' returns a tree, with each comment's children * stored in a `children` property on the `WP_Comment` object. * 'flat' returns a flat array of found comments plus their children. * Pass `false` to leave out descendants. * The parameter is ignored (forced to `false`) when `$fields` is 'ids' or 'counts'. * Accepts 'threaded', 'flat', or false. Default: 'threaded'. * @type string|array $orderby Comment status or array of statuses. To use 'meta_value' * or 'meta_value_num', `$meta_key` must also be defined. * To sort by a specific `$meta_query` clause, use that * clause's array key. Accepts 'comment_agent', * 'comment_approved', 'comment_author', * 'comment_author_email', 'comment_author_IP', * 'comment_author_url', 'comment_content', 'comment_date', * 'comment_date_gmt', 'comment_ID', 'comment_karma', * 'comment_parent', 'comment_post_ID', 'comment_type', * 'user_id', 'comment__in', 'meta_value', 'meta_value_num', * the value of $meta_key, and the array keys of * `$meta_query`. Also accepts false, an empty array, or * 'none' to disable `ORDER BY` clause. * } * @return WP_Comment[] Array of `WP_Comment` objects. */ public function get_children( $args = array() ) { $defaults = array( 'format' => 'tree', 'status' => 'all', 'hierarchical' => 'threaded', 'orderby' => '', ); $_args = wp_parse_args( $args, $defaults ); $_args['parent'] = $this->comment_ID; if ( is_null( $this->children ) ) { if ( $this->populated_children ) { $this->children = array(); } else { $this->children = get_comments( $_args ); } } if ( 'flat' === $_args['format'] ) { $children = array(); foreach ( $this->children as $child ) { $child_args = $_args; $child_args['format'] = 'flat'; // get_children() resets this value automatically. unset( $child_args['parent'] ); $children = array_merge( $children, array( $child ), $child->get_children( $child_args ) ); } } else { $children = $this->children; } return $children; } /** * Add a child to the comment. * * Used by `WP_Comment_Query` when bulk-filling descendants. * * @since 4.4.0 * * @param WP_Comment $child Child comment. */ public function add_child( WP_Comment $child ) { $this->children[ $child->comment_ID ] = $child; } /** * Get a child comment by ID. * * @since 4.4.0 * * @param int $child_id ID of the child. * @return WP_Comment|false Returns the comment object if found, otherwise false. */ public function get_child( $child_id ) { if ( isset( $this->children[ $child_id ] ) ) { return $this->children[ $child_id ]; } return false; } /** * Set the 'populated_children' flag. * * This flag is important for ensuring that calling `get_children()` on a childless comment will not trigger * unneeded database queries. * * @since 4.4.0 * * @param bool $set Whether the comment's children have already been populated. */ public function populated_children( $set ) { $this->populated_children = (bool) $set; } /** * Check whether a non-public property is set. * * If `$name` matches a post field, the comment post will be loaded and the post's value checked. * * @since 4.4.0 * * @param string $name Property name. * @return bool */ public function __isset( $name ) { if ( in_array( $name, $this->post_fields, true ) && 0 !== (int) $this->comment_post_ID ) { $post = get_post( $this->comment_post_ID ); return property_exists( $post, $name ); } } /** * Magic getter. * * If `$name` matches a post field, the comment post will be loaded and the post's value returned. * * @since 4.4.0 * * @param string $name * @return mixed */ public function __get( $name ) { if ( in_array( $name, $this->post_fields, true ) ) { $post = get_post( $this->comment_post_ID ); return $post->$name; } } } 126% return for stock market short-sellers who smelled blood in crypto waters - Digital Cash Cow

126% return for stock market short-sellers who smelled blood in crypto waters

Short-sellers have made a killing on various sectors of the U.S. stock market this year, but no other sector “held a candle” to the blockchain industry, with crypto company short-sellers profits up 126% in 2022, according new data.

On Thursday, technology and data analytics firm S3 Partners published a video summarizing its recent report, which found that overall, U.S. equity short-sellers are up on average more than 30% for the year.

Some of these profit gains were attributed to the short-selling of automobiles and components stocks (up 54%), software and services stocks (up 50%), media and entertainment stocks (up 46%) and retail stocks, (up 46%) in the year, though these all paled in comparison to crypto stocks, which saw short-selling profits up 126% in 2022.

“But none of these industries holds a candle to short sellers in the crypto sector, up 126% on an average short interest of $3 billion dollars.”

Crypto stocks with the highest short interest include exchange Coinbase Global (COIN), Bitcoin miner Marathon Digital Holdings (MARA), and MicroStrategy (MSTR), a software company that is also known for being the largest publicly traded holder of Bitcoin.

Short selling occurs when an investor borrows a security and sells it on the open market with the expectation to buy it back in the future for less, pocketing the difference. This is profitable when prices decline. 

Short interest is the total number of shares of a particular stock that has been short-sold by investors but has not yet been covered or closed out. High or increasing short interest could indicate that investors are pessimistic about a certain stock.

At the time of writing, Coinbase stocks are down 79.67% year-to-date (YTD), Marathon Digital is down 80.02% YTD, and MicroStrategy is down 71.10% YTD, according to Google Finance.

However, S3 Partners says that while the pace of crypto short-selling has remained high, with $71 million of new short-selling over the time period, the pool of stock available to borrow is drying up — meaning that “prospective short sellers may be late to the party.”

“With stock borrower utilization at 91%, short sales in size may be difficult to execute, and borrow rates may make it expensive for new and existing short sales.”

Utilization is measured by the number of loaned shares divided by the available shares in the securities lending market, with a high utilization rate indicating that the demand for the stock from short sellers is elevated. 

On Tuesday, S3 Partners’ managing director of predictive analytics Ihor Dusaniwsky told his 82,000 Twitter followers that Coinbase’s short interest reached $1.52 billion on June 14, whilst MicroStrategy’s short interest hit $689 million. Marathon Digital Holdings’ short interest amounted to $181 million.

Related: Further downside is expected, but multiple data points suggest Bitcoin is undervalued

The falling prices of crypto stocks accompany the crash in crypto prices and the downturn in traditional markets amid sharp interest rate hikes and high inflation.

On Thursday the price of Bitcoin fell to $20,205 as rumors swirled of a possible collapse of crypto hedge fund Three Arrows Capital (3AC).

The recent price movements have prompted some analysts to believe a very long consolidation and accumulation period for the crypto market is to come.