In a 1 1/2-quart glass or stainless steel bowl, combine the fish, lime juice and onion. Use enough juice to cover the fish and allow it to float freely; too little juice means unevenly “cooked” fish. Cover and refrigerate for about 4 hours, until a cube of fish no longer looks raw when broken open. Drain in a colander.
In a large bowl, mix together the tomatoes, green chiles, cilantro, olives and optional olive oil. Stir in the fish and season with salt, usually about 1/2 teaspoon. Add the orange juice or sugar. Cover and refrigerate if not serving immediately. Just before serving, gently stir in the diced avocado.