Edit in JSFiddle

function getStockInformation(share) { // simulate realtime stock information
    return $.ajax({ // return promise
        url: '/echo/json/',
        data: {json: JSON.stringify({stock: Math.random()*100})},
        type: "POST",
        delay: 1000
    }).pipe(function(output){ return output.stock; }) ;     // FILTERING
}

// The asynchronous task
function buyOrSellTrigger(share, minValue, maxValue) { 
    return getStockInformation(share).pipe(function(value){ 
       if ( value < minValue )
            return 'BUY' ;
        else if ( value > maxValue )
            return 'SELL' ;
        else {
            $('<div></div>').html(share + ' - HOLD').appendTo('#status') ;
            // CHAINING: Deferred.pipe() returns a promise
            return buyOrSellTrigger(share, minValue, maxValue) ;  
        }
    }) ;
}

var minimum = 10, maximum = 90 ;
// set a trigger for buy/sell google
buyOrSellTrigger('NASDAQ:GOOG', minimum, maximum).done(function(advice){
    $('<div></div>').html('***** NASDAQ:GOOG - ' + advice).appendTo('#status') ;
});
// set a trigger for buy/sell apple
buyOrSellTrigger('NASDAQ:AAPL', minimum, maximum).done(function(advice){
    $('<div></div>').html('***** NASDAQ:AAPL - ' + advice).appendTo('#status') ;
});
<div id="status"></div>