0110101011011011101101110111100110110111001011110010100101101000001001111011101111011111010100011101110100111101011100110110000000111111110010011011110010110111100111001000110110101101111001100000110000000011011011111100010100110101101011101110111010000011101001110001011101101001111000110100111101111000100110001101101110001000101011001101101110100000001001011000101111011010110000001001011010000011 0001010111010100010010001010010101100100000011100010101111010111100110000101100110001110000101100011100111011010011011111110100110100100111001000111011101000101001011010011010001100110100110110000110110001110111010000000110111000110010111001100011111011111000110011000100011000001001010101001101000001000110011011010101101111100011100100000110001101001000010000000010011000101000110101010100111000101 1000011001101000101010110101001010101001101000111111000010000111010111110101110011000001100011011110101111010010100010010100001000101011101101001100110101000100101010001101111110110100111001100000101010010011001110000110010110001101110001010000001111011110111111111110010001101000010010101111101101001111111111111011001111111010011011010001010010000100000001101100101000100110110001011010101001010111 1011011001110111000100110001010101111000000101100000111000000110111110011100011101101101011100101000011000011111001101011010100100111101001010111011011111111001111010111001001110001101001110000101110010110110101110110000000011010111000111111001000100010000001001000001001011011110010111100100001001111001100011011111110000000010000101001010011100000001101111001111000000010010000101111101101001110000 1101011100101110110111011101001100001011010111000100100100001100010110101010011010001011010111000110011010101001110001110110101000010101011011011000001011001111001000100111001011111111100111101100111100010011101001110011000001111111010011100001001101001010100010010010010100011000101001110101010110010100001101111000000110000111101100111001100011110001011010010110001110001110110000110011100000010111 0110011110101011001100111110011100111011001110001100000001001111010101101000111100110110110011000111011010100010010110010110010000100010000011111011110110010000000011011111101010000010010110100100010110101100110101111100101111011000001000001001110110011010001010111111111110110001111000100000110000001011001100011001111010011000101100000100111111000110011010000101110110111111100011100101110011101011 0001011110111101101111011111011001011100101001111001101010101010010010110011000010001001111110101101001000100011000111110001111101101100001101010111001000110011100010101000010001100011001110001010110010001011010011111011000011010000010111111110011000100000111011100000011110110110011011101010111000100011010000000011100101100110001010111101001100001011010111110010101101111100011011111000010101111111 0100110001111110101100100101111101000001101000101011010101111100100010010101101011011001100000100010001111110011101000011001001000111100001001101101011000001001111100101110001001110110000101111010000110001001000010111011001010100011011101101000111001011110100100101111001101000100111100000110100010101100100110000110101100000101000000011001101111000101001101000011101101000011000101011001111101110010 1101110110011001001110111101110100011001110010010010000011101111100010000011111100000011110100001010111100001011000111101010111011101001111110001010011010101011000110011011000010011010000000001010000010001001010010101011110111110101101101001100100000011110110011010011011110000010100010111000001100001101011111101010001001110110110010000001000001001001101101111110100010111110001100111010101100001000 0111110100000000001101110000010011000100001111110000001101000001010100101010011000111011101100011000000110000111000110100011101011101000111001000011011110101000001010101001101100110100101100011111111110001100110111101010100010011000110010100101001111110010011100111110111001111101000110001010111101111100010101001100111011111010000101100001011001001111011010110100001110111101100001000100011001010101 1111110111100100011110111011111001001001011100111011100110000101100000101111111010011000100010100100110110000110101110100111000110001111011011011000011111001110111011101001100011101111011110010011110010101010000111000111001011011101000010001110000110000000010111101000100111001110100100010000100000110111011011101010111111101011001100100111001010010011000001000110110101010101110100111110100110010101 1000011111110001111100001010001110101101111001000100111111011101110110000101101110011010100010011010010000100001101010011001110001101101011101100110110100111010010110110101111101111111101001001100110001111111011101100111111010011110100010110001111000011010100111110010111110100001111010010000011111010001001111000110110100001010010101110100010000011101001001111000000010001001011001100010101110000100 1101010000100100000100001011001110111101010101100010100111101101100100011011111110101100111011010101001101101100001100110101110110100110000100110111100011001011010100010110100010011111011110011101011100001001101110101100010000101001110001011100000000011000110000101010100000110001001010111000101110011101111001111011101010100101100101101010111001110100100111011010001110010000001110011100001110001001 0010110010101011011111100000001101101001111010011100011111101100011000111001110100111010000011010010101100111001101010101111010110100001111001000100000000010110010010001101111010100000000000000100000000110111011111110010011010001101000100100101100100110001110101111000110000011000000111010110111010111001001001001100110010001100010111001111011011010100100011111100100010111100110010111100000011111110 0010110010101001010010010101011011100101011110100000000010000101111001011000011111001101001000010010010011101110000111100100111111101110100001011110000001110110000001100001011001100110010010101101010001100111101111111010011111111000011001110011101101010010011101011011001101101100011100101011001100100100000110011001101111001011001100000101100010100011000111101000110000001101010001011010111001100011 0110110111111011001100110101011101111101010011000111001000010000010001101100010011101111100101001000000011011110001010001111011111100111000110111100101000011110110111011010111000000010001101001010010000000001111111010111101001111101011101110100100100001010110011000011111101110110010000010110110011010100010111101011100010000000100000010001110111011001100100010000110011110001111010111111001000111011 1111010011100111100011100111100110110110100010000110110000110001111001001010101111011110100001101110010010101100010001111010001000000001010111100000111001101011101000100111000110101101111001111000001000001110100011001110010011110000000110010101010011101100001010111100000000000111000110011010001010101010111000110101111000101011000101101010011011000111000010100110110100011010111111010000110011000011 0100100101111101010111011111110101000000000101011001010000111110011000001101101001001101001011010111100010100000100001110010001010111011110011110000000101011001010100000010111101110100100101000000001101101111000001111010101010110110011111011000000001111011001100100111011101001001110110011010010100110110011100001001111011011110010011011000101110010001010100111111011001110111110111011111010000001001 0110000110100011010001111011011110011000110011111110111100101011001011100001000000000001011100111111101111111001101010101100110010111010110011000000001000000011110001001110001011111100101011101110110110001000110111010111111101001110000100001001011000100101000001101001111000001100110001111101001010110010110010001011011000101010100100010010001000111011101110100101110110011001110010001011001111110010 0101110001010010111011011111101100111110001101101010001001110010000011000000010111101000011010011101011000100111101000100101111100011110100111111010010011001011010101110011010101010110000011011000100101011011001111000100000001001010010110111101101111000110100110101000010011011000111101100100100011111111100100110110000110000010101110111001100000011111010001110101100100101110010010001000111100010011 0010011111100101111011010111101010110001110110001010011000100000000111101101001000000100101100101010111010011000001110100111011011001001011111010000101000100010011000001110011111011111110101000101001011011010000001010110000111110011011110000000000111011111101010001110110110010100001101001110111000101010100001100010111111111100011110000100111110001010100011001001101010110110100100011111011000000101 0011010101001100010110111010111110001101000100001101010000010111011110111110010110111001010011101000001001110010101000011010101000110000001110000111111100111011000010110011001101111100110101010010111110111110101001111000100000011011101101011010110101101011010100001110010110111011101101000100001001011100001001100000000100100011110010000011100100101010100110111101110111011001100000001101110011111100 1001110001011000100001111011010101000000001011111100111100001101110000111000001100110000000101100110101000110010101111110111000001101101010110000110000111010011110011110001011011110001110000110011111110010110100000100100110101100101101111010111111100111110110000100101100110101011101100110001010001110000111111001001101001110110010111001110010101111011100111110111000000000011011001000001101101110001 0011110000000101001000111111101011010110001110110101100100110110000100110101001010010111110110110100011000011101010100110111000101110011111011100010001000001101010000001111001000001110010101100000100000000010010100110001110011010000011000011111110100010110011110001000000001011010101000111100111111011010100110110110010000011110011000011100111001001010111111010100010110010111101000000111011100110010 1001110101011110001001101100000011010001110001000111000100111011011001000110110111100111111000000100100100010010110000010000000000011000110011010001011101110001000100111010101111111111111110010001101111100010100110001000111000100011011100011110010100100111110010110001010001010000100101010100111111100111000111000110110111110101100110001111011100011010001101110100111011011110100110101110101111001011 0101011011011011100010110000110110110001100110101101100000011100010010110011100011100101010001001111101101000001111110001111110101000001011100101100001111010110000100101101001010100101100010100110100001010101101101111111100100100101110001110000000111011001101101011011110001101011001101101111000011100101011011111000111000011011000011000110001110100110010011101001100101111001001111110101100101110010 1001111000101011000111010101001010010100001100110111110011100100111001111000011111100010001010011000111101100101000111010010111100000100011011100100111001111110001101100000100101111100010101100011011101100111011111011110011101001111000000001001010101010101100001111100001010011000111010101100011010000101011101011001010101111110001100001111111010111111001001110101001010110010110010111000110100110100 0001000110100010101001110110110000011100101011001001011001111111100110010000101101011110010011111001110000110110100001010010000111110101000000100111000100011101001000100000000000001011110010010111010100100111110111011100001011100011000111001010100100001011100111010000100111010010010101010100110011000111100001100110101001011110111101001010011110011001110101001110000011100011000111110111001111100110 0011110110011010101110000011000000111110110010111010110010111111111010000100001110011101110000111011111100111100010000101111001100000101001101001000101000111001101100011011000011001011010000000101000111100110110011000101000001101111000100000010011101010000110101001010110100001110101001110110011000010110010000001000110011101011011110100011100101011010111011110100100010110110100101101111010100111001 0110010010111011110000010011101010001011000010100011000000001101011111000000000100010001100011100110011011001010010101000000110011010110011110011100111100000110111111101001111111010011110001010100011011001001011000011010001010001000101000101011001001100110001001101010010101100101110100101001111110101110000110111101111011110110100101000101011101001100101011011000001000000001011110101010000001001011 0001011000010000110010100011100111100011110111011010011001101101110010001001100101010100000001101111000111000010011011011000010000010000001110001001110010010010011111101111010101001111100011110000010001100001111111000011000010111100000110000010111110000111110010000001011010001000011001000111001010100111101001101100010011000010100000000110101011011010100010101101010010111101111011100101110000010101 1000111111101010011111010101000101111100010010111011101010110100101110110010000110111011000101100111011101100000000111000001001010110001011000000010010111110110111000111111001000001011101110111000001110111000011111011111100110000101011100111010111011001011111001101111010111110011110111100001000111000001111000010100101011100111111111110111100001011010000010101010101100110010000010110110010100001111 0010100111111111100000011101100101011110111111001011011110110101110011100100010110101011001000001111111110110011110010010111100000110011000100001101110101111001001011000010011111001111011110010101111111000110111000011001110110010001111100010110011100000100110011111111010000001101111000101101011111100101000101000111111011101100001111101000001111100101001001001111111000110010010001101100001011111010 1010111011000001111111010001101101000110110011010111110001101110111101111110000001101100001110000100111010111000110001111000111110001111110101010001001000110111101100111110110000110110001011011111010111101110010100100101010100001010000010110001101000111000010110111100001000011000010010110000011010000100101100010001101111110111001011110100000000010011001100110010111000101111011000111111100101010000 0101010101000101011110100011010101010100111110111001000011011000100110111111011111000111011000000010110110111010100111000101000000000011110110100011110000111000010010110010110011010110110111101110011010100111001010001111101011101011100111010111111011111011011010101100100100111000010100110001010110010100011010011000101011000101110010001101010101111101110000011110001100111000010111111001010111010000 1010101000011010000101000110100100011110111111101001000101010011111000101100111101111100000000011110100101110010010010110100101000011101111001100000110011000111011000101101101100001101100111100101010100101110010000001011000100000001001010100110001111011100000000110100110000010111011110111000000001101101011000010111101111010011001001011000110011111111111110011011010110101110010101101100011011010100 1111101110111000100110010000110011011010100001111110100001111011111011010100100000100100100100111011011100010010001000111100001110100101101110110110110000000000001010100100000110001001110010100011111010110100010011110001011111100001101101001000011011111011001100110111110111111110010110110001111101001000100100000111111111101111010000011101111000101110010110110111000110000010000011010100110101001100 0001101000101100001001110001110001101000011010101100001111000110001010110001001011111010110101010100010101011001111110111110111101011110100110101110110000010100110011010110111101010101110101010100100001100101101111011001100101110011001001000110110101101110011110111010111111101000010111110100110011011011101100101011000000010101110111000000110000110111100110000100101101010111101011101011110101011110 0101111111101001010000110110100101001010110100000101010001101110010100101010001100110111110100101011001011010010011110001000010111011000100110010111110111010110011000001000101001101001101101011101100000100001111010110101111100001010001000100011111101011001110001101010100011010110110011001000010000010000101111101110011011001001011001100001100001100110110001001001100110001111001001110100011011100101 1011001011101000111011100000100100110101011000111111010110010011001001010101100111010110011010100111010100101011100011001001010000111111001011110100000000110100111101100000000110111000000001100110001110101010100101001011011001100010100101001111111001000011011111011010011101110110110010011011100010111100001100111111001010010111100100011100101110000011111111101110100001001110111111100000011010010111 0111010011110011110111101001010000011001101100000111100101010100101111001000010111010001101001110100101000010111011001101010001100100110000100001010110001001101011110011011111011010000000001010100110111100110010101000000000110010011100111000011101101111011110011110001101011100110010000001110000011111111000101000110000101110011010001110010101111001000011110110101000111000011010000011010000110001100 0100110001100000111001001110101100001110010110011011001011010111110100010100011000001110011111110111100000001111001101011010010011101111110111010101001010110111110110001000100001010000010000100101000110100100101001100111100000110111110000001111110010011110111000001010101111100101000111000001000100001100111001101001010100111100001101100100111011010110010110010101110100000100000110110000001010100010 1101010001100000100100011101111101000101001011011111111011001100100011000111110111001001111011010101010010110011100111110000010010001001010101101001100100010100011111101100101111011111000111100000000011111001011101001000010000000000010111101100011001101010110110101000010001110101100000010001111101010000000001101100000001110111001100100011000110100100011000111001000110100101111011110111000010101100 1001101110011110101010000101011111100000110101101010001100000111101110111100011010011001001000110110011110001101011001011000011000101000001001111001010010111010000010001101101001001000001000110001010111011011110001110111001100110111001011111011000100000101111000111101110001001000001111111101111001110011000100100111010100000000010101110011111011010111101111011001000111111110001111110001100001111101 0110111100101111101000011110000011111110010111011110010101010000001100000100110011001110010001111111001100101110100001011011001000010001011101000000101010101001111100100101111010110101010110110011110110010000010110110111010011011011100011101001001101101110001000001110011000010111000110010001000000001011011010100111010010010011011001110000011000100001111010001111010110011000010100011000100111010110 1011111101101001000110100010110010101100111000111011001001010001100000001110110101110011011101010011010001110111111000001001000011111001100000111101010111000000001001100100011111110001000000100001010011111001110001000010010011110101101110000000011110001000111000101100100010011101110110101111011110011011010001011101001010101111010011000111111100111101111101001010001000100100001101111000110111100010 1101010111010110100110000000101111001100110111101101101110111011000001001011101101111111101101011110100011001011110111000101101011101011111000011110111010011101010010111111101001000100110000111011000110100111111101000010011111110101000010011010010111000111110100011010110000011100101000010101110011101101001010001111100010010010000011010011001100011111001011110010101000000100010001011100101001001000 1100111001100011010001100001001000000111100000110101111011101000010100110010000110010101011001111011111000101010111110001101011001111111011010110111000010111001001100011100011110011011101010100000010101000011001000100110001101001110100010110100110010010000001000101011001000100010111100100110000100110010110111000010100110011101010100011100000100110111111110110010000000110110001000001000101100110110 0111100000100101010011100111000110110011101010100110010110110100010010001000100110011111001010110111001001101000000101010000011011111011110100100010000110101010101111111101001000110111000110110000001001001110010001001010110000111100110010100011101011110001010010001100001010001101111001000011011010111001000110110101000100101010101100110100100110001100000001100000110110011100010111001100010010110011 1101000110011101010110001110110100101111110011111001110001100110000101101101000111100000101100111001100001111000111110111110011100001101010110011100000100110011001010001001001110100011000001101000011100101010101001010100101111101101010111111100101001011010101110001011000111111101011010000011111100111011001001100111001110000010110100111111010100111111011000001110110101000101110101011001111100001101 0111111001010010001100011010010000111001000111010010001000100010010011011001001111111001011000111011010110101100100110001000111101000000100100001010000111100000000100101111110000011100111010100100010100000000011110001011110010000001000010010110110111011101110011011001111101111000000010110101010010010000111111101110001001000111101101000000011010110011100101100100100011011111110111010000001100110100 0001010000110011010110101100111001011000000001111011011110010011001111010110011110011001000000100100010111001111001001110101011101010111111000001101111100111001000001010010011000011101000001010001110101110101111011101001111111010100100011101111110010001100110111001110000011100110011101111010111110111011011110111110001001101101011010011111111101010001111110100111111111011101010110000000001010111111 0110001101000011111000111110001000110101010000100100000101111110010110100101100010000010111001110101001101110011000010110110000011110111110110001101001001100110111010001011100010001010100011001101010111001100101101110010001000101010001011000110101011010011011000101101111110001011010000100111000010100011000000001001110000000101110000001001011010111010001010010001011110101001110000000011100100000100 0011101101010011111010101101001011101111000101110011011100000110100001011010000000111001110100111000011100100110110011111111110010001001011111100001111100001001101101011101110000111001111110011101011001001000110100111110011001001100101010011110101100011100111100101100111110110011010110011001111011100111011001101110000111011110000000010110000110000011010001011111101100000010011010011011001100111101 0010001100001101110011000001110000010000110110011110001100001101000001101100100011110000001100110001110111000000000001000011011100011001110101110010000101111011000000110000100001100011010100001001100101110010011111100100010111101001000100100100111110000111011000101110000000100001101001001101011010011111100000001101111000110000010010100001111010100000000000101110000100001011010100101111001100101001 1011001001010001001000101101101101011101011111011011001110011100011001001000100001011110100100100001001110011000100111001000110101010010101110011110101101111000000001101011111110100110111010111110000100001111000100001010011001001010011011111011100111010100011100000101100001010010111100111100110101010111101111001101111101010101011001000010100000110000111111111101001111000101100101000110011001100011 1100001010110110001110010100001010101111110011010010011101001011101101110111010011100001011111110101110001000101000010100000000010000000110110101010011100111100101000110110011101101101000101011010010001001111111011011010000010110010011001100000100110011110011101110110001101010011111001001010110000011111000101001011001111000010000110000011000000000100111111011101000000000001011001110000110101110101 1111111101110010010001101011001011010011101111010100001010010101111001010100001001111011101011000000000001111100011010001101110011101101011101001111001000001000001011111111101101001001100000110101010010100000100100010111010001011110110100101100001001101011000101101010011111001010110111011101001011101101101110100000000010111001111101001110100100111011111101011011001011000101000111011100011101100111 1111011110100010001000011011011000111101000101111001111010000111010110010010101010000000010010101110101011010011001001000111100010111101111110110010001000010100010100011100010000110000110000110010011100111000001010111010111011110110010111111011001000100010101100110000001101010000100100110010010011001100100101110001011111101011100001110011110000001111110100000001101011111100100101011100000101100100 1011101001111100000110000011001110001001000001111011110001101011111101001010100111000101011111001110100101010100000110011111010000100111111010011010101110011001110011000010110000111101010101000111011011011000010110100100000101101011010000100110011101010010111100000010100110010001011001001100100111001011101001100101001000111011100000011000000000001101011101110010001011011001000101011111011110001001 1110011001001111111000000101001010111011001111101010100101110000011101011101101011001010101111100011111010111101000111010111010101011010001001111111011111011000010011101001101101000110111111111000010011101111111000000000101101000101111100101000011010011101000110010011111011000000101001011000101000000000110110111111110000100111001010111010101100101001111111100110100001001100100101100001011001001100 1011100101001110100010000011000111101011101000100011100111100101101101000100000000010001000001011011111111011100100101010011100010101001101100101111000111111010010100000100110010001101001111010000000001110000110000100000000001100101111001010100010101110110000111011010101010101101111000010010001110101100011110010111110000110010100110001010111100100001100100101100001011001101100011110101010111110001 1111000000100111101001111010101010001001010011010101101011110111111010101111111100100000011110001000001000101101111110100110011111001111101011000000011101101100101110011010110001100100010100001001001010100011001001010100100110111000000110001011010011111011110001100010110000001001100111011111100110111000111100111100011110011101111111110000000001000010010010011111010100011100000100110010100110001110 0101100011011100000100100011011011101101000100110011111111100000110111000010110010101011111100010001010101000011001010100010111110110000111010111001111001010110100001010010000000001100001000001010010101001111000110110011010100001110101111010011101110100001101110111010001110101001100010001101011001011110000001010111101010000110110101100000001011101100111100011000001011010010011001101001101010101101 1011010110101110010111001110010011010000011111000111001011100010011110011011101101011011110111100001100101011110101110010001110010101001000111110111011111001010001111011100101001111000001101111111011000110010010011101001110100011110010011111111011001110010101100110001000101101001110111001001100100100001000011010111111100111110101100010001100011000100011001000001101111011100001000110010111101100010 0101111001110010111111001001001111010110000011111010011000111000011111011010101000101010100100011000101010001000010000010000000010010001101111100000011101011110100110011010101101010100101000010101001011010110011011001010011010101111011010110100000111000011001110111100100000000001100010100101001111000001101001001110101100001111000000001110001110000111011000101110010010111100100100011111101010000011 1100101011100111110001111111001100000100110101110000111100111100011101101111110000011010000100111100100000110110111101001110100100010111100100101010010110100000100001100110010110110110100100001010001100111001111011101111100100111001001001101001011000011011000011100111000000100101110010000101000111000101110001110100010100110001011010011100100110101111001101100000001101101000110000111010001011111100 1010101001100101101111000000000100010011110001110101001001011111001101000100010110000001100010000111010100110011011111000100110001001110111001101100101110110110101010110101100000011011111101001111101010001111010010011001100010101100000100110010011011000001011100100011010000000000010101010100011111011101011101011101111111001101110100001000000101111111111110001100100011100001110111000111111010100100 0100100011101101110100000111111001111111001110001001000101001111101100000001001100010100010100111101101000010011100110001011101010001110100100111100101100110001100000100110100111001010100101010111000011111001110101000011010010010010110011100011000000000101100010011010110110101100100000010011011101101000001001001010010110100111101110011111000001001001100000101111110110001010000000011111111001110011 0000101110111001110000101000101001010111110100100000011001000110110101000001011100111101000110000110000010111000001000011101110110001001110101001101110010100101001010110100111110101011110111101110110000100101100101001101000110111100001000001010100001101111000001011010010011110011101001111000001011101001110111101110101000000010111011101101011111011000100000100110111011011010101000101010000010100101 1001000001000000000010100001010011010011010001101000001101101010010100011011001110110100000111010110001001110111000100101001110111011110000101101001101110000100101110001010000101000110000010101010000000000101011101111101111001110111000001010110101000101001001010111010011111000110110111001101100111011111101111101110001010110011110100011010110001110100011000001111001010110000000000011101011011001111 0110111001010010101001100101101010000101010010011111000011110100001010110000100000010110101001111010111011011000111111011010010100100101101101110100011001011000010110101100110001100011111110000111110101000100001111110001010110000000110000001001100101101101101010111011110001010000101010011110011000101000010010011101001111010100111111001101110100101110101000000000011100001001101010010111101010010111 1110011010110000001000110110010000010000010110110101100110001100001100101110001000010101011101100001000101110110000110110110111110001100010010011000100110100000101001011100110111001001100111000111110101011110011010101111000111000000001000100000000001000010111110111100000001100010101001111111000111010101100001000011010001101011101110100001000101011001100101111111000101011100010011111111011011001011 1110010001010110110010000010101000011000010001100000101011010101000111111000110001010001111011011000100100111000011000110111011001011101100110101110101000100111001110000100001000100011000100010101010001100101011101100000000111011010100001001011110000001001111100100000000101001000010101101101010111100001001100100111001100111000001110000100001001010101110000010000000110010010101010101010011100010101 1101110111110011000110100101100101111011001010000001101000011001001101101111000001010000011010000111110000110101001000010111111010101101001111110110110001010111010110001111110011011100100101001001010001100101100011110100101010011001010110011101001101011010110011100111011010111110111111011101010000101110111001001001101110111011101010011101101000100111010011010001000101001101010100100011000010010111 1111000101111000100001011010010000000110100101110111110100101101100011100000110100011011111011000011100101011010111000111101101011010110011001000100110000010010101011111001111001111110101101111111101000101001110010011101111101000110100001000010010011111101000010101000000101000110001010101001100110100100100010000110000100001111111100111001010001110010101100100010001111111110000001101001000010010010 0111110110000100001001111101000001000010011100011010000011010011001010111000111011101110111000000101110001011001010011101110110111011000001101000100001110011001001011000111010101101001110001001111111011101000110100001101000000010011101100011111001001001111111110011111000111000011100100010111001111000000001100110011011111101000010001001110000110111001010110001000001011111010001100011011111000000000 1010100001010110000011001011111100110001010111000111101000111001000100101001111111111111001001110001100001111000111100100100000110111100011011010100101111110101001011101000101100000110000111111000111110111001110010111000111011000101100100000101110100000110000011110010011011001001111110011010111001100111011101010111000010110100110111100011101101011011010100001101011000111100111100101111101101000000 0011111110110001110100101111111010111001110000110110101101110000010010010111001111100111010100011110001011101011000100110000001010111101000010010110100000011100111111111010011111001000100111001100101011100110000100111010110011011111111011010001000101110111010111110110000000000001000011000001011011010111011010101000000001011011011011111100101101111001010000110000000011011100101101001001101111110011 0101000000000101110010110101100100101100101100101101011101011111100100000110000111011000101111011000101111111010110111011001111111110100111011000100000011001111111100100101110100101100100100000010110110100111101000100010010101000010100100000000101110101110100001000100110000101101011010110110011001001001110110001101110110001010100010000001110010000001011101111111100111111001100010000001000001111110 1111011100000100000011111111101100100101001011000101011110100000101001110101111100001100110010111110111000000011111100001110111011110011110001011110110100010010101000101110100100000001010101001100101010000101110011101001101010101101011010111011011000111111111000111001111100110010001001001000100010000001010001110101000111000100111101100000010010011001111100110000101100110111001100011001111000010111 0000010011000010000110001111100011011110011101111001100011011110001111100001100001001010000110101111110010110010101000010110000100101111010100100110101001100000001110100000111101100011110010111011011110010110011110101110110111010011011101101111100000100110101100010110010101100011010100000111110010100011001111100001011111011110111100000101110111111011001010101111100100110010000111100010111101000111 1110101100001011110011010011101111111110001011001001101111010101101001011010101111010011100001011010100010010000011111000110011111001100001000000110001111101100100111001010110010000110100001000010011001001100001100010100101100100001011010010110110001011011100000000010010010101000000111110101101111001101100110100010101010110010011111100000000001000101101001111001010000001110010011110000001010111110 1011011110011000100100010000101001000100010000010011001101110111011000111001111010111101100100100000001100110001010111000001100111110100000100001100101011010101011000110000110010000111111001101001101011010011011010010010101111101001100101100010000011101110100011111110111101011011011111000111010010101001100000011010110111011110100000101011100110000010000001101001000110011100101011101111100000011011 0110101111010001000110100010000000101011111110110110011010110000110001101101010011010111110000000001101001010001011101001110110011000000010100000001001101010110101110010010100000101111001011000110000101011010011110010111011000100010111110110000111001101011100011010111110101110100010100100001000110111110000101011111000111010011001000001100101011000101111101100011000010000100001011111001110111100010 1101000010000110011100101100010011101111100101000110001111001011000100111110001100000100011101100100010000001001000011011100111011010111010100111110001110010101010001111011100010110111000110101111100101011110111000010001001001011111011100111001011010100000010111100100001100110010011001110111101011110101101010101000001110110000100010011100110010010010001101110000010110001010100100011001110100000011 1010100010010011010011010100111111110111101100011100001110010100100101001111110100001111100111110001100010001101010100101110011011110111100000001001110110110101010000100100011100111010000110001110011111011001010010110111111111111110011010111110011111010101011011001001101111100110101110010110111100001000010111000001111000101000011011001100110110111000001011100100101111101000100101101011000110101001 1001101101110001011111000000010000111100011010000011100000000000000111010110010100010101010111000001000000000000111101000000000101110010111100011001100111011011010101100000001100011110000111111111101100100011101101001000111001111101110111110000001011110111101000100011110011110101011100111101001011100100010001100100110101101101110000001001111001110000110000100110000001011001010010010100001011111001 1011011101011001111111101011100100110111010101110001111011100111000000111011110011101000001111001001100111101010010000011100111111000100111101100100110101001101000111001001110101001010111011101111010101011011101111110101010010101011100100101011110111000100110110011100001101101110011001111001101011011111011101001011110101100111110011000000011010111101011110110001110000011111110000000001001010111000 0101100001011000100111001001100000110111100111100011100101000101010100111111100001111001111001111111000001100100011110100010000101000011010001000000111110110101100110100001101001010110000000010001000011101100000101010000101011011101110100001000010101000110111011011100011101011110101011001010001001110001001111110011110001011001010110010110101000111011101010101000000100101011011000110111001101010110 1110111000101001001101000101010101100000100001100111101001101001110101111111001010000011111001010011111111110101100000011010111101110011100111000110001100101001000000101011011110110011001111110011010000010100101101100000111000110001110110110011111100111010101100001111011111110001110011100000011010111110101010110010110011001000000101011110011110011010111000010011111110100111001100010011001110100010 1001001011110110000101001001111101110101110010101100101011010100011111000001100101011010110001100010001010111110001010101000100010010100110001001010110000100001101011111011111110000111011001001100001111011101001011110011111100111110001010100001010110110110000110110100100101001011001110001111010100001111110001011111000101110111011110111000101010100100010110111010110000010000101100111101110001101110 0101001110000001000001110110111011111100100010011011100010101101101001110001101100100010000110111101011011010101111100100011010101000001100111001101001011101011000100010101000110011110011101001000101110011110011010010001001101011110000110100110011010001101001011001011010001001011010101000101011010101111000011101001111000011010011011011111001011111000001101110110011110010101110001011110110101101101 0100011111110010110000011011110011111010100010101010011011100110000000111011000011110001010110001101001100100111001000000000101001110000010001001000100110010011000110101101110010101010011111110101100010000000100010010100001101100101011000000111100001111110100111011011101100101000011011111010000110111010110000001001100111100010001100001011000101111001100011001010001101011101110010010100001000010011 0001101000100100111101000110101011101101101011001100111001111001100011110110010000111010011100100011110111011011001110001100110011111010010110010111000100010001001100101111111110000111010111100100001110111111110000000010110110011001001101000010100111100011010100110111101001111010110001100101011110000110011000010110111000001001000010000110010100000110110101101010001110010100010110101101001011111111 1001100111000100110110001111001100001100001101111010010000011011111100101000001011111111100000001111010111101101111001111110011011000101101001100001011100111000001001001000101101000010101110100011110110000110111001110001110011001111011110011111001100011110111000110001000101110000100001111110010011011100100101010111000111001000101101001101100000110100011101011100101111101101010111110011100110111011 0010100000010110100000111110110011010000101010011000111100000110111011010100111100000000000001111111001100110001110000010011101110110100101110011111001001010110111110101011110111110001011011000110100000100010111010110001111100110001000011111110111110110000101000011100000001101010100001001111101111001100000011010001000000001100000101011011010011010001010010100100110101100100101111011110000010010011 1000100000001111011001111110001010011110111000110110110110100110000100010111110111101001001011110000101110010000110111001110001011000011001010100001000101000010001100111010000001010010011100101110011011111111010001101111011100100001101111101100101111111010010011000110010101000111010111011000000001111011001011011110101110011111101101001110010110011010100000011111101011101111010011000101110111110001 1110101111100010000111110000001111000000100011010010100101011000010100100111001010101101111101110101001111010101001010111110111001010010101100000101010111000011000101110111100011111111110111001110000010011110010010001101011110111101111100100101110100101101010101110101000001110011010010111011110001100101010001011000110101100011101001101110000001001110100010111101100101111010010011110000000111101001 1011101110101101011110111001111111001010111101110000011100010000111100100100101010101110001000110000000100111000001111111011110000110111111001100001110101110110100011000111101111001110101101101011001011110100101001100110101111111101011110010011011101110111101110100100011111010100001011100010010100000001001100110010001101100011010101110001001011010110111011010111001011011000001111001101101010100000
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