Compression is useful for small files and for seldom-used files like system recovery files, but it does lead to many many fragments.
Compressed files have lots of fragments, each (except last) 64k in logical size, but 4-64k compressed. See
https://en.wikipedia.org/wiki/Ntfs#File_compression So any compressed file over 64k is fragmented.
So I would like to suggest that MyDefrag look at the distance on disk between the physically first fragment and the end of the physically last fragment of compressed files (less any unmoveable clusters). If this is less than the file size, then the file should be treated as already defragmented.
This will avoid moving around fragments which are already contiguous or nearly so.