1010100000010100001110000111110011000110111100010000110011101010101111010000000011000111100100111010001000100101001001010100000011010110110101000000001010000101010101101010000011100010110010001001001011111010000001100001010110100101111111101110000101001000101101011001000000000001011011000001111000011001000010100100000111010000100100101100010001100010011101011011011101010100101001100000101011110111 0101000101111001010100000100101001100100011110011011110010000011110001011111101111011101111111011010100000111100100101001110001100000000010100101100101010110101100111111011110010110011100010101011001111000000010100111011001100001110010000001000110101101100100101111010000000101100001011101001110110100001111000101001111001011100010110111000100000101011000100100100001000001001101011111001001111000001 0001000001100100011111100110011011110101100110101101101110000100110100000001010100110011011010010110101000100100001001100001100000001010000001111100111111001011111001110101100011000100000101111100111101111001111010001110000111101001100110100110111001001000101010011000001010110000111110010011100001111000110101010111101110100100010011100001001100110110111001010111111111111110011110011000111111000101 0110010110010101111010100010100010100011101001100010101101100111100111010101101110000101111000000011000101101000110110001011101000011000000111101100001101110111101100010110001010011011001001000001111101010101101110110100011010111110011110011000010010000110110101001001101101101111010000000111111100000000100011110100111010111000111101001000100100111000100111010100110000101100000101101010001110011010 1000010110000010100111010101000100011001001000101010101110110111000000111011111101110010111110010110110101111000111110010111011011100000010101011011111100111101001001000110000111110001001100110100111011111011101101011111000110011111100011001010000000000111110111011010000100101111110010001110100001100101000011101111110001000110110101011001001111011000010000010111001011111110100000010101010011010010 0101100111000001001010101100100010111100000110111001101110011011011010100011011111000010101101001110010111011111101010010111011001001000001111010100111001000010000111001000000101100000100000110101110001011001110111011000010001100001111101111100000101100110000111001111010000011111000100110110111110111100001100010010000011001100011101111111011110011000011111010010111110100011110011110101101011010011 1100111100111100100101111111011001001100010000011001101011011111000110000110100010000101000011100110010110010010110100001000001010000101110100001000101000100000000110101000111000111000111011100010110101101101110010011110110001001000110001101100100001001001100101111011011101100010000101100100101011001100011000010111101100001011101011101111010111010010010110111101101110010101101001100100110110111101 0000111000010000010101110000011010110010001101000100100011110011000001101110110011110101000100000101000110001110011111010011010111011100010111000000100011111010100100011100010101111011101000011110001100010000000010010001000010011010000101101000000010101101010101111110111000001111101000011010111010100101011100000000001001111110001001110111001010011101111110110111000110101111110000011000101101001000 0011011101000001111101111111111100010100101111011001011111000010100010110010110101010000001101100010111000001110011010010011010001101011100000010101110101111001001111110101001011111011001001011010111110100011100001111110101011011010111111011110000001100000011111000011011101001011011100011101000101010000111001111111001111000010011111001000100001010011011011101111100001100110001101011010000101001110 0011010010101101010011100001111011101011111010011011101010010001011110010100100011001000110001111100101000010100110011000101000001000011010110001111101001001010001100011111100110011001000100000011001110010011111101001111011001101110001010110110101011110111111110101010110000011000010001001110001101000011000110100000110001010100010000110100101011110100000100110011000001010011111101100111000001000011 1101110011000100001001011010101011100100001011101010111010001101100100010100100111010011111000011011110100110111111000011100101110111000110011101000001100100011101110100010010001000001011101001011101001110111011110000101000000010001111100101101000011010100111011001001111110101011011101000010001001110100011001010010100001111110110011111111010011110110100110011101110101010100001011010011100101110110 0010111100101101010011011010011100101000110100110000111101101000011101001000110001111010011010100100100000101010100111100011001010111011000011100111100110000000010011110010011001001101101000101011100001010110110100000000110110000110110110100101001000101001001100011111011101111000000001100111101100001001011110100100000111000101000101110001000000000000101111100111111101000011110101111111101110100010 1101101000110111110101000000000100000011010111101101100011010000011001110110110011011001110111101001100100010111010001011101100101110011010101000011110000110010100001000101001110000011110100010000001000111111010010111111101101010110101111000001110010110000100001010101011010100001100001100010101100000101110111110101100100100001101111111000001001100110011010111101010110000111101100110111010110001001 1110101011101011010100111111101101110101110010010100100001001010000111111111111001001001010001111010011010101111010100001000110001100100111100001010011010011001010011000110011011010111101100000010000101010111000011110111101101101000001010010001001010011101011100000010100000010111011101010110010010100000010001001010111101111101110101010011000001111110100001000010100110100100111100000001000010110111 0101100001110110110010110001111000001011011001110100111011100000000011111110000101100111010110011101010001000001011110111101111011100111010011001110111011001000011001100010000101101110101100100001110101011111011101100000101000001001001100010001010111010111110011101100010010110100111101111010101011010010111001011000010001110010010000110110111010011111000101111101000111100010010010001000100001010111 1010110001000011010101001011110010010111111111101111101100001111010011100111110010000110010110110101001011001000010101100101010011010011000010100011000000100000101110111101100001011011101111000000110100101111011001110100111100100000000001110010111111001100110110111000110010000000001001111001101000011001000111111001100100000001000000101111001110010000110110110101011101111100011000101101101100010101 0011010010001001011011101010111001010111111001100100100010010100101000111111000011000011000110111000001100000100100101010101110110100110000001011001011101100101000101010100111010001100011100001011110000011101001110011101101010110000001000100010100111001110001101010000000111100101111101000110010110111011001001011001111000011000101111001001001010111111000011001000010011001001110110011100010111011001 1011001101110010110010001011010010101111111100110011101101100010101000110110100010001111101011010101001111010001001111111100011011101010100110000111001010100011000001110110110001001000110101000111001110111000110110101110110001100001110010101100001010101100100100011001000000101111001100111011011000000000001000100101101000101010001001111100100100010011110010011110001110010101010110100100101011001001 1111001010111010011011110010000011010000110010010110101010010010101011101111000011100000011010111111000110111110010001001101101110100010010111000100000100000111111011001011001100101101000010001011111010111101110000100111100110010010011010001000111000100111010001001000010101101111111101101100110010101101001110111101010111110000101010110110001010101101101100110001001111110110000111011110010100000011 0000110111000101001100000111000011101010101011111000001000000110001000011011011101111010100011101101011010110010100001100000000100001001010010000101010110010100101101011100100001000001111001001001011111011000001010011000001100101100101100100010010111111100100000011110110001011010101000101110000011101000110001000010111011000111011000001101000100000101111111100001000000111010101111001011101100011001 1011110111011101101010100000000011101011100100101110000111000101010111001001010011001100010110000000000110110100011101100100101110001000110011010111111101101010101101000010010000001101011101000001111010101001011100010010010010110011101011000100101100110101001110110110110010000110100001101011110111011001100001000111011101001101010000011110100000001000110101011101010010000001001100011111001110000001 0101100011000001010110001111011100110110100111010000110100100110010110110110001011101110011100001101011000111100001000000111001100011010100110101110000101111111110111100011111000010000010011001111110000000100100010100100110011101101001100011001110101001101001100110011010001100110110101000100011000111010111011010110110010110011001100100001010001000010100011100110001001011000011110001010110000000001 1000000000010110010000011110100011001111000011001010101110010010011100100001111110100110001010111101011010110010001111110100101011110010111001101110001111000001101101010100011101001101000011110010110010011111100110011011011011100100001000010100110010110101110111011101100111010100010000001010011111101011010000100011000100110001101011011100000010111101110101011100000011101001011100111100010100011001 0100000001111110111000101111010111010001101111011011110011010100000111010110101010101011110101101011111101110000110110011010001100100000100011000110000100000010000101101100000110100010011110010010001110111111100100111101000100100101100110101110111110111101010110001100111011101010111110000010011100010111010001010101001100111001100101011110101000011110000010110111101000000111110001000110110010010111 1011100111100010001100010000000011001110000111010100000010010101100010010011101000101111111100110010011100111101000101111110010111011101100111001011101100010001000011011100101100010100110111001000100000000110110001111111001110010000101010011110111110100111001001000001101011010110101001101000100101111000111100001001100111011001000110011100010011110001100100010011110010010110011011011000101010000001 0101101100010101111011100011011100000000100110011110101100101101010110100010111100000011100101101000101000011001001000101101100111001110000111100110001000101010000111100010111100001101010110111101000101111010111001111110001010001010100000100010111100011011111011001000001000111110001011010001100100111100101110011000111000101001101110000110001110111100001110100010111100100000101010110001111011111110 0100110011010001010111000111010110111110010111000110000100001011001101001101010101110111101011000010011001110101001101100000010101000001111000000110000100110110101101010011000011000111111100101110111100000000011101111111010101110111000001110011010010001110001001101100010111111110001010111000100000010011000011001010100100000110111011101010101000111101100110111111100111011010010011001001101010100101 0001111010100101000010010011111111001101111100010010000010101110111101101111001100010110101100011010001000111110101111100000010000100011100000001101000111011100100100100001111001010000011101110100101100001100110111110101100010101001010000010100011101111110101100011110100001111100101011111000101111011000110010011001111001011101001000100110100101101010101111111110010100011111011000001110110110111000 0110001100010000111001110110100101001011010110110101100010111011000101100000000101010000100100110001011010010000111001101111100101010011111011101101010111100100000000000000010000111001101010100100000011111100111111110010010110110010011011010110001100010011110111011111101000000101111100001001001001010000010101111101000000101000110100101010101101000010111100111100000000100111001101001001100010111101 0011011111110010111101010110101011000001011001001111111000011000010111110111100010000000100001001011110110010011011110111101100101011110111100111000000101010101100111111011010010010100110010110010000011010101000010111110001000100101001000011101111000101001010101001000001110100100001001010101110001010001110010011001000010101101100011101011111001110000000011001111000000110000010010010011110111111000 1000110011101011010010000101100111011010100111001011000111100111001101001010110011000101001111010001001010101101111111101010100011110000100110011011011011111101001100000000111010010000110110111010101011011000111100111001010111000010010100011100110110101000110110011101000111111100111110010011100101011101100110011111010011110101111011011110100110110011010011111101001001111111010001101110001110100000 1101011101110010010100001101101110001000011000110110001111111011100100101011111111000101111101110010111101010010100011011110101111100011111100011111110110110110101111011101101010110100011100011100110111111010011101000110101011001101100000001100111101110011010110000111110110111000000011001100111101011100110110011010101001110011011010000011001100000010010000100010000100010011011101110010001010000100 0101010111100010101110110000101000110101111111000001010100110100011111111111100001100110010011000101101010010100010001100010100110111101001011100000011011100001001010010011011101100011101110010111000000011000111110110011000110011001100010010001000010111100110100000101110001101100101000010101001100100000110110110111100101101111100011010011111110010101111100011001010010001111110110101011100111110011 1101001101011111100011101101111000000011110110100011100110000010110000100010110111010100100101110101010101100111010110101101100011100110101110010000101000111000001011110010000111000100110110101011001111111101100011011011010111001011010111101011100101000001100100101101010000001011001000100111000101001000110111010011100011000100011111100111101111111011111010001000011000111101100110000011000010100110 1111000100100001101010101011010101000000001101101101000001011101110100110000010100101011100010001110001010011100100011000011100111111001101010100110000110000111001000010111101001110100111010110000010011010001010100110010000010110100010001100110010110110000111000011000011111010000001011111100111100011010101000001011100101100111010100111100101001000010110010011111000000010001001100110111000010000010 0011010011001110010101011111010001001000000111101101011000001110010010111111001100000111111001000010111010110110100001110000000000011110010100110110100000000010101100011111000010101100100010011111001111000000111101101011000010001111000001000101010111001111011110101100010000011100000110101110100011101011001001001000000010100101110001001010011100011010011010011001010111010100001111111000010010000000 1110000111000001110100010110000100010011000101101001110001001110110101100011110011111111011001101111100010100001110011101100010110101101010011011111011101000001010110011100101011011101100111011101111010100111001000111100101010100000110011011010110111000010010111011011010101100010000000001000111010101100011110101000011100111100100110111001111010101010111101010101100100011001010110101101110000100101 1000001100111010100010111110001000011101111100111100011111111101111100000000011011111100110010001010000111010001111100111100000000111000010000110000001110011101100110101001100101111010111100011111101010100100100110011010010011010110111010011011001110010110010011110110110110000100101111001101000111110101011111111100011000100110101100001100001100110101000100110001101110100011101010100010011011111101 1001100111100110111001001100110011001101111101011101111100011101010010101001100111110011110010000010001001001111000100100000010000100010110011010101111111001110101110001100000011000000111101010101001111010100100011011001001101110100111010110101010111100000100100001110011011110100000110110010011010010111001111011000011011001011011111010100010011101101001000010001000111111000101011011011000101111100 1100100110101110000011001100101010011101110010001001001011001111100100011010111101110011010100100001010010101101000110100001010011110011011001101110011011100110111010101001110101110110000110101011010110101101001101111001111000001110000111001101001101011100110001011111000110111100011000101010101011001001110010011001000000100011101101101000110101110100110001110110010001010001101110001010001011010111 0101001001100011010011100111001110111000101100010100011010101100111001100110111001101001101110110101010100111000001000111001001010100001000000100010100010001111111011110110111111110000111010000111010010100010001111100100100000011110101010001100110001001001101000111011000111100111000101001111010100000010010010001100001110010000111010001111010000000100101111001000110101111001010100110111001100110010 1000010000001010011101100110100010001101000101000110010111111011111001101110000001000000000010001010111001110100010000111011101101010011011111001001011101000110110111111100110110001000100000101101111000100101000001010001010011100110101000101001101011111000001101101100110110110001100001110111101101101000011001001111101000010111110001111011101001011011110000110000101100011011100001010011100010100111 0001001111010010001100111110101001100000000000111100100111100001010110100111000011111100101110101001001100010110110111010101000000111110001100101101000100000000101000100111001001111110101111111010010010010100101001100111101100000010001001011000110111100001100000110011011010010000001101011100011110101001101110101010111111011111111001001100111110111110110000001011011011010010111000111000010001001101 0111101101001111101001110001001101010011110011110101010000000101101111011101111111001000111010101101011100111010010111010111101101010101101101010110000011101011111100110011010111101000110001110111111100110101100111001001010010100111100101110110011110100010001001011010000011101101101000101001111101111001101011000111011101011010101100111101111010111000111101111000110110101000000100100011111111111111 0100010000100110011111001100000101100010000110010000000001110000110100000000011011000101111100100110110010011100101100111000100001010001100011000110111111000111110100100001000000101011101001000000011101101111110101000000001110101010000001011000010110011001001000010001110110000000011000000111001111001110101011111001100000011100001011101010101100011000100000101111110000000001101011111101111110100011 1110111010100100111011001110111100001011101011010001110111000111101011101100100101001001111010100100011011110100010000010100011001011110000011100100110110000001100010100100100010110110000101110101001101101001010000111010000011010011110000100010001101111010101100111100110111010000010101100011001101111001100111110100001000100011110110110000100100100011100100011011011000111011110110011010101111000100 1101110001000100010111011111001110101101011010001111010100111000101100001001110100100100010111010000101011000100010110100001101100011101001100000111110010010001111110001111000010001111110111000100110101101100110011000101111000001101000101010001100011110100010010001011100011111011111010111000100110111101101010010001011110101111000000010000000010111000100100010011111000110010101101100010111010111010 1011101011101010000010111100111000000111001011001010100000100110000001110001110000111000001011010100000100011010110011100000100111111010110111001000111001111000101101111100110111100000010010100101011101010001110001101010100001100001111111110000111101011111101000011100011011101101101000100000100111100100100010100000100010001010000101011101000000111001110110100110011100111001010000011111011011110000 1101011001001010011010101001111100111011101100000010110111110100101101011111011110110100001001111001110001111110100111010001100110010011100000000010010000010011000111110010011000100111011110101111100111011101010111000000110010010100001111001111001000001111001000011100110111000101100001000100111101111101000001011001011110110011010010100010110011110110110100101101010100001110010101010111111101010010 0001000110111011000100000011001111001101000100010100111000110001001001001000100011001100010100001001001000011000100011110000110100101101101100001100011101001100011011011001101001110011011110011101000111100011111001110000010110000011000001110010011011010011001010111100011001000100101011110110110111101000100100110111001110011101100010010010010110011011101011001101101000101010010111111111011010010011 1010011011101011010010010100010110111011110011000011110100001011000000010010110101000100101001011001100100000010101011110010001111101111010100110000001011010111111010100011100011101111101010001100101010010101101110000101001010011010001110010101010100001001100111100001000111110011000110101001111001010001010001011001110100000101001010000111000010101000101010101100011111011101011010001000110011011110 1110011100111011011000111010010011101100001100110010111000011010110110101110000110001110100000000001010010111010110000011110100010110001100110111100000010111010101110111110011001101111100010111001000001111011010011001111110011110001001101110011111111100100101110010010001101110100101011110000010001001001010000000101001001000110101000111011101010001101100001001111100010110111110100101000111000101101 0001110010011101101001111000001100010000011011010010001000110010010110100110000001101110011111100101110100000011001010101100000110000001101101100011111100111101010101101100010111010011101011110100110111111010010101110011111111011100001100111100101110101000110001100010111101000100000111110001010010000001000110011101100011101100010001001100101011111010101010101111001111101010010000110000100010100111 0100001100001101101011100100101011101000000111110111110001110001010011001110101000101110011000000101001010100101000010110111110111100110100100011001010111000011011000100011100010100100010110101110110101000011100110011001100111000011010010100011101010010111001111011000110001010011101001101101011100000101001000001001010110001001001001101000101001001110010111010100010010110101000000101110110001000011 1100100011100101110010010000111110101110011110010101101011001101010010010001110100100111001111110110011100001100110101111001001001110110010001101010011000111101110100010000101101111111000011100100100011011010001001101001001001010111010101001011011101110101010011001100101110110010100101010000100001000000110010011000001100111000000001001111111001011011100011000100101011100011000101000001100100011100 0011110101110010110100101000111010110001111001101100101100000100110110101101110001010100010111011101111111000100100111000000110010000101010011100010101011010000010110101111110101010010111001011100101100101111101100101001011000000010110010001101111001000011010001000011010011001111000011000000101111110111011101000110111100010011001000100110001010100100100001100010011110011100001011011001010000010110 0011010001001001010101111101111001010110111001101011101101110101010111101101010100011111101011011010110001101011000101011011000001000110100110110111101111110100011010000110101001111111010011010101110010101110110100100000111111010100011011000000000001110001110110000000000011010011010010100010000011101110001001101001101000101001010000011010011010001110110101010010000110011111110101000011110101011111 0111000100011001101111001101101110010111011001110100111100010101010011101110101111001000000000100100110001100011011110000111100100111110010000110001000001011111011100101101011001010111100101111110010011111010010110011010010110111110011010110100001100111011110000100000010010010011011101110110000010101000011011011001111001000010010111111101011010001010011010001111101111111100101100111011011001011010 0010111110010011000110010100111011010110111010101011010000111001011010100011001011101111011110100100110101110010010111101110101000000000000100010010100110011010110001010001011010101000001110001101111111110000000001110010010010100110010011000110000010101111010111111100010100011010000010000110101001110000010000001010000010011110100110111101001010110010001100011101011101101110000110001011000010110010 1100100110001110110001011001111011100110011101000111101110010111001001001111101100101011111100010110001000111111000011001000110011110101001011101111100111010100111111100111101000000001000011011011000010000110001111001101111111001100000101111100001111110100111100101010011100000011011111111010110000111100011101111010111101011101111111110010111011011001001010000110100101000100001000100100011010111110 0101011100110101001110111000101000010001100111111110011010011010011001101110101110001010011100111110110001011100100100010111011000010111010100010101111101100101111001011000011010101111111010000001000111001001011001100110101100010001101010110100100000011001000010011000101000001111000011101010011011000100101111001101010000100111001000000101111001100110000000110101101000101000010101011100101010101010 0110100010100001101110110110000101111100100001101001001010000011010110010110100001001101001001101011101101011100100010110011000010010101100110101101110011000011011000101001111101101111101100000110110101000011101100000000110011110001100010011111010100000111110001111101101010010100111110010101001111101001001111101011111101111111111010001101010001100110000010011110111100000111110011110110000001011111 1101110000001101011100101101010001111110100001100000100000001000011100100110100000000100100011100010101110110000000001001011011000010110111110011101001101111101011010111000100001011110010100100101011001000010000101100001111001001110001011010001111111000100011011001110010000011101111011110100000100001010101100011101111101010100101000101110000110001010000110011100100010111010110100101111011101111000 0110101000001011011011011111011011010000100011110001011000011011010000101000101110000011010101101100001101001011000111110001010010000010110100110111100100011000001101110011110010100000000101000110111000011011010001000000111000101110011101011010101101110100010101000000011101011101000000000111111110000110001101111011100011101001100100111110001011001100111001100100010100110010001011001011111111100001 0110010010011011000110010110001001100111100011000101101110110001110111001100011000110011100001101000010100111110000100101001000010000100100100111001111011111000000101010000101101000100100000110111001101001110010000010111011001001111111010001101100111010100001110100101101101000111110001101110101101110011010100111111000111110111111111101110000100001110110111101001111101010000000110001101011010011101 1111000111100000000110011100111100100101001100011111101000100000100110111110110011001100001011101110010100000111001011001001111101110111001010111011010101110110110011100000011001000011001001110001110011110010110001100011000100101000101100110110001100111011000111111100100000110101111101110010011110011101000101001101010010000100111010001111100011101001101100110011010100100010111001110100100010010011 1101100010000011000110100111001101100001011111101010010100001010111010100001100111001110111001011111101101111110010001000111111111000100000001000110101001010111101111001000101010111111111010010000101110110001010010101000101011100111111101110100110100011101000111101010100111110101110000000011010001100010011001110100110101000100111100011110111001010110010101110101100010100000000011001011111111101100 0111011011011100111011101110111000110010100001000000111100001011000010101111010101000011000100100010011000111001110111111000101011001010001110001001000101000010111010010111011100110011011110000100101010101110101010111110001001101001101100010000000010000101111100011100110010010000110100010010011000101001010011011011111101000010101100001110000110001001001111000101110101011100001000011000101110100001 0001100101010100100100001111110111110000010000010010111000000100100101010011110001000100000111101111001101000010111100001100001101100101100001110001100110111001100101100111010111111011100110101011111010111011001100110010101110101000001010101110010011001000000011111001101000011000101101001111111100110110011001010010010001011000110011001001101001110000010110000100101010100101011111110101110000001011 1010111000110101001001001001111101001110101110100011110100010000011001100010000100000011011011001110000010111000100110111000011000001000111010010001011100110001101111011101010010111010101100101000111101100000001110101000011110111110100001111000010000011100110010110001001101110010100011110000110101100100000001100111111100010001110001010100011110101000101001111100101000011011010010000101110001001101 1001000001000000100101000110101110001000100110000001110100101100111001010000001010100111100110010111000100011000101010100111011001111100000111001000001111101100001001110011000100011010010001001101011000110000110011101111010111001101100110111110011001010001101110001001100011010010010111101010101000010010010001101011010000011010001011010000011100001100101100100010010001010001010000101110100010010100 0000100110000111011000011111110100001010011100100011110010110010011110101000000010101110011011011111111111000100011100100010100111010111000011000010010011100110101100001111110110000010001110111110110000100111011000010000100100100111000111010010100010011101001001101001011111100001100101011001110101011010011001010110001101101011010111100110101100111111100011000000100010010101001001000101011000011010 0010100001011010011000010110010110110011010110001000000011111101010110001010010010111110001011011000000011010100010110110100100011010011101011110110010100001111011101010011110111111010000010100001100010101001000101011101101110111110110111100100001101101000101111000101010111101011001001110101110110010111010000111101010011100100010110100100111111100101010100111100011100100011010001100100100101100100 0101000111111011111100001101010110001100000001010001111110101011000100001011110001001100010111001111010000100000100101011100011010000010000010001001000001111101010011011001010000001001001000100110001100010001010001001110011100001100100111011001001001011100101011101010111101010010010100100011011111011010111101000011011101111001110111011001101110000110000000011111000000010101010011011101110011000101 1011110010001010101100111111111111001110011101000010101101010001001111001000001000111100111000100010101010111000111111001101110100110101000000001110010000101111101101001101101100111100011110010010010111011101001011000011010010100010110101110000001111001010000110110101100100001010011000100101100000111100110010111001100101111001100101101010100000011111101000010000110001111101000111001000100000001110 0101010011010100000111011011000111000010100101011000101101001110100000100111110101100111100010011001100101100110111000101011101000001000011011101011010100100100001110111000000111101100100110111000111111000000000010110101100010110001111001111001000001001110001111010001100000100110000110110100001100000000000110100001111110110000100000100111001111011001100001001011010000000001111001011000110101010111 0101100010100001111011010010111000001001000001100110110000011110111011010110101001010111111001110011100111010010010010001111110011110101001001010101111000110011101101010000010110011011011110010011100011101100001101011100101011000101110101101110111000111100011010000010101101100110000110001000001000011111011000111111000000111011111000100100101111100001000110111101110101110100111001110010011100001000 1001000111011000000010001101010000000111001001001101111101000001001001100011100100000110111100000111000001010000100010111101110101001010000101111111010100011111110000000111111110010001001100011100001111111010110100111010010000100001010100111001000011100000010011101101011100111101000110000101011010001110000011010010011101000010010011111011111010001001100101000011000001001110010000001111000010010010 0011011101100100110111010110111011010110101001001001000010101101101110001001111001110010100001000011101111011010001001111100001001010100011110111110001100000011101010111001011101001000101101111010101010000001101000101000000011111111000110101000000001011101001101100111101110001111110110000101111100011111001110000001111000001101111010000100111001000001111010101001000011011100010011010111000011100011 0000000000001010011010011010000001101111000001100111111010001110001001000101100010001111101111010001101000001101010101000010000110100111100111010100101100111000101000001101101010010010101001011000100101110010110101001110010110101111000100110101110110001110001110000000011110100111001111011011110011010011110100100101110111111010000111000100100000011000011100100010110010111011101111101111110001100111 0101010010001011010111001100111001011001110000011000001000111011101000110111101100110011010011101001010000111110111000000001001110110111011001101111010111110011010111101110110100110101111010011011000100111101110110101100110011010000001110000001111011000010011011101010101011011111100101000000110110011001001111110011110011000000001101010111111010001111111001001100011010010000101011100110110100101011 0001101101101100100010000001101011100110111011110000110100000101100101010100010010000101000010000110110010010100000010110110011010011111010101100110111111010011101001001100011010110111111010001111110100000001101111111100010011001101100110111100010001001011010101000011100111111011110111010011111100100100000000010001111101111110111110011110011100000001110001100101010110110110110000001010100110000000 0000101000000110011110000011111000100111100110110100011011010010111001010010011010000110110100001110100000111101011100111010110011111011000110011101000100010001011001001100111110110011110011111100010001001101001010000101001001110110110000110110110011001111100011100110010010111101011000010111000110110010111100010011100011110010011001011110111010110101110111000001011001101101000001010011000111101000 0101011110110111110001110011010110110011110101101010011110010000000011010011000111100000101010011101010101011000100011010110111010100001101100010000101100001001001110010001111101100001111010101100000001011010001100001100010000011001101011000001111111000010010100010100001111000001010100111111011010111111101101110110100111001000001011111011010011011001101101001001111111011111100010010110010101000011 1110000010011101010000000101000111000101110110100110001000000000011001011100111011111000110001011100110000101001101010000111000111111011110000001010101011100001011100100110100011000110111110010000010111011100100111100001010100111000011001101000011011110100101100101110100001101101110001010111110100101000110100001100101101100010100011001101111010000010110001111010000111010001110011100100101001000101 0100010100010100100011111000011000001000100100111111010111011010100111110000100000001001001011110001101001010101011111100010101000010100100111000000100001011010100100000110000110110111000101111001111010111100010001010010001001000101100000011101101001010001111001110000110110001010000000101010001010001001100001110000011011000101010001001111001110010101100111000101111000111000000000100110110011011010 1111111001010000001100100000010100110101111111101001111100101011011010110000111110001010001011001100110111010100001010000011101001010111010110111000001111110000111101100100001001110011010011000111001010111111000010000100100111110010000001101010111011110011110011100101110100001111101011110000001011010111101010101010111100000010110101011000100011001010100111001001110111001010011110011010011010100100 0011111000111001011000111001000011101000110101111010001101010101010101100110101110101011000001010010111101001110011011101110110110000010010001010001000111001100101110100010111110101110010101001110111010011100000100000011110100001011110110101001111010111110110011011111011100011010010000010110111100011100000010001110111000010001100100010110001011100000010100010000011110101110010000010000010111101001 1110101001101111001000000001111100111100100100001011011101111100010111110010100001010101110000011010110100100011111111001010101011111100111010011110101110100111000001010000001101010011111111111110101111001001000001001000000101110000010011100101001010101011000100001100000011111100000001111011110010001000100010111101101101111110000100001000100110001010000000001000000000010110101100010000100011000000 0101011100010100010011000001101000100110111010110101110010111111101111010100011001111100011001111011100111100001011100101100001010000011001100000001011001001110000101101110010100100111000100101011001101110111001010011010111010101101001010000111100011100101111101011111000010010000110110010100101101010011010101000011110001010111100010000011011110001010101011011101100010011000101000011100011010010010 1111000010010101010110000001011111011110100110010100110101110111010100010000011011110000111100011101001111111000100100100011010111000011101100111011001000101101001001100011010101101011011100111011111011100111101100011111010011111001100110100000110100000100111010110000010001101111010110000111001111000011111011011111010000111110010000011000100010100101010000100000001011111110111111100111111011111100 1010101001101011110100100001000110100001110001010101111111000101110101011101110011001010011000010110000110001000011110100111010000001100101011001000101010011010101000111101001000011110111010111010000001001100101100011100110000100011100111111110101001101011101111111010001010001001011110010100011100001110000110010000110110010010110100011101100000100000100001111011000010001000100011110001100100101111 0010100100110000001110011000010111010010010111001001011010110101011100001111010100010001011100101000101011101111010101110110011111010000110000110010010011001110100111001000001001000000110001010000110110000001100100110111000010110010101001000111111101000101100100010010000000000011011001111110001011110011010010100110001110100001100101011000010110000101100110001000110101001001110101011011000001101110 0100010101100001011110001100000001110011010110111011001110111011000110011101111011011000011111111000001010101000101001111010111011100110001111111111100101100101001010000000011100010110111111111010011011010110010101101111110100010111001000001010101001111110010100111111010100101100111100011100011111100100000001101100101011011101100100001001001101100001010110000010001010110100111100101110011111010101 1010000000000100000100010010110010000100110000100000001100010010101100010100111110100110010110110100011101110010110101001111010111000101110101001010000110110111100111110010011111101011101101110001101000010100100111011110111001110110010101101000010010110000011000011000101111100010110001110011110100010001110000101101111101111111101101101011100100011100000010101101111100000011010011111110001100101000 0101110001001111011000101010011010111110011111011011111101100000111011010010111101110101011101100100011010110101100001110010001100000111000010010111111001101010110100111110110100110000101000110110011001110001100010011111000001011111001011000000100100000111101000010000100001010110101100001010001110011011011001000000010011010010001111010101001000000000101101000000010011111010101010111001001010101001 0010110010100101011100000111001110100000000001001111000110010101101110000000010010000100101000001000001000100010001110001100110011001100110110010101001110001001111100101010110100011101100101100101001100110100100001000111001001111011110000000111110010111000101010111000011010110000011011100101111000110000101011000010010100010001100101011001001100110101101011001001010110011111011111101001101001011000 0101000111000110111110011111011001100111001001011110110010111101100111000011100000001110000111011111001111101001011011010001100110010001111100100111010111111100010010110111000110111101111110001110100001101111001101101001001111011110110000100001110101001010000101011111011001000110110110001000000010100100001010010111010101001001110100011111001010000111101111101000011010111000100100011000010111000011 1111100001000111010001010001010100100111011011110101101111100110000101000011101000110110111011110111000001110010000011000111001110000000101110111001011110001111011100110000101100110110101011101011001010000011010110101011001001101100011010101000110011100011001010001111111101100000110001100000100000111110001101000010100001111110110000011100011001110000111010100110000101011001011101011011110000110000 0000000100010001100011111001100010000010001000100101100110011110110010010000011010010101110111100100110000010110001110100100111111000011000111011100000101001110011001000111110101101001111011000000111111011111110110100000100101011010011001011100000110111010100110111011111100001001110000011111010010000111010110111001101110000110011111100111111101000000010111000011100111011101111100001011111011001100
cTrader Algo

Symbol【cAlgo API】

10/27/2020 1/28/2023

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

通貨ペア情報取得用

Robotクラス(本体)が持つプロパティSymbolから様々な通貨ペアの情報が取得できます。SymbolのインターフェースはSymbolInfoインターフェースを継承しています。

 

SymbolInfoインターフェース

通貨ペアの基本情報を参照するためのインターフェースです。

public interface SymbolInfo

関連するインターフェース:Symbol

 

プロパティ
(string) Name

通貨ペアの名前を取得します。”EURUSD”とか。これをそのまま発注などに使用します。

(int) Digits

価格の小数点以下の桁数を取得します。

(double) PipSize

1pipあたりの価格を取得します。

(double) PipValue

1pipあたりの価格を口座通貨額に換算して取得します。

(double) TickSize

値動きの最小幅を取得します。

(double) TickValue

値動きの最小幅を口座通貨額に換算して取得します。

(double) VolumeInUnitsMax

最大発注通貨量を取得します。

(double) VolumeInUnitsMin

最小発注通貨量を取得します。

(double) VolumeInUnitsStep

発注通貨量の最小増減幅を取得します。

(IReadOnlyList<LeverageTier>) DynamicLeverage

通貨ペアの通貨量別のレバレッジを取得します。

(double) LotSize

1ロット当たりの通貨量を取得します。

(MarketHours) MarketHours

マーケットが開いてる時間を取得します。FXだけなら気にしなくていいです。

(string) Description

通貨の説明を取得します。EURUSDなら”Euro vs US Dollar”とかになります。

(long) Id

IDを取得します。使いません。

 

(以下はcTrader4.5で追加)

(double) Commission

トレード時の片道手数料を取得します。(単位はCommisionType次第)

(SymbolCommissionType)  CommissionType

手数料タイプを取得します。

(double) SwapLong

買いポジション保有時のスワップ金額を取得します。

(double) SwapShort

売りポジション保有時のスワップ金額を取得します。

(DayOfWeek?) Swap3DaysRollOver

スワップ3倍付の曜日を取得します。

(double) MinStopLossDistance

最小のストップロス距離を取得します。(MT4で「ストップレベル」と呼ばれてるやつです)

(double) MinTakeProfitDistance

最小のテイクプロフィット距離を取得します。

(SymbolMinDistanceType) MinDistanceType

上記Min~Disanceの単位を取得します。PipsもしくはPercentageを返します。

(Asset) BaseAsset

通貨ペアのベース通貨を取得します。(EURUSDならEURの部分)

(Asset) QuoteAsset

通貨ペアの決済通貨を取得します。(EURUSDならUSDの部分)

(double) MinCommission

最低手数料を取得します。単位はMinCommissionAssetによります。

(SymbolMinCommissionType) MinCommissionType

最低手数料の単位を取得します。AssetもしくはQuoteAssetを返します。Assetなら単位は口座通貨、QuoteAssetなら単位は決済通貨(EURGBPならポンド)になります。

(bool) IsTradingEnable

通貨ペアがトレード可能かどうかを取得します。

(SymbolTradingMode) TradingMode

通貨ペアのトレードモードを返します。FullAccess(トレード可能)か、CloseOnly(決済のみ可能)か、DisabledWithPendingOrderExecution(待機注文のみ執行可能)か、FullyDisabled(トレード不可)のいずれかを返します。

(int) GracePeriod

スワップフリー口座でポジションを取得してから手数料がかからない日数を取得します。

(double) AdministrativeCharge

スワップフリー口座でポジション維持にかかる手数料を取得します。

(DayOfWeek?) AdministrativeCharge3DaysRollOver

スワップフリー口座でポジション維持にかかる手数料が3倍になる曜日を取得します。

(double)PnLConversionFeeRate

Gets the symbol profit and loss conversion fee rate… だそうです。(意味わからん)

 

 

 

メソッド
(double) NormalizeVolumeInUnits(double volume[, RoundingMode roundingMode])

volumeを発注可能な量に調整して返します。例えばvolumeに12345を渡すと、(VolumeInUnitsStepが1000なら)12000が返ってきます。最低でもVolumeInUnitsMinが返りますので0やマイナスの値渡しても大丈夫です。

逆に言えばVolume計算値がマイナスだったときは発注しないような想定のプログラムだった場合でもこのメソッド通したら発注できてしまうので注意が必要です。defaultはToNearest。

(double) QuantityToVolumeInUnits(double quantity)

ロット数を通貨量に変換します。quantitiy*LotSizeが返ってきます。

(double) VolumeInUnitsToQuantity(double volume)

通貨量をロット数に変換します。volume/LotSizeが返ってきます。

(double) GetEstimatedMargin(TradeType tradeType, double volume)

(cTrader4.5以降) トレード方向と数量から必要証拠金料を取得します。 

(double) AmountRisked(double volume, double stopLossInPIps)

(cTrader4.6以降) 指定ボリュームで指定Pipsにストップを置く場合の損失額を返します。当然決済時の為替レートによっても変わるため、あくまで目安です。

 

LeverageTierインターフェース

SymbolInfoDynamicLeverageの要素です。発注量によって異なる最大レバレッジを参照します。

public interface LeverageTier

 

プロパティ
(double) Leverage

最大レバレッジを取得します。

(double)Volume

Leverageが有効な最大通貨量を取得します。(DynamicLeverageの最後の要素だけ扱いが違うかも?)

 

サンプルコード
Print("この口座の最大レバレッジは{0}倍", Account.PreciseLeverage);
Print("最大発注数は{0}通貨", Symbol.VolumeInUnitsMax);
Print("{0}の通貨量別レバレッジ", SymbolName);
foreach (var lt in Symbol.DynamicLeverage) {
    var lots = Symbol.VolumeInUnitsToQuantity(lt.Volume);
    if (lt != Symbol.DynamicLeverage.Last()) {
        Print("{0:#,0}通貨({1:#,0}Lots)までは最大レバレッジ{2}倍", lt.Volume, lots, lt.Leverage);
    } else {
        Print("{0:#,0}通貨({1:#,0}Lots)以上は最大レバレッジ{2}倍?", lt.Volume, lots, lt.Leverage);

    }
}

実行してみると最大レバレッジが表示されます。

 

 

Symbolインターフェース

通貨ペアの基本情報に加え、BidやAskなどリアルタイムの情報を参照するためのインターフェースです。

public interface Symbol : SymbolInfo

SymbolInfoから継承されており、リアルタイムの情報を参照するためのメンバが追加されています。

 

プロパティ
(double) Ask

Ask値 (買う場合の価格) を取得します。

(double) Bid

Bid値 (売る場合の価格) を取得します。

(double) Spread

スプレッド (AskとBidの差) を取得します。Pipsじゃなく純粋な価格差です。

(double) UnrealizedGrossProfit

保有中ポジションの総利益を取得します。

(double) UnrealizedNetProfit

保有中ポジションのスワップ、手数料を加味した総利益を取得します。

 

SymbolInfoのプロパティ

Name、Digits、PipSize、PipValue、VolumeInUnitsMax、VolumeInUnitsMinなど。上記参照。

 

メソッド
SymbolInfoのメソッド

NormalizeVolumeInUnits、QuantityToVolumeInUnits、VolumeInUnitsToQuantity。

 

サンプルコード

Pips関連の計算にSymbol.PipSizeはとにかくよく使います。利益額や損失額の計算となるとSymbol.PipValueも結構使います。

// 1本前のローソク足の高値をストップロスに指定して売り発注
// 最大損失が10,000円以内におさまるようエントリーボリュームを調整する

// 最大損失とストップロスPipsを設定
double maxLoss = 10000;
var stopLossPips = Math.Round((Bars.Last(1).High - Bid)/Symbol.PipSize, 1);
var spreadPips = Symbol.Spread / Symbol.PipSize;

// stopLossPipsがスプレッド以下だったらなにもせず止める
if (stopLossPips < spreadPips) Stop();

// volumeを計算する
var volume = maxLoss / (Symbol.PipValue * (stopLossPips + spreadPips));
Print("maxLoss={0}, pipvalue={1}, losspips={2}", maxLoss, Symbol.PipValue, stopLossPips);
Print(volume);
volume = Symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down);

//発注
ExecuteMarketOrder(TradeType.Sell, SymbolName, volume, "SymbolSampleCode", stopLossPips, null);

デモ口座で試してみてください。手数料分はずれますが、ストップロス位置で最大損失くらいになるようエントリーされるのが確認できると思います。

 

 

RoundingMode列挙型

Symbol.NormalizeVolumeInUnitsでの計算方式を表す列挙型です。

 

ToNearest 近い値。奇数丸めっぽいです。2500も3500も3000になります。
Down 切り捨て。NormalizeVolumeInUnits(volume, RoundingMode.Down) の結果は指定したvolumeよりも小さい数値になります。
Up 切り上げ。NormalizeVolumeInUnits(volume, RoundingMode.Up) の結果はvolumeよりも大きい数値になります。

 

 

SymbolCommissionType列挙型

手数料の計算方式を表す列挙型です。

UsdPerMillionVolume 100万通貨(USD)あたりで計算され、単位はUSDです。
UsdPerOneLot 1ロットあたり計算され単位はUSDです。
PercentageOfTradingVolume トレード総量の比率(%)で計算されます。
QuoteCurrencyPerOneLot 1ロットあたりで計算され、単位は決済通貨です。

たとえばUSDCADでCommisionが10、CommisionTypeが”UsdPerMillionVolume”の場合、100万ドルの取引あたり10ドルの手数料ということなので、1lot(10万通貨)トレードしたときの手数料は片道1ドルということになります。

少しわかりにくいですが、GBPUSDで同じ値だった場合は手数料は1lot片道1ポンドになります。(10万通貨=10万ポンド=約12万ドル=手数料は(100万ドルあたり10ドルなので)約1.2ドル=手数料は1ポンド)


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

新しいコメント

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

cTrader's Life

© 2026 ajinori