1111011110111010010011001100110010101010001100010010100110000000100110111110101101101011111101010001100101001110111011100001111110011100001110011111001001101101010110000011011100101011000011101001101010010110101101001001110001110101100110110111100111001111101100001110101000011101110010010111010010000010001001000111100001111101100011111010101110100101000111000011110001010010111100100110101110011110 1010001111100101101010001111001111010011100101100100000111000011101100111111000111110100010111111011011100100100000101100100101011011001011111011101111011000101111100000011000101100100000100010101010111000000010101101111011100010000111110001101101100101100101111101010110001011000001011100011011011011110110111100011010001111110100010011101010101010101001110000110001000000000011111001011110101111111 0010101010000001010110111111010010001001000110011110111011000110000010001111011010001010101110010100111001101000011011011001101111011000010100110110000010010000011111100100011010001111100010100101000101000010101000101001100101110111111100000011000001011010001000111001010001001101111111001101000110110001110111001101010000011110001010011101000001110001011001100010000111100000001111111000000001001111 0100101001001010100101010100101011110000010101010000010011000111010100011100101101000101100110111101100010010110011000010111110101011101110101000110111001001100001010000000010111011000011111110101100001100001011111110110011010101101110010001100100010010000011110100110101001111001100101111011000010010101101000111001101100100101111000000010010010110000010000110111011110110110011001101111101000101100 1000000011010111100001101111101101101001110000111101111100100111000100010111100011101100110001011000101110010001111010001010111110010001000101101000001011111001100111011110110111011001010001000110101000000011110000011111101001101010011000001000100110100000101000110101000011001111110101101110010010101000100011010000101101111110100111111001111111100110111101100100101001000110001001100001100010011011 0101010101010010001011101101001110111110011110000111110001100111000010000011011000010100101000100110100110010110001110010110101110000110111000011101001010111001011110100000000111010011001011010110010101101111100100001101011011000011101011010111000111100110011000101011011111110011101111000001111111100100000101010110001010110111100101010101010001001001010011000011110100101001101110011001110010001001 1101010110000111000111011111100101101111001010110000111000101011110110101011001011110001111011111000010110011010110101110111000110010111110110100000100111000011000001011010011101111100010000000010001111101011110011010000101110111110000010110010110011101001111010110110010011110011001110111101101010100100100011100100111100000000010101100010101110010111101011111111111110100111111001000000000110111001 1110011100011010100101101011011000001001000001011111111111011101011011101000001101011010101111001001000100111000001000000101000011011000010100011000111110011111001010101000111110011101011110101111010100101110100001001001100111111110101111100101010100100010101110100011100001000010011001000011100001010110100101111100011100100010100101010001010001000111011000100000010001111000001000010101111110000011 0000111011010110100010001010010011111101101000001001110101001110100111111011001111001000000111111011001111110010111011101011011100010010101110000000000110110110011110000111010001001100111011010011100011001110110111101001010001111111110010000100110010000010011011101000100111111100111100111111011111110011001011011101011001000111111010101111100111110111100010000100111010011001011001101101011100001010 1101001000010101000001101001100101110011011010100010000000100010011011000100010101100011100101111011101010010110010111001111010100111111101110010011101001000111011110111110010010000000101111101101010111010111111110011011111111100001110001001110100011110000111111101110010110001010100110010000101101111000110111110001111000011011110110110111101111011010000101000110010110001010010110110010100010000110 0100000011000111001110011001110011111111100010011010100111111110101101101001011001001010100011000010101101100000010111011011001111111101010111000110001011000010011011111100001100000001110000011011111011100000111011111000111001010000101101001110111110111101001110101010000010100001011010110101000100111111111011100101100111000100000100010000101001000010110010110110001111101110001001001011011001000101 1010000011000100100111100101010000101111011110101100101000000101101000010001100010110010010011101001100110011011000011111010100011111101010110101011110001000110111001110100111110001110001110001011101101110011000000000111010010101001100101111111110001100111100101010111000010010101011111001000110000000111011110001111011100101101001100101110110001000000101010101011011111001010101001011010001010011001 1100111000110101011101101101011010110010101011110010101001101100101011010000010101111110011000001100010001010111110000001001110111111111101100111010001111000000100001100100010100111001111101011011111111000110100010010011000001100001111000110000001110100011011001001101010101010011010011101001111111111011010110110111101100000111110101111111010011101001010010110111100110011011100000011011101110101110 0000010101110110010000010100011110101110010010100000000001001011110010001001100101000111000010011010100001001011101110111000110011001001011101100111111001000010011001100010110010111101000101110001100001101101011011001111111010000101100000010011111101010101001111001000110001010001001001000010110110111000010001001001000010110001110000100101011111000111110101110011010110011101000001111001101000110001 0100110100011001100101010101100100010111111011101001011001000110001001000100011001011100111111011100011111100111111110011101001111011101100000111101010101011001111001011011000100110010111100000111001000000010001111111110011111010100111101011101000101010111101010011111011101111100010100011101000110101010000001010010101000010101011111011001101010010100000011111110010001100111000101101000110100000001 0111111011110001110101111100010110010111101001010010001111000001100001000101011011010111010010110100111011011011110001101101000011110100010111011111100001001100110111001000001100010100000001010100110011111100101110111011101101100001110010011000011111100110111100111011101001111010100010101111100000111100011011000011000101100000101010110110100101010001000000111101100010110001011110111000000110111110 1000011110101000101000101000111110010001001010100011101101100101000001010010000011010101001110011111110101011000110000111110011000110001011100010010100100000001011110111011001111000010010001001101101010101100011100011000101111101101000001111100011111111000100011110001010100110001010110001110010001110110111100111010100100111011010100110001111110101010110101110011001010010010111110010101110001101111 0100000110100100011000100000110111000100000001110110010100101111001000100111010101010111101101000100101000110001010011100010101010111010101100011110011101010001001101011010111101110110011011100111110110110100001011010010000010101001111110101011111101111010111000000111011010001100011111110011110011111111101111111111010110001001000000011011100001010100111011000000010000000111011111001000100110001001 1101010111010110110111110001100110010110000010011110101111111111101000011111001100011000011100010101101011111111110101101010001010011000100111110001100101000101100100101100001000111111101010000000001000010001101011000000011101111101000000100100011111001100110001100111100101010010001001111111000000010010000100001100000010010000110101010000110110001110001010111010011101100011001000010100001000111110 1001010101011100001011110101110111101100000011000011101001101110010011111110101000111100101101001010101010110010011011111001110010001111100111001011010101010101110011011110101000010000000011111011111000010111101000010011100110110001110111000100010111101110110111011111111011011111101010101101110100110010000111011111001101111000111101111101101011101101011001110000110111001000011011110100101100111110 0010000110100001001010101101010100001100110110101100100101011101101010010110110110101100110111011100011111010010010101111100000111100001100111011001100101010001111011001001100000010010101001111011001110001111110111010010000111100100001100111111110010000111110010001011100001000100111111110011101001110011111101001101101011110010001011101011000000000111111100011110010100001111110111100011111110101001 1111011011110011010000100001011101101101000000010001101000000100010010000110101010000101110100010101111110001100011001111110010110000001000011000111000100110110001101111101100000100000000010100100101111111110010101001010001000100111111011011101011011000011011010010100111111010100110110100111111001110010001001011011011101011011101000000110110011000001101011100110100101100011011101101001001111111000 0001100000110111010011011010111011110011010000101101101011101110110100101100000001011000111111110001011101001100001001001100101010000101011111101110001111011111011000001000010100001000000110001101101101110000011011000110001010011011000101100010111000011000010001000010001000111111111100000011110101110100001111011110100011110000100001001010101000010111101000101001000001000011100110010011101010101010 0110010110100101001110110101111110000011110101100111001100101011010110001010010011101011001001111010111100101011100001111010000001010110110101000110111011110011100100001000111111011001110001101010100100000010001000010111101111110001010100011011100011111110011010101011100100100000100100001000110000001011001011101000010011100111001110101100001100010001011010001000100111010001110010011100110110010110 0100010010010101000111110110000111111111011100000100000101100101100000010010001101111101101111100101011101011101110001111110111110010101001110101110110111000111010001001100000101011001111001000101000101011100101110001111101100100001110111011101100101101110001100000101111111110110010001111111000100101001010100101111010011011011011001011000000100010100011100001110000000001100011011110111101101100010 0010001101101101101111011110001001110001101101010101000100001011010100111101001010001101111011010011001111000110111000110100100011010110001101011011011010110010111100101001110000011111010111110000110111100001110111100000100000111110010010110101101100111111101100000111000001110011101010111010010110101011110001100111010110001111111101101001000100111000100111111001011000001010000001111010100011111100 1001000001100101010010110111110010100111011000010011001000111100110110110100001111011000011001110010101011010010100011010010010111010001110101000111101000100001110011010110001001001011000001101010011111100011000101100001110001011100110111000001010001001001010000111110110110101000011100010001011010010011111000000011000011001101101011110000101101001101010110100111111101101000110110000011100001100100 0010000011011010011111011110001101000100010011001110001000011001100010100011010000110000111101010101000010100101001010010110101101010110111101000011101101111101111001010111101001001000010001111101111000001000000001100100110101101001001101011111101011000110111001110001100001100001010001010001101111110010100011110110111011100000011011011001110010001110100011101111100011111010111011101101101111001110 1101000101110100010000011110111011110011000001101101000001110111000000101001010100011100110000000111011100110101001100001110001000100011000001000010000011000001001001011001000000000001101110110101111111011000000111010001001110011000001001110101011100111010101011110100000101010010110011100101110001110011001111110011100000110110011110101111010010100111011010101011011011110100011011110111100001100110 1101110000100011100001110110100011100001011001010111000100000100010001111110000011110000010101011001011000100111011011111010100101001000001110111110110111000111101000011011101011111010101010110011000001000100010110111111100011101101000000011010101000000101010000001100111110001111001010110100110000110000111111100111011010010000011010000100001110000010111111011110010000001011010101110111110011011000 0100100101100011101001001011101101011111111001111100001101100101110011111110000000100000000110111010101100011110101111101001101001110100101110111101001011111011101111110111000100010111000110110110010011001111011000010001101111110101000010001001000111010111000111001001110000110111100111010111100001011001011010011000010100000110001100010001011110000010000101000110100110001010011101101110001111000101 1010100110110010001001101110001011101011001111111001001001111100001011101011001011100100000110110001100101011001111010111110110001011111111101111001001011111100110101111110011110011000110101011111100000100101001011101001010001111000100000001010111000011010100001010101101110011111001010100100010101101011000010110110010111001000001101110111001011110100000011111001110010000001101100000000110100011000 0011100101111010100101101001011000011111001101100001010001101110011101100001001100001111110111110001001111111010000110000001101100100001001110000111110000100010010011101111100010000100011111010000110011101010010111100111110001011000111100100010011001001000011100100111100000101011001000001010101111001000001111110111011010101111000101011100000100000111110100000010010101100101000110010011100100110111 0000110011101000001101101010010100100111000110111001010111101011000111111111110001111110000001000100011110110010010100100100111110111010110010000001001010011100000010001010101010110100011010111000100101011111100110001100000100000111111000001001011011010110101111001010011101111011000011011101000110110001011010011101010100001100000010010010111011110110110110111011110000101001011010111100011101001111 0001110000001011110010001111010011001001100000101011110100000011101101111000000110000010001100101011110110100011001101100101101110000000101111011110010011100011100001100001001111100110110100010010000010010001011111101110111011110111001111100010010000111010101011111100001000110100000001000100000101101100010101100000110111011101101110011110011100011010111111010010100010101000011100011010001011110101 1011110001110001000011001011011100110010100000111101100101010010000001001100100100011000010011110111111110101000001101011100000010010011001101000111010000110001001101000010101000100100110110111000000001000001000001010000111000010000010100100111101001000000110011000000111011001111000110001111101001100010101001100110100101111100110110110111101010110010101011100111111100100111111111000001001011111010 1100011011110001101000011101111110110101000001011011110111101000001110111111011100011011010001010000111111010010111001010011010011101001001000010011100111010000001111100000101100100110001110010100011000010111110100101110111101000110100011011110100100010100111111111101100000110110000000101111101001000001111110000010000001011000111000001111000100100101101010101011010010000101100001101010011111010001 1111000011111000001010000111001101011101001000101000100011000011010111111111000101101001010100100001000011011000111011010000001001100001010110110010001101011111000110101100000011010101010111001000111101010100010111111111001111111110100111000000100001000011000100010111110010001101010101100100110010110101001100011011111010000001000000001111111011110111110100001110101110110101010000011010011010111001 0000010111111111001100111010000101010010001001001000011010000010111110001000101011011101001101110000101111011011111001001101101001110011010100111000111010010110001101010101000110100011000011001100011011101111101011111111110111011001011101101111000111011000100011110100011010010101000000110101011110110110111011000111101101010110100110101101010110011000001111010010010001000010110010010111010000101110 0111010000000110010110100001111010011100101101100110111100000010101000010001101011111000110010010001101000001101111110111011111010001000010010011001000001011110110110001111110011011001000100011000011111000100010111001111010111110101111101111101000010111010000000111101010100110100010101111000001010000000000011000000010111011000101011100011000011101010100000001100111101000110010111010100001010000100 1011111011100110111001110101001010000011011101100100000111001110100110000000101100011111100011011001101000001111110110001011111000001011110100000101101100000011001100111011111101100101011100010111001101100001111111111100001011010010100100101110010110101001101101111110001100111111100000111010111111110110010100110101100110101111011110100110011000001010111000100000111010110110101011000011111100010000 0111111010011000000001101000010101010001111000011001001110011111000111110100111111001110010011001011000101001100100111111011000101100010000010000000111000110010010101100011101010111001011011100101011111110100110100101000110000101100011011110100101001001001100100011010111000101100111011110110011001110100000000001010111010111110101101111100000010011000001001101110000001111101011000100111111001011111 1010001111110011100111101101011111111101011011110000000011001000111100100101011101111100110111010111000011001110011011100110111100001101110101100011110011111000110101000111001000101000111000101111001000000100111101010101111100010000011001010100010110010011110011111111110001001100100000100000110010011100011001110111111000101011011111000110111111001100111110100010000100110011100110111101101110110001 0100010001101111100000011001101010100011100010111110111001010110111001001010111110111001000001111110100101001010101111111110011101010000100110111101000001010001000111011100011001011000011110111010110010110000010000011010011001010110111001110010011111111100011001010011111101010001011011001010010100011110001100000111011011110010001101110100000110000101111111111111110101111000010001001000101011001000 0011001011011011011110100100101111100000011010110101001100000001100000001110010111101011011111110101000100110001101011101101010110110100110000001011110111001100101111010010111111110011000100010011110011110111000110011111011010001101111010101100101100011001000100101111101100011000010011001111110110001001010100010110101010101111000111010001001000100101111110100001111010000100000110011111101001100000 0001101110010100010011100001101000001100101000101101111110001010001001011010001011111000101011111000000111010101101101110100100111000110001100101011011011110100010100010101111011111111011111000111101011001101010010010011101110010100000110001010100111101001101001011110101100101001001110100100000110011010001111100001111010001100011111110110000001011000111010110100100010011100100000101011101111010111 0100101001000111110101001011001011000010001001010111010011100010011111011000101000111101011000000110001001111011110111111101001101010111001110100010000010011101100101011100010110011110111100010011101111110011111010011001111100011110010011110000011000011001111110110001101001110111011101111111001001100100111111001110001000000100010101111001101010101100110111000111010100001101010001111100001110111000 1011000010011011001111011001110110110000101010011100101110001111111111100110110101010011101111011101010001001001010001110001010010111100100011101011000010000001010001011111000011010000101001011111000100111011100001100101100001000110000001010101011011011011001101000100110001011101111101111110110101110111001110111100010010001111101111000101000110010001000111100010010111111011011111010110001100010010 1000010011101111100011110011010010100010000011101100000100110000011011001111110110000010101000111000011011100011101100111010001010111001010000110010011110110101101000111001000001101001100000011010100111100101111000001001101100110110101011111011010001011011011001001110010110000001101100001010010100010010111000011001011011111001000111101010110001011100010100000110101001010010010000001101101010111011 1000111001101100111011110100100110010100011000110100001111111001001011110010101010011011111101110110000000100111001111111001101010101001101111000010110010001011100101011111011101100010000000101011011000100000000100101101100110001100011000000001100011001011001010000110101001101010111101010101101101111111010011000110010010100100000100000001010101111000001001001110000101110101001110101010111100100100 0110101010000110111010110000001010101010000000001000101010101100110011110010010011000000110010101100001110110110000010010000011111100101111011011101110111101010010111001110100000000101100110100010100100100111111110000000010000011001111110011100111011010011000100000001000001001001101010011000111001111101101110111110000111101110010100110100101010010000010000011000010000011100101111111001110010110011 0000011010001111001001111101110010011000101110001101010001110100010001000001000110100000100000101000011011111100111001100001101000101101001110001101010101001010110101101010010101001001000101100001011111101111010110111100110111100000101011101111001001110001111110101101011001111110111100000010101110110010100101000011111011101010110101000101110000010100011100110001011010010010110110101011111110110000 1011111000111100101000110110010100001011011001101010011010010010110000000001110100110000011000001010000110000001000011010001101111111010101100110110000100110000010011000010100011100001010000001000010100101111110110110110110011001011101001100001001110011001110101110001010110010011101000111000011100101110111111101011110010110100001110001110101111000111000110011001000010011001010001011101110111001000 1101001110100001000000111101110111011011001100101001010001100101101100000011001000010110001001110111010110010011010111001010010000110101001001110101101010010100010010001010001100001111111010110011010010001001110001110110100100010101001001110000001110110001010111100110000010011010101111110110100101011111001010100000101111000111101101000011101000010001101001001001100110000101000101110110110010111110 1010011010110100010110000001101111111100110000010110000001001110110101011001101101001000010000011110101001010110010011000000001101011001101110110010010101110101001010001011110100000000100010011100100001111000001110111000001011000010011001110001110110000101000111011101010001110101101110100011100100101000110111101010110100100011111000111001010001010011110010011001110011001111000011000101011101100110 1011110010100110111110101110000100110110001010000101000101001111010000110111110010100011111111000110001111010100110101101110110110111011001100010100110010111100011100110010011011101011101111111011011000101101100101100110101011101101101110110111001111100010000001011000010000001111011101011111010110110000100100001000010100001100011110110110101010101111111111000111001001110011101001010111011100100001 0001010010101011100111011100000001000010110110101000010111110010111100100110101001110010011011000111001100001010001011100000100011011100011011000100101110001100001010111000010000010110010110101000111011100101010001101101110101000010010000000101110111110110000001011101001111010000110100000111011010100100111000010101111111000001111011010110100110010110110010111111100111000011111101011000101100011110 1010110101111100110011000000000101111001001110010001101111010101100000011000110001101101110110111011100110010100111001010011111111000000110011001110100110011001111110111010001011110000110111100110101000101010011001010101011100000011110101010111101010000001100011101100001110010110110000110010100000000000011101100001000001101110111101000001101100011010000111111101010101111010100001101010001011111110 1100011001000001110110001100111101010001010000101000101111001001101101011011000110001000101111001100010000011110111110111100101110110110110010000000010110010001101010001100111011100100000110100100101111001010010111101000100000000010001110000010110010011011011010000000001111001001000010111101100000011111101001011101010010111000011011010000111111110101010110110010110111100100010010000101010111010010 1000011110110001011001001000110000001001101011111000101101001010101110110110000011111010100100000101001101011001001000011011000010010111000000110111000010010111010000100011010101101000000011011001010111010100100001011011010100000110111000001010001010111001010111101111011000110000001101011001000011001011010000110001000001110101100111010010111001100001110110111101100100111110111010010110101010010010 1110110101101001001010000100000101000001100000101100101000011101111101111100111111111010010101011110111101100011100101000001001011010111011110110100111101101110011011010010000110000101111010100011110011000111111100010001011111100101000000000100110110110000001101011000100100101101111000101101000101111110100000110010000100111011010100000011010011010010010011001110100010001000110101111001101101110101 0111010000001110001000110000011000001010011001010110111011111000111010001011011111010010111110110110001011000001010100001010101100111101100001011100000010100010011001100100100001111000101000100101000000011011100011111001111011001001000110101110001100110001000010001110101001110101101001001100011011010100110000010001110001010100001110000110111010011111101010101011110010100101011010011101111011010001 1011100010101010101000000110011001011011000101110101011001101001001100110110000011010001010111111100101001111011010001001001110100111001100101100000111011111101110000001110111011110011101110000000001001010100000110000011101100110111011110010000010000001101010101000111111110011101110110100111111101001111101001100110000100001110011000010110101100010110111101110001011111011010010000001101100101101001 0111110100000101110011011001000111101001101011001001110101111111000011100100100001010111010101101011000011001001010010101000111001110010110001000111111011110001101011000111010111101000010101110110100111101100011110001000000101110010100111011111010100001110011011110010101111100101001101011001001101110011101001101110010011000111110000110111111000111101000110101011000111011110011011000111111101000111 1001011110000011111000010100000001010100000010110010110110100011110011011111011001100101000000110101100000100010101010111111101011101011000100010110100100110011010111101111101100011100111110010100111100101110010110100010011010110011100010110100110101101101101101111101100111110010011000101100100000001111101011111100110000111111101011011110000011010100000000100011111000101010111001010011011100011110 0111001110000101001011101101010110000000110001111100111010101101111010111100100000001010111011101011101000110100101111100000111110110111110110011110000001001001100011101111000011100000010000101011000010110011101100100100101010111110101101111101011111001010100000001110111001101001000101010000110111001010111101000001111110101111101001011101101101101101101110000011010011111101000110111010010001010001 0111000010111101010010111111111001001101001000011001001110111001000000110000001000110101001010111111100101101010011000111101001110011101100010111100001010110111001000000110111011010000001010110000100000101110100101101001110100111010010011111011011110110000111011000101010000011011000110011010001111001110000100001100001110110110010101111111101100101101111011001011011111010110011111111111111011000011 0100111100001100000110101011101001000111111101001001011010110000101111000111101011100001011101001001101101010110011000000111010100000001011101110101000110101101101100110100100001110101110100010010010000110001000010000101000111011101011001000110010001010111101111110110010110101011101110000010101111001101010001111110100011111010110001111111010010110110011010101000011100001101110110001111111110001010 0000010110011111101000100001111001111011011001111010011011000001111010010111111100101010011010110010100011000001010000001101110011010100011011100010011110010101100000110011011011000101111010010111111010000000110101011100011011111011010011010110011011100001000011101100110100001010111000000111010011101011110001101001001100011111001110110110010011111011010110011001101011000101011011110100010101011111 1100111001001100000100010001011010001110111111111001001010111101110011000111000101110001000010101011101110100110110000000111011001001110101111011111010010110010010100110011011011010110011110001011101101010001110010100101000010000110101100100101100111000011111000010010101101001010101001111110000100110011101010000110111010011100000011111110101111100101011000111001011001001001110110100001001101101011 0101011011110001010101100101110110111010100100000001010101000110111010010111001100111011000101101000101110111101011000101010100010000011101011010101101000011010100010101110011000101101101011001101000101011001000111100010000010100010100101100101100111000011000011111111111000000000010111001001011001001000001100001001100001100100101101101101000101000011000000000100011111010110000110101001001000001010 0000010001110100101010001110001101010100010100100111111111010011101000011100000111010000101000000111111100110001100111000010000110110011001110100110000000000000000110110111101101011011110111000111100111110010000100100000111110011000110010110111011000011010001011000001011000111100100111111000011101000100001101100001100100011110111000011101111000101011110111110111000001100001010101111110110111101100 1100001100011001011100101001101001011100100000010010000110101011110110000110101010110111011110111110011110100101111001010100001000000101101001000001011000000010000011101000100000111000010010000011100101110001011110110100001000111001011111111010100110100100100010000011010010010011010100101100010100111011010010001001101101011101111101010001101111110001001001100111011011111000111000011100010001100111 1010010101010010110011001110101011001001001111111110110000110010011011111000000011001100001000110000110001101100100001010110101101000010001111100001101010111011110111000101010101011011011010110101001000000100101001000101100010000001111101100010101011000100111001011010000001001001100011101101111111100100011001010010100000010010100110000011010111011101001101100010101011010011110111110011001100110011 0010111111001010100011000110011011011011111101100000010011010110001110010010111011000001110010000110100010001110010010001000111101111001010110010110001011011111001100100100000000101001011100010000110111110001110010100101010001101101000010010111110001011110100111011001100010010011010001011001100011110011000111011000010101000111000010010010111011001111011110111100100011111000110010110001011100110000 1110100000100100001101011000110011101000111011100110111111110011011000010000000101110011010101111001011011011011011010010101000001010110101010011001100010111001100001110010100101001011000110000101110111011100110100010101100000110011111000111000101101001001111100101000110111110101001100100001010001101110000110000001101010010101101000011111001101000100100011111101001001100001101100010101011001100110 0111111000000000101011111011110100010011001001110001100010110000101100101110101000110010001001010111011001001010100111101010100011011111110110011001100101001010000110111010111101110101111001010010010011111100111100100101111101101111010100111111010011110000000100010100110111101100001010111001100010111111010110010111000110100000110101110010001001110110101111001101111001100000010111100010000100010010 1000110001010110100000101110000111100010010000010010101001000001111000001010000111110000010100001011010000111011110101000110100111000010100001001100101001010010100011111110111001011110000000101010101110011111000111111101110111111011101010101010001101101010000110000000111001110111011110100100101000101101000111111001011100010000111111011110011001110000111011001110101000110001111001011000001000100100 1011101001001000101100101000111100100001001110111110110100011100001100000011101110110111011110001001001000000111011101001111100101001001000000010101011001111011101010110111000101100000001010010001010000011000111100111100110101101101010101100110001000011110101010000101100101010011010010011100100100011111000101100101111110010110011110000001000000111100010000011101111010010111011001101010011110100011 1000001111000110010111011010111100101001110011011010111100000011010100001110110001101011111100100111010000111001110011101111011000001010111010010111101011011000001010111101000111110000011101101010000010101110111111001000011001010000000100001000101001100111100101001101000010000000100011010010010000110000001101011001111110101110010011110001100000100000010100010111001000110100010011010010000101101011 0101001110100011111001110101101101110010111100110011100100111011000110011001011100100100110011001000010101011110000100110110100001010001001111101111010101000001101101111101010100110101110000011100011110011001111010100010110111011000110101010101100111011101011000100100010100001110111110010100001111011010100000110000000010101111001001101001011110100110001001110101100100010101000001110010110110011101 1001001111000011011000110001011111110110110101011100010101010100111100100010100100101011110000011001001010010011101000100000001111101011110110111110001000000110010010010101101100011110110010010111100101100010111111101010000010001010110111001010100111011011001101001010011111010111000110001010000100010001000100001011111111001011011001010010111110110101100010110111011110110000010010111001100110000111 0011010011010101111100001111110000100011011110001000010001111011101011011110000000010101110110010101001100011001001010111001110101000010111110010111101101111001101110011100111000000011011010110001110101011111001100000110011010001110110011111111111011100000001011010010100110100010010000001100000111000100111011110101010101011011000000111001110001011111101010000001100101010010110110001010000000100010 0100001111111001000011100001000101010100100010110101111000011111111001001000111100011110110011101111101010000101101110010010000111100011100111110110010101010111110010000100001001101011011011100101001101010100010011100011110100010000111101100101010101111111100100110001001010100000000001001000001011101011010101001100011001111110101011011100010111101111110010111100100110010100010101000011010110101111 1110101001100011010110011100110001000101010111100011100010010100110110110001111101010000001100111111110001001101000110000010001001001000111001011001001011000101110111000000001001111011000001010100110111001010111100001010100101110001010001011011111010100011100010100101110000011111001000011111011011000010111100100110011111001010101111001001111101011110011100011001000011011110001100110110010111011100 1010100111010001110010110101011110011101100001110111001101010110001100011001001011010010000110000000011000001110011000100111100100011011001011001010110001100010010011110001000000110000100011011001110000101100101010100010011101011010001000010011000000100101001000000001010111001010010000100111101101001110000001100010001010100110001111101000101101100101001011110000011000110000000100100000110001010001 1101111010101000101111110001001010111110000110000011000001101000010011010111011100010111001010110101111110111101111010011001110001100000100101011101100000101100000111100110010111010100111010110001111011011100000011011100010110010011010111111000100101011010110010001100001011010101101011100001101000000001000111110000101101010010111101101010100110100111001000011100100110011100101100000011111100000010 1001000110010001000000110000000010010110101001100101100111101111010011000011010000000000100001100001110001110111101100001101011011100011110000010101110010000110000000000111011001100111000010000100110100010111000101000010000011000101111101001111001011000111100010011111010100100110111000111011101101101001100011001011001001100111010111011100010101111001111111011101100101011010000000011010100110010101 1111111010110000110101000011110001001000010000001010110100011011000001011000100100000001100110110000000001001101001111011001000011010011001000011111111001111101111101000111110100101011100000101001001010001010111111111101110110011101000110001011101000111011101001110100000111101010101001000001010011110010110110100001100001000011110101001011100100110010001011010101111100111111010111011100111001011110 0110001010111011110011101001101110101100001000010000110000110011100101100010001000010111100001100001010010100001000010001110111110000010110011100011101010000000111100000010001111001000000101111101000111100100100010100111001001101010110101111001100100000011010010001010010010110001000110010000010001010011111111110010010001010101010111101110001111011011011000111101111101000101011111110000000010111000 0110010011100110100101100010111111011000000010101101100100101101010001101000010001011001011011001011100100000110111001010111100011001011101111001011110111000011011011001001000100010001101111011011110100110011001011010010010101111101000111011010000111010000010111001110100000101101101011110111110001010000000001001000110110010010101000100110011001110000101100010101100010101010010110011111000011000110 1001111011010000111011001010111000111111101010010001000011100101110010010110111000011000100001101001111011100100111100000111111000011111011011111000111010100100111001001110000001110111101001101000100100111011000001000010010101010100010111110101001000010101110011110110100111111100000000011001000110100101101110110001011001010001110100111101100011011011000000110000001011101000011011110000001010101001 0101000111011010111110101001101001000110110110010000010101111000001010111001010000010110101001010000101010011111100010100100011100001011001001010111101110110000100010111000110100110011010101100110111101010011001000100000111001100000111011100001101100010000111101100000001111011111001100101000111001110101110010011111100110101001111011011010101110001010111011011011010101010111110010000010000011001010 0001101001110101110001001001001011000100011010011010010011111001000111010000000111001101100100111100000010101000010111111010011011100000110100110010011110110010000011100111000000111011011000111101001110101101110100000110011101110101110100101011010110010100011011100000001001101011001000011100010101110001100111110001011110001110001101000101010100011011111111100111001010001011111011000010111111001111 0100001101010111000010001000001001011111100010100110100110111011001100101100110000010110111100110000110100000101110000110011000101010101110100001110110110100101100111011100110001111101000001001000110110000110001011000100011010100110101111000000001111101110000000001111101011101111000001010110111011110000100100110010000101110111011100001000100001111101100011111101101001110001100000001100010100000101 0011001110101110011101001011111100101100110111111010001101110000010101000101001001001010110100110110100000110001011010010110100110100101100100100011101011010100000111111011101110100001111001000010100001001111011100001011000101001011000101100000011110010110011110001010001001010111000110010010001000110000101000111111101011100110110000010101011110101111011101010101110111011000101010001100000000101010 0001100110010100011001110101100111101110011101110100010100010111111110110100001011000001111100010100111101111000100000101000001001011000110000001001101011110101101101101001101100111000110001011100101010110101010010011111101011000001000111100011001001000001001110001111001111101101110010101111011000110100011100110101001000110001110100110100101100111110010011010101101011111100101011101011000101011110 1011010011111100101111011011001111000001100101010111111011000001111101101001011000110010100101011000010101111001000101000010010111000101110001101010111000010010101110110101101000100111011100010000110001000001110011001100110011011000110011110000110110110110010110100110110000000011110110001011010101101111010110100011101101100001001111100010110001110000110010111111000011011101101101110110000000101010 1101100001011101001100100110111011110101111000100111010011111101101010111000111101010101100100011110000000111100100110000011000001100100100000100000010111010010000001001111010001000011110111010000011011000101001010010011011000110110101111000101100000000011000011011000110001110001010101011101101001110110010001000101011001010110101100010001001001011000011111101100001101010010110011011001111010111111 1100100110000010000110110000010011100100011111101000100110001110001011110110010001001101011110101110110110100001111101001001101010101100100111000101010010100110110000000011110101101101110000000100010110110101000011001100100010011001100001110111100101011011100000110001100010110000101100111011011111010110010001101011110111000001111110000010010010111101011010010111001010111010001101010100010011001000
cTrader AlgocTrader

トレード練習用シンプルcBot

1/8/2021 3/24/2021

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

cTranerSimpleで気軽にトレード練習

私ajinoriは「トレード練習するならcTrader一択!」と考えています。そんな思いが高じて、cTraderのバックテスト(ビジュアルモード)でトレード練習するためのツールcTranerも公開しました。

このcTranerについては今後も力を入れて開発を続けていくつもりですが、作りながら「ちょっと練習するためだけならここまでのツールいらないよな」「それよりも各自自分用にカスタマイズしたい人も多いんじゃないか?」とか思い始めました。

 

単機能トレード練習ツール

そこで、ただロット数を指定しての売買と全決済という単純な機能だけを持ったcBotを作成しました。本当にこれだけしかできないですが、ちょっとした売り買い決済タイミングの練習だけであれば十分だと思います。

繰り返しますが、ビジュアルモードでの売買練習用です。(特に制限かけてないのでリアルタイム環境でも動いちゃいますけど)

 

少しプログラムできれば簡単にカスタマイズ可能

これだけなら単なるcTranerの機能劣化版でしかないのですが、今回はソースコードを公開し、自由に編集することができるようにしました。

cTranerはちまちまと細かな機能はあるのですが、外部からスクリプトを呼び出したりということが (今のところ) できません。

おそらく自らcBotタイプのスクリプトを作ってトレード環境を最適化してる方にとっては、ここに不満を感じるのではないでしょうか。

いや、そもそもプログラムできるなら最初から自分で作るかもしれませんが、ボタンとか使い方がよくわからない人もいると思いますので、そういう人のために。

cTranerSimpleでは簡単に自作スクリプトを組み込んで機能を拡張し、バックテスト環境でトレード練習ができるようになってます。

 

ダウンロード

ダウンロード後ダブルクリックでcTraderにインストールしてください。これだけでソースコードも入りますので自由に編集してください。

ちなみにメインのコード部分は100行程度の小さなプログラムですので、初心者の方にとっては参考にもなると思います。

 

 

機能拡張方法

一つ二つ機能追加するだけであればコントロールの使い方がわからなくてもできるようになってます。

ソースコードを開いてOnStart()の下の方を見てみてください。

 

ボタンを配置する

ソースコード98,99行目のコメントにされてるpanel.AddChile()をコメント解除すると、scriptボタンが出現するようになります。

// --- 機能拡張用
var yourButton1 = new Button {
    Text = "script1",
    Margin = _margin
};
var yourButton2 = new Button {
    Text = "script2",
    Margin = _margin
};
// 使うときはここのコメントを解除
//panel.AddChild(yourButton1, 2, 0);
//panel.AddChild(yourButton2, 2, 1);

ちなみに、90,94行目のText=の部分を変えればボタンの文字列変えられます

 

処理を書く

あとはこの部分にボタンを押したときに行わせたい処理を書くだけです。

yourButton1.Click += (_ => {
    // ここにクリック時の処理を書く
});
yourButton2.Click += (_ => {
    // ここにクリック時の処理を書く
});

以上で起動してscriptボタンを押せば、処理が走るようになります。

バックテストのビジュアルモードでお試しください。

 

他にもいくらでも

ボタン2つで足りなければ、ボタン自体を増やすこともできます。

ボタンの作成と機能登録はコピぺでいけますよね。こんな感じ追記しましょう。

var myButton = new Button {
    Text = "myScript",
    Margin = _margin 
    };
myButton.Click += (_ => {
    // ここにクリック時の処理を書く
});

配置方法について説明しておきます。今回のプログラムではコントロール配置用のパネルとして大き目の10×10サイズのpanelを用意してます。この部分ですね。

var panel = new Grid(10, 10) {

このパネル上にこのように位置を指定して作成したコントロールを配置してあげれば完了です。

//AddChild(追加するコントロール, 行番号, 列番号)で指定
panel.AddChild(myButton, 3, 0);

OnStart()の一番最後に書いとけばいいです。この記述でpanelの4行目1列目に新しいボタンが設置されます。(行列番号は0~9の値で指定してください。)

コントロールの使い方を覚えれば他にもいろいろなことができます。どんどん改造して自分専用トレード練習用cBotを作ってみてください

 

 

プログラムは作らないという人へ

cTraderでのトレード練習には興味あるけど、自分でわざわざ作るのは面倒という方は迷わずcTranerをご利用ください

こちらであればビジュアルモードでcTrader標準機能と似たような使い勝手で発注や決済注文が出せるようになってます。今後もどんどんバージョンアップしていく予定ですので、よかったらぜひ使ってみてください。下記記事からダウンロード可能です。


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

新しいコメント

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

cTrader's Life

© 2025 ajinori