The good news is that your use case means that pretty much any depth test will work well enough, try “CurrentDepth - CurrentDepth * 0.01 <= CustomDepth”. The bad news is that you’re bumping up against a fundamental problem in realtime 3d graphics, which is the problem of order independent transparency. Since UE4 doesn’t have OIT, you’ll have to do it the old fashioned and less accurate way with depth masking (which should still be ok for your use case). The problem is you need the normal depth buffer to do your depth fade in your material, which means you have to use a separate buffer to mask out your ocean mesh. There are faster ways than using custom depth in your material, but they all involve editing the engines rendering code.
If you set the ocean material to be two sided, you’ll need to set the vertex displacement material to be two sided as well.