1000001100111110011100011000100010010011001100101101011001011100100000000101111010010001010011100100001111010010111001101001001011011101101000011000010110000010001101111001000100111010111111010100100010000000111001001110100000011001110100010001101100010001110101001111110000000001000110011000010100100100110111010001000110010110010111011010001100100111001100010001100001011001011011110001111001000110 0111010001010101010111111000101101001001010011101011100110001100001101110111100001001010001010000000101000111101001110100001111101111011110111101001101110001111110100100011100111011110110010110100010010110011101110010111011011011010110000101010011010001111010110111100111010101111101011111101111011100001010101000000101100100111100011110001001110110010000001110110111011000101100100010001110011100100 1101011000100011100101100000111100010001001010101100001001101010011101110111110001101101110101001100001000001001111000001101010010100000101100000111011010101111111101111010000110111100001110001111010000111110101001011011110100101011000000011011101111001110101100111011011111011011001110011110110001110000111000001010111100000110001111000011101101001000111101100010111011110111010100011111001100001001 1001010010011110000111011011100011100101111010011100100001100110110100000000000101011000110001010011001001110110101110010000100010100000111010100100010100010000001001011100111100110101101101111001001010011010010010001111101011111100011111101010000111111100000100010010011101100100001110011001011000000011110000110001001001101011001110001010001010010100011111111101011011001000010001100000011000001111 1101000111011000101100000010001010000001010001110111000000001010101001001010100001111111110100000001000000001110001110011101110010000110111001111000100000110101101000101000101010010110110111111110111100101001111111100110111101111010000010100110100101110111101110110100100110011100011000001100001010001000111001000111110110001000100110001011001011111110001000000110010110011001110001000010010101001001 1100010100111111101110001111100001100110101000101001001111110001011100101100110001101101111011101000011000011001011001011111011001111111011100101001001111010110100100010000001000101011101101011001010011100100010100111100000101001101100111010010111100110100001011011100110100100010100001111111110010111110011010001111111110000100100010100000110100011110011100011001100001110000000101101010110010110011 0111100000001011101110101001110010000111100001011010010110000000010010011100101100001000010010111011110111111001011111110100101001011000001011001001110111001000001000001101010110101110001001101100001010101110011100010011001101011100111011000100010000101110001110100111010011011110110011010111000100100010010110001001100010100001111011011010011011000010110011111101111000010001011111111101010110011001 0000101000000110001010110010100010010001011111011111100111111011101110001010011111001001101111010111001110111111000010111101111001101000000100111101001110000011010111011110001101001000101111111011001010111111111110000001110101000000011100010101111110001110111111001100111111110110000010011101111011000101001001011110101111011000001101111111100000101011101100100000100110000100101111101001100010100110 1101010001010010100111000001011100001001001000010110101110101111010000100000101100011111101011011100111000111111011101101100111111011001110000011110001110111111110111000110011110010000001010100001010010111010010100010010000011101111011101000101101111100100110111111000011111011101000110001000011001011001110110001001100011110100100101100010110111011110010011001011010000011000010000111010100100010111 0101010110011100000011101010011111100001010011111001001111010100110011101100111111010011101000010101110000100101010111011111110101010111000100101000100010011001011001101000101111000110011010000011101000010001001011000100101111100001101001011111000011000111111010001101011000111011101011110000101100110111000001000001010100011010111110000101010110011110111001011001001111101101010111011100011010011010 1110010110111101111100101011010111101111110001100000010110010011100010101110000001001001100011100110010100000010110101000000100001000000001001010111110110000111110000011010010010010001101010000001001111011110011110101010110001110000100111010100100000110011100111001001000010010000010110110010110010111001010110110101010011001110111010110100111011001000111100101010110111011011011000001101100000011110 1010100101001010100011101111000011111000011100010010111101101000001110001101110100101000100001001111100001000010010110010110011000111110000110100011001111110100010111110100011110101110011101000010000011101100111101011011010000010000000111011110010001010001100100101111110110000111100011111001010101001111010111101011001010111111011101111100001101001111001000000110110001110110100010001011100110101011 1010000010010100010010111110011001010111101111110100100001001111001100010100111010010000001110100011011010101001110101001111001101011111000111101111110011011001010001001110010100101001100111110010010101110001001111001000010000011110101100100010110110100001000011110000010101101001001010111001101100000110111000000101000001000110001010110110111101100001111001100000000010011001011001011011111000101110 0110110000111111111000110100111001111100101110001001101101100000000001111011101110001011000100110001011100101011001010010100011001000110111111101111010101001001100101011101100100101001011100000011101100101000100111101110010011100000111001011010000110101110101001011000010111100110110010100000101101010111000000000110100100001111100010011110101000010010011101010010101001101100001111001100011101100111 1011010110011011001101110100000100010110000111001001011100110000011011010000011010010000100100000011101111100001111111010000101010000001110011010001010011001111100011011100111101000101100110011001001010100100110100011100100011100001011010011110100001100000000011010100110010101110110110000110110111010110010011010001001001000111000010101010101011101101010110111001100000101111010101111010011010010100 0110111000000010011111110110011101000001010010110000110100001111101001101011111101100101010001011001001011111110010000010011001000010100001110011011010011011111011101101101101110110110110000111001011010110000100010110011111011101010010010000001101011110010100110111111100110000001010101111010100000100011000100011010011010100011011101010010100001100000001111110011000001011000001110011011001011100101 1011011010011011111000010011100011011010101011110111111010011100001111111001111000000001111001000111010111110000110101110110010101010001101111011101100101010010011011110100101001011100000100111111110101100101100000011110100000000010101010111001111101101110000001100011111100000100100011110110000000111110111111011100110011010110101010011010011101101111011001010111101100111100011111000100000001010001 0100000000100001110110010111110111110101000100110100110011010001011000111000000011101000011001000011101011111000101101111000111001100000010101000011010110001001000111011001010101011101111011011110011110010110000010111100001110101001000101110001101010000100000011101000010111111101110110110100010000100100010000010110110000101010011101011110011101011111111101110001100100000000010101111111111101011010 1101010110110000001110101001100111100001011001101101000111010111100110110000010111010000000110001001101000011010111011111110101011101111001011110011100110110001010110001011111010110101101111101010101001000101101100101110101010000001110010011101110010111000001111000001000011011001001100000110000110000100011011001010110010110110000010001001001010101100011101011111011000000010010110100111000011101111 1000001011110010110000010000110001111001001001000101001110111111010110001101000110110011111001110110110011101000111111100101000001011000100001110001010110001101111110010011011100110011111011000101111011100111010110101110000100101110100010110000100111111110100110100010001011000100100001100111110110111000101000101110011101011011010110100001111001110111101111100101111110100001011011100001100011101101 1110100011111010100100101100110000111001111000010011100101110011001001001001101100111100010001000001010100000000111010010100000101110100000010111100001111000011000010111010111111001001001110011110000111111000110001111000011001011000001001010001100010100001111010011110111011101011101100111000111100011100001000101001011100110111101000010001001110101011100100100101100110010011010100001001111110010100 1010110010010111100010110111100101110011001010010000100110111101001011101110001110111111111011010110110010101010110010000110101001100110110101110100110001100100001100100110010011110101001100110000101100110000010000000110111000110011010000010001111111111111010011010100110100011110011010011110000000001110011000100101111001111111010000100111011100100101110011100110100011101110111110100110111010100111 1001011001001100110010010101111111010010010011111110110011010011110011001001000000100100000001011111101011101010101101011110101110110000111000110001011011111011111010101001101010010001110010001111001000111101111100011010000111011011101110011100110111110000011110110001001001000010010100100101100110001111010110110111110000100101000001111000101000100100001010010110001001101001011001110100110110100011 0100111100101111001111000010111010111010100011101010111001010000001001010110111011100001111100101010111011111001111001011101010001111110110101101010011011100100111101001110110011111000010001010000011101110000010000101011001011100000010001000100111000101110111111011110101111001101110101011011000010101001101110000101000010010000000011100100110111001110101001110110000100001100111010010101101010111101 0111001110110010100100011011011110101011011101010101101100011110110110101110101101011111100100001101110101010000010000000100100101101000101110011101000010000001001011100000101000110101001101111101101001101101000011000011100101100110111011011010000101001000001011100111110101000100101011011110001000111001000011010000110101110001000001011011111111101011000010111000000101001110101110010111010010010000 0000011010110110000101110011111011000010001100110001001001001001100010100111011100000111001100010011010111111011111011111101001011011011101101000001001100111001110011100001001011100101000000010001100001101110111110001100001001010001000100010000000110000110001001001101000011111000001110011111101010100100001001000001011000110111011010001010000100100011101111101000010110010010001011100110010011000100 0111110011011010000010111110011100001011100111110011011101001010001101001100101100101011110010101100110011001110011010000101001011100101100101011110110100100110011111000111010101101011000101110010110100011010000011111011101100101010010111010001110010001111111000101001110011111000111111010010010010000011000100110110101110011101011110010011110111001110010100101011110101010011111010011100000010100011 1000100111000001110011001001000110000001000011111100010101100100000000100001111011011010010010101100110110010111110101001100011101011110110001001110111001010110100000001111100000111010110000001100101110111011110100010000110010101001000010111101100110111001100010100010010111111000010011101000001100100011011010111110111010010111100101111010111100101110011101011111111010010100011111100110011001010101 0100111101110111010011011111001111100001000000000010011010000000101101000010010011100111001110011111100000100011101010010001100010111001111111011110100000110101100110001110010100111101111010011101011100101010010000101111110010001110100101111111111110110001101110010101011100011111110111100101000000010110101110000011000110000010101011001000110111000110100011001111001111100001000100111101100101001011 0100000001111111111001000100000011011110111111001001101011001000101101000011000010111111110010110110000111000010111010000011110101000111101100001100111111111011010001101110101001001100100000111101101011110101001110011111011111001000000010010111010110001000000011100000011001001101100001101010111000010101010000011011100011110100100011101011110001100010101011110001111110000011000011100000100101010101 1001100111111101000000010001110000100101011000010111011011111110000011110001001001011111001011010010111001111111000100111101000101001100111001100110111101010011111000011010110100111010011110100000111111010001001110111100111010011011110010101100100100011100101001011111111000111111001111101000000001010011100101001110101100010001011011011000011101000010110000000100101100000111110010110101001100111101 0100111101110100011101011111110010110101110110110100000000011111101100101111001000011101000010010101101100001001010101011000110001110011011011110111110001011010100111111001001001011010110001100110010110011111111101101101100011011111010101010001000110100111000101001111101011111110100010100000001100000100001001010011110001101110000010000101010011100111101011101101011010000101111001110001101100110110 0010101100000000001101011011101011000100100000010010100001111111100110011110010100000101100110010111011100001001011101111000110111111101000100100101000001110001110110010101111010001101011010001110100000111010010101110000000010110100101111111001010110111010010010100010101110111000110101110010010001100010100001101110101001110001000101000110001101011101111110010111101000110101000110001110010010101001 1110010111101011010010001001000011100111100111101010101100010010101110011001101001101100110110010100001111011111100101011011100000010101011011100100011100011111111001101000110111000101101010110011111000100010001011011011110100110110100100111110101000100000001000110101111011111100000001111110011000101110101101010000110100101101010111100100111101110111111011000010100000101110011011001000001011000100 0000001011100011111110110111110110011100100100111110111101011100001010100011000001111111001010111011110000011101111001010011010000011111111010100000000101000110001111011000110111111001010001010011000111111111111100100110101111111000111111101011010010010100000001110101100101111010000111011010001001011111001110101111111011110010111100100010111000011100110001111111001111111111011010110110001111110100 0110010000100101101100100101011110001100011101111000101010111001110010101010110001101000111110011111010000010000110101010100001011001000111100110011011100001011101001010100111101001111100000110111111110010101101111001011011000110000000101100111011011111011011011001000110000011011100000001010000101010011001000111000100010001011111111011100001010010110000101100111111000101010110011111000010011000011 1001101111111110010110001101100101010111100001011011010101001011101100011111111101100101110011100100110100000110111010011100011100100110000010001001001111001010100010110110001001101110010010001111010010110011010000000001000011000110010110100010101011101111000011001001001010000110011110110011100110001001001001000011011101101110000011011111001000101010110000011001001110110011101001101100000010100111 0011000111101100010001101110110000011000110000001000011100000100000000111111001000111111011011011000010000101011010011110111100010000011011001101000010100001000011001100110100001110010101011000000101010110011001100001010110101100011110010011010000100000100010010000001010011001010001001001011010011100101100010010101001011011001100010011111100100111110100000101010100110110100111011001000111001101000 1110101001011011100001000111101000110001101101001010000010010111111110101101111110101011111001111000010011100101000011000101010010010110001110000100001110010010101011100011001110100001110000010011111010110111100111000110010001000110001100001110000000011000000000001111100111100101011110001001110101000001110001010011101101101111000010101100100001001100010001101111110110101111111011000000111111111100 1110101000000011010010010000111110100001000101000100110111101000110111101110101010111010010111100000111000100101101001010001110000110100010011000111101110101001111100001111000110011110101001111101010011001100010001001010100010110001100100011101010111011000000110000010101010000000111001001000111110001001110010010101010001011101100010101000101100110101001000001111101111010110000000001111100101110100 1010000110001100110001001110111010011010001101100100001111101010010110000110100001001100000100101010101100000000011100111000011110100001000111110111111000100001100100011000111101010111101111010101110111100111101101011010110001000100011000011010001000011100000000010010010000001000111010111101100001000110011110010101010010100001000010011000001000010101111101100011110111100001111101010001111011000100 1101101110110011010101001000011011000111100111000001110000111111000101000111111110111011111000111001101000101110110111110010010110011100110100100110111100111011011111110000010100110011100110011010011010111011111110010110110001111100111101011101011010100011101010110000110111001000011011010110011000110011110100101011011010001101100110100011111110100101111101101001110110010110101001100010000101001011 0100000110011101011011100101000110001101110101001001100000111010010110010100011000101111101111011101000000110100100110011000110100010100011001000011100101111011111011110111010111101011011010110010110100100101011011011101011101110000001100010010100110001011000101110011110100110101010110010010111000101000111101110111110000111011111011100101110111011000101011110111011110010100000100000010111000110001 0001101010100101111011010000000011011011011010101000110101001111100101100010100100111100100011010110100110010100100010010010001111001111100110001100011100001000011000110101010000011111001111011011101010110001010101011111000001000001010010010111001011011111010101011111011100100000110001111100101100001101000101101100001111111010111110001101000001001111000100010101100101001011011110101010011011001001 1010111110001001000101010111011000001111111010110100101111010000000110111111000100011100011011100110010001101110010001000111100011010110110011110101010110010100111001011001011101010110011001011001011111110110110011001010001110110110011010111101110001000111101101001010000110100000101111101000110011001110011001000100100100010001011001011100110010110000001000010100110010000111001001111001000000011110 0010111111011000010010111000101101110100010100010001101001100001100100100001010100000110100101110111110000011111101111100010111001111110101100001011111001011000110010011000001101000110011100110010100111101010001110001000100011000010000110110100110001001010011001110001110011011101100011100110011001010001100011011100011100101000000000000111001001001101010000111100010000111111111111010111001110111111 0000000001001100110011000011011001000101100101011110010101001111100011110010011100101100000000110001101000001111101011100001000000011100001010010100111101110101010111001111100111110111111111110010000111011001101101010010100000111001100110101111010011111010101111110101101101010100000111110000010000110100110000101000011000000110010001001110001110100101000001001010100111010100001110001101101100100101 0000101100011000100100010010110010110110010100001110000000010001001010110101100110000110011110100000011100010101001010111100001001000101011101100111000000001001000011000010101110100111101010101100101100110100110000111110110001100110111000101101100000000110101001101011011111010100100110011111100001101100110110110101111000011111110010010100001001010011010110011110001101111110111101111100100010000000 1011010111110101011111100001010011000101010110010111111111100100100110100111110100001101000100110101100011110010101010001011000000100011101110110101110111010110111010111110110001011000000000100010011111111111110101101011100101100111100111001010100110000000111011111010000001100010000111010111011011110110100100110010101000010111111011101011101001111010001011101010101100010011110001001000011010001101 1101100011110100011011100110101111010010110111111011001000110101010001101100001000111011100111100010100010010101000010101100001011100110000100000110011010110111011001110110011000101011001000000011110010011101000111001011000100010011010101111101100110010110000100001000110001000100011010011111010111111011110010111001101111000110111101000100100011110110100000110110101000100010010111001011110010011010 1100101111010101100011111111101100011000000110100111101001011100010011000010001101000101010011001001011110011001011110001011111100000010011111101100110001000000010000010101010101001010000100110010111001100010101101011110000110011001101000000000001001101100110111100011000010111111110111000001100000001110001111011100011101010000100000001001101101111100101100111000011100101110011010000111110011100011 1001000101100101000100101000010110011011111011111010000000000011110101111111101111101000001011101001110101100101101001101111000101101100000010100110001110100110011001100011011110010000000110110001100110100110110010110111110101110010000111110010001101000001100001011001011110010001110100101100001100110000000110101111100110101010010010010100010001100000001111100110100011111001111011010101000110011001 1111001011010001101100011101000101110111001110011101000010100101010010011010101101001001111101100001100010000110000101011110101000010110001110111000000100011010010000110001010101001100110110101100101100100111010111001001000011000011101111110100010011111011001010000010100110111000111011001001010100000000111011111000110100001000101000000011111000010100011011000100100101000001011101111101101000000100 1111000101001001111010000011001111101100001011110110110111110101100111111111101110011111101010011100011000110001101000111110011011000101000011100001001010101100001110101011101101100011001110011110011100110100001011001011011010101111000010011011100011000110100000010110011000110100110011000111011101011000010010111000101001101001111100010100110100101111111100111100011001100111011001100010101101000110 1010000101010100101110110101001000111010011100100110101110101010010010001010101100001110001101000101110101101101111000011011101101010110011110111010010110011011010010101111000001001011001110010011110001111101011011101101111011110100011100010001010001100011000111111011100011101110011101110100111111011010011110100110000010101010101000011010010101101011110001010010110110110001011010110001000011010110 1100110111101011110101101011011110101111100100011000100001011011110111001001100011000011000101101011000110000000010011101001100110100111011010110011011011111111001101101000010010000110111011001110110100011111001110111100011110000000010011111011000011011110011101000001100111011001001011001010111011000010110010001000010101001100011110000110001010001100000001100010001101111000110010110001010001010011 0001001010110111111101011111111101111100011111010101011001100010001110110111000001011100011111111100111110111010001101010111011011010100001100010011001001000001000111000001011010101010101101011110001110001011110010011001010001010010110001010100100010101101000111000010100000001001100100010001101010100111000100011010001010111011000110100110010111111111010111001111101011011000101110110010100000110000 1001011101000010111001010001001100000101110011010010101000100101011101101110000001110010000100111000101000110000110100101100110000101010001000010011100100000011001000110111000101001110111001111101011000100010110111110100000110011111100010100010001010011101000011111001110111011101100001101100100000010100101001111011111110100101100011010101000001001001011111111001010001000111000100111110101000101010 0111110101100011100000101010101000011010011001010100110101111101100101101001111001011110010001111100111011101110011010011111100000010000101100111011101010111000101101001001110111101101000011000010111101011011001011101110111100100010101001110001000011111101100110001011010010110000011001000011001100100000110011010000110111001101111110101011100100110000000000011000101101000000100100110100001011001011 0100011101110000000110001000000011100110001011011011111100010110010101100100010100010110101111001110111110100000111100001001011000011111111011100101011100111010110000111010001011101110101110000000011111011010000100011000111101000101110011011100000100101111011100111111001100111000000010000010101000001010101001001001000100111001100111001001101110101100001101101110101110101101111010101001010100101100 0001010001010100110011001110011110010010101010101101101100011100111101000011001001001111110011000101111001110101111010010000001001111100000110100111011100111000010101000111001110000110000001010110000101011000101100000101100110000011111111100101001011101000101000100011100100000001110010011011000100011111011001110000011100100001100010100100101111110100101110000110010110000011100010110000000110001000 1001001110010111000110100000001100110011000100001110110100110000011011100101011110010001011010100010000100010100001100010001000110001001001010111111000011100111101101000100110111001010111000010101000110111100101100001000100001110100111000000001000010001101011011000110011010101000100110110010011110100000110101000100100010110101010011100111011111001101111001111001001111001101011001001000101111111111 0101011100111100111010001110101010001001001110101011100011011010111111010101100111111011011011001001010000110101000110001100101100101011010001000100001111101010010111011101001100001101011101101001101111011111000111010010010000001011100110100001111101010101101011101111110110111110101111110000001111001101011000100001000011101101101111001101010101000001110100000111101111111101010000000011101010000001 1000110100011110010101100001010001100000101011110011110110111010010111001111101101010000100000101010011011000101001110110111111111010101101101001000100010111011010000100110010110100001000101101110100101100111001011010000000001001101000001001100010100010010111111100001100100110010000100000110001000011100000111100101000111110100001011100000111001100000110100000000110010101011111111111000011110100110 0011010001101100010001100111000101010000110100000100101111111111000100110011101011111111110111111010010111110101110000100100010111000101000011011101011011011000100100100010000110010111111111000110110101111010001001001011011010001000001111001100100010000010001100000001001000010011011111001101011001001011100000101111111011010001101110011100000000011101110001111011011011101110110100011110011010001000 0111111010100111011100011100100001001110011100110010101000011001111110111001011011100111100100000111010101011100001110101011111110010000001000010001000010110111100111101001101001111011001110101010100100111110101111000111000101111001111000010011011000011100101100001001011110100011011010111101100110001111111111011100010110001001011100110111110000001110101111011001011011010001100100001000111000100111 0010000101101111000000011110100010110111011011000001111000100001111100101001110011000111100010101101011101010010000000000000000001111011001000100110100101011100011101010111000001101011000011011011100000011111110101011100100010100010011101001111000111111010101111001101000100100000000010100111110111101010111000001111001001001010000001100111100110010001000010100011100000001011001011011100111101100100 0110110010011000001101000010101110111001001101000111101110101100111101110110001100111111110011110110110010000010000101110010100001101000110110100111000110010001001110110010111100110110111111001000111110111110000100000110000110100000101010100000010000101011100001101111111010001111000110010001001101101101011110111101111101111001111111100101110000000010111001100101010001001010000000101101001110011111 0111001101001110110111110101011010110101110101101110011011111111111100001011011010101111101010000011000001010110111100101001011010010010110101100110100011111000000110000100000101001110011010000100000111110110010000010111011001110111101000011101011010000111010111010010010010111000001000010111001000001111111000000010000011101000011011000010110010100101010110101100111000101110001011111100011001000111 1110001001110111001111011100011011101111101100001100110101111100010101101111011011111010110110000000000100101011110010101010111001011001001110010010111101111010011011001000111111101110000100100000100110011000000110100010011001001111000111100101111011110010001010101010110001110110101111110110110100010110101001010100010101010110111100101010111011111011101000010000011011110010010111111001101100010011 0100000101011000000110010000010000001110011010001100101000100110011011010000010101111000001010011011010100110010000011011011110001011000000011010110110001001000001000001101111011111111010011011101010010101100000011010111110100000110100101100111101011001100000100000000111011010111100011001011001001010000010100011000100010001110111101011001101010011000110100100000111001000110111000101001110100011111 0101000101011100100000000101010011001111101100001011000101100010101110011011110100011100000110101010110101111001110000111100100100011100100001111110011001110010010000111100100100110110110111100000011011001110110110011010101001000011100011010100101010101001100101110001110010001111111110101101101100110101010000111110111000100010010011001010001110010000010100100000010001111110100000001011010101101011 0010110110111001000001110110101101011101101000110101000000111011010011001010100001000100011001110000011010001000011110110101010110101011000110110100100001011000010010101110001110100101111111000111011011100111001100101101001001001011001000000111011110111111110100101110011101011110001011011110000110100000100010110001111001100110010110000000111010111001110100100101010011011110110011101100111110101101 1010101000101110100001000011000100101010011011000000111110100110100011101101100001000000100001100111100001111100100010100111100111000001110000001011001111000111101110001111010000000100001101000011001100001001110000001100100010011001000100101011101101111110101101101111000010110010010001100011111111110000010110000000110011100000001101011001010110110110101010000101110101011011001010101101110110010110 0001010001101111111111001010110111101111001001101010000010000011001111010000001001111100111000001000100010101011010111111101100101001011001010001110000111000100101011001111101010011101110000010111100111101000000100001000110001111011000000011001010011011110011000110000010011100100100001111001101110000001000001010010000000001001101010111110110110000111011001010011001011101001011101011110000111001001 1010100001101011001010111100111111110011001001110101001111110011100111111010011111101111110011001100001110000100101001000100011111011100001000001010100000101110111011010110100001000000010011101101001110011101101101100001111101101000000011011111001101010101011010000101101100010010101111110101000010001010100100100101001111011111000000011001101001001100010001111110011011011011010101010000101001001101 1100101011000111110010111001000010110001100100101111010010110110000100110110000000101100101011100111110101001001101000110100111000111010100100111110001111011100000101001100001010101001000001010111100010000100110101010111110111001110011011001100101110010011000101000111001100011101111111110010101000101100010100011010111100100000100101101100000100100100010111110011001110010101111111100000100101110111 0010100111101001010000111001010000011100000100001101011100010011100100110111000010100110010100001111011111101000101000011101011100110011000111100010100110111100000010101011110000110101110110011110110001111100101000111010100111111000100000100010001000100111010000001000110000100110010011001000000000011010000110111010110101110101111110010100110011111011011101010110010111001110111101100000000001011111 1110100001110101111110000110001011110101001101000011100000001010001011111000000010100000111101001011011001100000100011011001010011111011110111010001010010100101101101111100111100001000011110011010100100000010001010111000000000101110010010110000010111011110000111011000001001100100101111110001011000000001111110000001100010110101000100111011011000101101001001001011100110101011010111110100000011100110 1101110010100000110001110001000110010110110011101101011000001011100110010100000000010101110011101111110101110011100000101001101110010010010101000010100110100010110000111100001100101011110100101111100011110010111000101100101111111101100101010001110001010010011010011110101111001000111001100011101100101100110101101110101110110110011111101000000101100101010000100100100100010001000010001100001100110100 1101010101010110111101000110000000110010110100111110001110100110001011100010010110001101001010111100111110101110111111001110111100011100000010110100000111101100111010000001011010111110101100010000111111001110011111110100010000000110010000010100101001100101100100111110010111000110011010111111010010011000011110100010011010101010010100110100001101011110100110111101101001110110100101010011110011110010 1100010010110001101010101101100100010001111111000100111010100111011010011101010000010000001000110101000010100100101011110010001111101101111100000110100001101110010001111100111100100001100000110000100011111010111110001100011111001010101111100001011101110100001111111010010010011111011101010000111001100100011010101100010000100001001111011010001101000000000001000100011101011000011110110101000101111010 0111111100110000001100100111110000011100000010001010111000010000010011000110011101101000010000101010010110101011001011101101111110010000000000101001000010010101111101010001000010000111010011011001010001100011000011011000010000100011010110000111100111111111110000110001100111011101001110110010010101101110011101110001110011101011011101100000010111110010101011011001011000101101001100110010111011000111 0100010111011111000101110110010010001110101011001001100010000000101111010110011110010101111111110011111000011101011100110100000001110110100111010111000000000101101001110011011010110101100011111001100010111001011110111011110101110011000111000111111100101011111110001000101000011111111011101011001001110000100010000001010010000110001000111110100000000110111000100000010100001000001000001110011010111110 1111110111100101110110001000111101110111101111100100001111100011000000001001010111011011011110011100011101111000101000000011100001101110111001000001110101000101010110001111101110100000110000101101110101010011000001101011000101101001110101010111110010001011000011000000100011010000000100100010001000001000111000110101001100010001010111110101111110001010101000000101010101010011001011100101100110001110 0011001011000011111001101001100100110010001110111100110001000011000100000000000001010001101011011100010000110001111100110011101000000010110001100111100111110001011100010111110101111101011000001100100010111111000110100101111010010100010011001110100011000100111101100001101011001101110001011101001010111001111000000010100000110100111101011010101011000101111000001011000011111111101111001110111011110011 1110010111011111101010010001110100111111000010001011100011101000001111010001110111010011111111001110101000101011110111010110101101111100101100101111110001000010100001100100010000111001111011010010101010011000110110100101110110000111000011100010100001001010100010101110001111010110110000111111100001000100010110101100111111111001001000010000010110011111101000011110100110000001100010110001001100010110 1111001011011110011010101010010010101110011100100111010000110001101011100110000100100100100011110000010100010110000000011110001100011010001010011001110000110011011111000011111001000000010101011001011000000110011011010001000010000101111001011111010100100011011001000100111100010000111100100011100011101100100011101011111011000100110010100001110110110001110111001110000000111011100110000000001111100110 0000100000010101001110110111001000110001001101110010110011000110000011111011011101011001100100100110110101001100000011101111110110101010000001001011101010000001001100101110000110011001100011110010000010100001101011111010110100000000010001001000000111111001100100111101111110001111001010001011100011111101010101101011111001101000111010000100110110001110111000100101001111001110111011101110100111100100 0011000000011110000011101100011001110011110001110101001011010000110001100101100100000110101100111011101001110110101010100101101000000000110000111100101110001110010001000010110111001000111110111111001011011001000111010111011110011100011011000011001001001110011011110100110010101010110111001110101111011100000111111111101100101000010100101000001001000000110010001010101010111101110110001101111001011101 0110111001100001011011010101101111101101110010010011011001101110000100110000000101001101000100110011010101100011001011001011110101011010101101001110110000010010001101101010110101101001011000010110101100111011000111000110110100111110110001011001110000001000010110010011010011100000110011001101101101000110110100010001010000001111100100000000101100111110110100101100000000100000010011011011010101011111 1100011010011001111111101011001000011001001011101011011111010111101100111101111100100011001011001010011111011101000011101011101101010001011100001111010100010100110100101111001101010100100110111111001101100000010100100101000011111100101010110110011000100110101100100010000111001111111101100100100010011111001010000011000000100001001111101111111000111111111000000010111111101110100111100011010110001000 1100100101101110000011010100011001010000110100110110011101001010000011000011110100011111010100011010111111000101101001010010111000111011110000101011001110101100111000101100010100000101100100101001101001111110011111111010010001001111101001110000100010110111111111001100111011011000000100011100100011111101101011101001110000010000101101010100001001001000010101010011000110111010000110001101100111110001 1000111111110110001111001001110111110000110000110110101101111010000000000111010010101001101111010001110010110111100010010101000101110101001111011001101110000100010011001100010111111000010010101010011011110011010011100010000111000100110011110010101110000011001001110100010000001100001110100111000101010001100010100101011000101010000100101100001000101010010101011101011010110100110001100100010010010011 1000110000110000000111001010000101100100010101010011110110100001110011000010101010001001110001011001100101000001101110101000111101011010110011110001100001010000010000110001111001011111000101011100110011101100010101010000011000101110110000110000111100001001000101011000000010011100111011100100100100011000110000111000011101000101010010001110001011010100100101011011100101101100111100010110100111100000 1010100011001011111000010001100011000000001101101010001001000110001000001111000001001111011001001111000010111011100001101010001111100101000010100011000011110011011011010010001111101100111000010000001010011111100100101110110001000000110111110011010001000011010100011100110001110011100001110011000000111011110111001001011011010000110100101111011011110010100111101000101100101000010111101111110110011101 1001111110000100111100000100000001101000101101101111110001010100111011011001101100010000101110111001100100111001100011011000101100011000011001010111101000011001001001101101011100100011011110011010000100001001010010001010011010011011000000001000000101001100001101101000101010010011101000000111000010101111010011000111001101011011010010110111010010111010010110001101101010000111011011110100000100001100 1101101100000000110000100100110000111110101010101010100000001000111111011011100110001110010111100101111110100010101110101111010000010110101111100100110000001110110101011001001110110101011010010110000011100110111001011010011010000101000001010111010111100100111000000000100101101110110100011010110101100011110101000001000111100110010011010001000111011100111011010011010110100011000111110010110000110111 0100000011110110100001101011111000010101001000110001001111100111110011010111110110011001010010110101000011101100010101011100010001011100101111111111110101010001010100010100000111011011100010111100110110101101011111111100100111110000101011110101000001001000010000011001101001010011101011110010110101101101110010011001011001001101111100101110111110011111000110110100010011001010010100001100110101110110 1101010010010010110010111111001010010111110111100000111010110100111001011110110101000110101001111101100111010001001000001110010001000000101010111100011000011001101011111000111101011011110101011000101110011001000010111000111011100000111010100111001000000000101101010101001100101101110111001101001110000011100000001011010111111111001010011011000010010000101011001001101110010101111110100001100101101001
cTrader AlgocTrader

【cTrader】ストップロスが決められない人達へ【Tools】

1/14/2021 3/24/2021

5年以上前の記事です。内容が古くなっている可能性があります。

ストップロスの位置がわからない!

ストップロスはどこに置こう?

エントリーしたいけど、どこにストップロスを置いたらいいか迷うということありませんか?

「そんなの迷う時点で半人前」とか言われてしまえばその通りなんですが、たとえルール通りにストップ決めてトレードしてる人もきっと一度はこんな経験があるんじゃないでしょうか。

(ajinori昔のトレード日誌より抜粋(泣))

もちろん本来はこの負けは負けで受け入れて、そのままぶれずにルール通りにトレードを繰り返すのが正しい姿勢です。

しかし、あまりにもこういうトレードを繰り返すと「もしかしてストップロスのルールを見直した方がいいのかも・・・」「いや、いっそのことストップロスのルールなんて決めないほうが正解なのかも・・・」って気持ちになることもあるんじゃないでしょうか。

 

じゃあこんなことを試してみては

そんな気持ちに陥ってしまったときにもしかしたら役に立つかもしれない手法を紹介します。

というか昔ajinoriがそんな風に思ってしまったときに試していた手法です。お勧めというほどではありませんが、一応、使ってて利益は出せていました

もちろん使い方次第なんですけどね。トレンド判断は間違ってないのに、ストップロスの設定が下手すぎて負けてしまうという方には相性がいいと思います。

 

ストップロスを散らして注文してみる

手法というほどのものでもなく、わからないなら適当に何パターンも入れればいい、という単純思考です。つまりこんな注文をします。

わかりますかね?エントリー時にポジションを分割してストップロスとテイクプロフィットを散らしてます。図ではラベルが重なってて見えてませんが、0.1Lots×10ポジションで合計で1.0Lots持ってます。手動で入れるのは大変なのでcBot化しました。

 

SplashOrder

機能概要

以前、公開したEasyEntryと同じような形でエントリーできます。起動して、(一番小さい)ストップロスにしたい位置でクリックすると、設定した数に分けて注文が入ります

なお、EasyEntryにあるような自動ロット調整機能と待機注文機能はありませんのでご了承ください。

 

パラメータ

Whole Lots

全体のロット数を指定します。これを分割して発注します。合計がこの数値を超えないように、分割後の端数は切り捨てて発注されます。

Split

いくつに分割するか指定します。あまり細かく分けすぎるなどで1発注当たり発注量が最低発注単位を下回ると発注されません

SL Step Pips

何Pipsおきにストップロスを置くか指定します。

Risk Reward Ratio

リスクリワード比を指定します。この数値でストップロスからテイクプロフィットが自動的に設定されます。

Traling Stop

トレーリングストップの有無を指定します。Yesにすると勝手にストップロスが動きます。

 

ダウンロード

ダウンロード後、ダブルクリックしてインストールしてください。

cBotなのでチャートに適用後、発注したいときに▶を押してからチャート上をクリックします。クリックするといきなり発注が入るので注意してください。

 

ソースコード公開

特に説明したいとこがあるわけではないんですが、短いソースコードですし、cAlgo初心者の方には勉強になる部分もあるかもしれませんので公開します。

マウスイベントの使い方や、チャートオブジェクトの描き方、Async系発注の使い方なんかがもしかしたら参考になるかもしれません。

また、プログラムできる方なら、自分のルール仕様に作り直すことも可能でしょう。SLだけ、もしくはTPだけ散らすというのもアリかと。その気になればなかなか検証しがいがありそうですね。

using System;
using cAlgo.API;
using cAlgo.API.Internals;

namespace cAlgo.Robots {
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class SplashOrder : Robot {
        [Parameter("Whole Lots", DefaultValue = 1.0)]
        public double WholeLots { get; set; }

        [Parameter("Split", DefaultValue = 10)]
        public int Split { get; set; }

        [Parameter("SL Step Pips", DefaultValue = 5.0)]
        public double SlStepPips { get; set; }

        [Parameter("Risk Reward Ratio", DefaultValue = 3.0)]
        public double RRR { get; set; }

        [Parameter("Traling Stop", DefaultValue = false)]
        public bool IsTraling { get; set; }

        // --- for order
        private TradeType _tradeType;
        private double _unitVolume;
        private double _minSlPips;

        // --- for line
        private ChartHorizontalLine _slLine;
        private ChartHorizontalLine _tpLine;
        private const string SL_LINE_NAME = "stoploss_splashorder_line";
        private const string TP_LINE_NAME = "takeprofit_splashorder_line";
        private ChartMouseEventArgs _mousePos=null;

        //-----------
        // OnStart
        protected override void OnStart() {
            var unitVol = Symbol.QuantityToVolumeInUnits(WholeLots) / Split;
            if (unitVol < Symbol.VolumeInUnitsMin) {
                Print("unitvolume (WholeLots/Split) is too small!");
                Stop();
                return;
            }
            _unitVolume = Symbol.NormalizeVolumeInUnits(unitVol, RoundingMode.Down);

            // --- place line
            _slLine = Chart.DrawHorizontalLine(SL_LINE_NAME, Ask, Chart.ColorSettings.LosingDealColor);
            _tpLine = Chart.DrawHorizontalLine(TP_LINE_NAME, Bid, Chart.ColorSettings.WinningDealColor);
            _tpLine.LineStyle = _slLine.LineStyle = LineStyle.Dots;

            // --- event
            Chart.MouseMove += DrawLine;
            Chart.MouseDown += ClickOrder;
        }

        //----------------
        // mouse move
        private void DrawLine(ChartMouseEventArgs args) {
            _mousePos = args;
            _tradeType = (args.YValue < Bid ^ args.ShiftKey ? TradeType.Buy : TradeType.Sell);
            var distance = Math.Abs((_tradeType==TradeType.Buy ? Bid : Ask) - args.YValue);
            var slMin = (args.ShiftKey ? distance / RRR : distance);
            var tpMin = (args.ShiftKey ? distance : distance * RRR);
            _slLine.Y = (_tradeType == TradeType.Buy ? Bid - slMin : Ask + slMin);
            _tpLine.Y = (_tradeType == TradeType.Buy ? Bid + tpMin : Ask - tpMin);
            _minSlPips = slMin / Symbol.PipSize;
        }

        //-----------------
        // mouse down
        private void ClickOrder(ChartMouseEventArgs args) {
            var decimals = Symbol.Digits + (int)Math.Log10(Symbol.PipSize);
            for (int i = 0; i < Split; i++) {
                var sl = Math.Round(_minSlPips + i * SlStepPips, decimals);
                var tp = Math.Round(sl * RRR, decimals);
                ExecuteMarketOrderAsync(_tradeType, SymbolName, _unitVolume, ToString(), sl, tp,
                    i.ToString(), IsTraling, (res => { if (!res.IsSuccessful) Print(res.Error.ToString()); }));
            }
            Stop();
        }

        //------------
        // OnTick
        protected override void OnTick() {
            if(_mousePos!=null) DrawLine(_mousePos);
        }

        //-------------
        // OnStop
        protected override void OnStop() {
            Chart.MouseMove -= DrawLine;
            Chart.MouseDown -= ClickOrder;
            Chart.RemoveObject(TP_LINE_NAME);
            Chart.RemoveObject(SL_LINE_NAME);
        }
    }
}

ソースコード非公開のつもりで作り始めたため、(最低限の整形はしたつもりですが)見にくい部分はご容赦ください。コードの書き方や変数命名規則なんかはあまり参考にしない方がいいです。

コード内コメントもほとんどありませんが、わからないとか説明してほしいというところがあったら言っていただければ説明します。あと、間違い見つけたら教えてください。


まだコメントはありません

新しいコメント

コメントは承認後に公開されます。承認まで次のコメントは投稿できません。

cTrader's Life

© 2026 ajinori